[tor-commits] [translation/tor-messenger-otrproperties] Update translations for tor-messenger-otrproperties
commit f077cf3d2bc23a70bf4f95a78db4b173fed26ca8 Author: Translation commit botDate: Fri Sep 16 20:48:06 2016 + Update translations for tor-messenger-otrproperties --- ku_IQ/otr.properties | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ku_IQ/otr.properties b/ku_IQ/otr.properties index 11b23be..0c5c864 100644 --- a/ku_IQ/otr.properties +++ b/ku_IQ/otr.properties @@ -21,11 +21,11 @@ error.enc=Error occurred encrypting message. error.not_priv=You sent encrypted data to %S, who wasn't expecting it. error.unreadable=You transmitted an unreadable encrypted message. error.malformed=You transmitted a malformed data message. -resent=[resent] +resent=[ÙاردÙÛÙÛ] tlv.disconnected=%S has ended their private conversation with you; you should do the same. query.msg=%S has requested an Off-the Record private conversation. However, you do not have a plugin to support that. See http://otr.cypherpunks.ca/ for more information. -trust.unused=Unused +trust.unused=بÛکارÙÛÙÛÙرا٠trust.not_private=Not Private trust.unverified=Unverified trust.private=Private -trust.finished=Finished +trust.finished=تÛÙاÙبÙÙ ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tor-messenger-prefsdtd] Update translations for tor-messenger-prefsdtd
commit 586ac239d55890c0fb33c499499d2999d5858241 Author: Translation commit botDate: Fri Sep 16 20:48:17 2016 + Update translations for tor-messenger-prefsdtd --- ku_IQ/prefs.dtd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ku_IQ/prefs.dtd b/ku_IQ/prefs.dtd index ef0155d..7117ee5 100644 --- a/ku_IQ/prefs.dtd +++ b/ku_IQ/prefs.dtd @@ -4,7 +4,7 @@ - + ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tor-messenger-fingerdtd] Update translations for tor-messenger-fingerdtd
commit b7be8b88d72013bd35bd0a120d9d45e727640b91 Author: Translation commit botDate: Fri Sep 16 20:47:50 2016 + Update translations for tor-messenger-fingerdtd --- ku_IQ/finger.dtd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ku_IQ/finger.dtd b/ku_IQ/finger.dtd index 31b302d..e410db3 100644 --- a/ku_IQ/finger.dtd +++ b/ku_IQ/finger.dtd @@ -4,7 +4,7 @@ - + ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/torbutton-branddtd] Update translations for torbutton-branddtd
commit 4df512aeb584dc0040eadaf2a63fcdfede77ecec Author: Translation commit botDate: Fri Sep 16 20:46:32 2016 + Update translations for torbutton-branddtd --- ku_IQ/brand.dtd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ku_IQ/brand.dtd b/ku_IQ/brand.dtd index 05e9cbc..55051e3 100644 --- a/ku_IQ/brand.dtd +++ b/ku_IQ/brand.dtd @@ -11,5 +11,5 @@ - + ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tails-misc] Update translations for tails-misc
commit c85510595fc1352198342aec75072620543f987a Author: Translation commit botDate: Fri Sep 16 20:46:15 2016 + Update translations for tails-misc --- ku_IQ.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ku_IQ.po b/ku_IQ.po index 857ce53..3879e42 100644 --- a/ku_IQ.po +++ b/ku_IQ.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-09-02 16:02+0200\n" -"PO-Revision-Date: 2016-09-16 19:53+\n" +"PO-Revision-Date: 2016-09-16 20:27+\n" "Last-Translator: Rasti K5 \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/otf/torproject/language/ku_IQ/)\n" "MIME-Version: 1.0\n" ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/abouttor-homepage] Update translations for abouttor-homepage
commit 7fd1428eb19433ca44a95b93c37857d2b835afc1 Author: Translation commit botDate: Fri Sep 16 20:46:21 2016 + Update translations for abouttor-homepage --- ku_IQ/aboutTor.dtd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ku_IQ/aboutTor.dtd b/ku_IQ/aboutTor.dtd index 6cc8bd2..d2e6f3e 100644 --- a/ku_IQ/aboutTor.dtd +++ b/ku_IQ/aboutTor.dtd @@ -4,7 +4,7 @@ - vim: set sw=2 sts=2 ts=8 et syntax=xml: --> - + @@ -21,7 +21,7 @@ - + https://startpage.com/rth/search;> https://duckduckgo.com/html/;> ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tails-greeter] Update translations for tails-greeter
commit b0224632b5273e8ebbaef26de44b96dc19ae8dc9 Author: Translation commit botDate: Fri Sep 16 20:45:41 2016 + Update translations for tails-greeter --- ku_IQ/ku_IQ.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ku_IQ/ku_IQ.po b/ku_IQ/ku_IQ.po index 0362d41..4b64b0f 100644 --- a/ku_IQ/ku_IQ.po +++ b/ku_IQ/ku_IQ.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-09-02 14:43+0200\n" -"PO-Revision-Date: 2016-09-16 19:46+\n" +"PO-Revision-Date: 2016-09-16 20:19+\n" "Last-Translator: Rasti K5 \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/otf/torproject/language/ku_IQ/)\n" "MIME-Version: 1.0\n" @@ -148,7 +148,7 @@ msgstr "" #: ../glade/langpanel.glade.h:2 ../tailsgreeter/langpanel.py:45 msgid "Language" -msgstr "" +msgstr "ز٠اÙ" #: ../glade/langpanel.glade.h:3 msgid "Locale" ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/mat-gui] Update translations for mat-gui
commit 32d8af0429cd80f5457b2df2317a8efc6f71b627 Author: Translation commit botDate: Fri Sep 16 20:45:54 2016 + Update translations for mat-gui --- ku_IQ.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ku_IQ.po b/ku_IQ.po index 6f20fee..10c9e10 100644 --- a/ku_IQ.po +++ b/ku_IQ.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-02-10 23:06+0100\n" -"PO-Revision-Date: 2016-09-16 19:53+\n" +"PO-Revision-Date: 2016-09-16 20:28+\n" "Last-Translator: Rasti K5 \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/otf/torproject/language/ku_IQ/)\n" "MIME-Version: 1.0\n" @@ -45,7 +45,7 @@ msgstr "" #: mat-gui:170 mat-gui:419 msgid "Dirty" -msgstr "" +msgstr "Ù¾Ûس" #: mat-gui:176 #, python-format ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/https_everywhere] Update translations for https_everywhere
commit 042a009388d62da5bd7815003be54775c2fa5554 Author: Translation commit botDate: Fri Sep 16 20:45:23 2016 + Update translations for https_everywhere --- ku_IQ/https-everywhere.dtd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ku_IQ/https-everywhere.dtd b/ku_IQ/https-everywhere.dtd index 50befd9..0593e5e 100644 --- a/ku_IQ/https-everywhere.dtd +++ b/ku_IQ/https-everywhere.dtd @@ -28,7 +28,7 @@ - + ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/bridgedb] Update translations for bridgedb
commit e2ea20716992a177143cf9f39b3071463ebf787c Author: Translation commit botDate: Fri Sep 16 20:45:04 2016 + Update translations for bridgedb --- ku_IQ/LC_MESSAGES/bridgedb.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ku_IQ/LC_MESSAGES/bridgedb.po b/ku_IQ/LC_MESSAGES/bridgedb.po index 46eb187..94db9ed 100644 --- a/ku_IQ/LC_MESSAGES/bridgedb.po +++ b/ku_IQ/LC_MESSAGES/bridgedb.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: 'https://trac.torproject.org/projects/tor/newticket?component=BridgeDB=bridgedb-reported,msgid=isis,sysrqb=isis'\n" "POT-Creation-Date: 2015-07-25 03:40+\n" -"PO-Revision-Date: 2016-09-16 19:59+\n" +"PO-Revision-Date: 2016-09-16 20:28+\n" "Last-Translator: Rasti K5 \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/otf/torproject/language/ku_IQ/)\n" "MIME-Version: 1.0\n" @@ -58,7 +58,7 @@ msgstr "دÛارÛکردÙÛ ÙÛÙ ÙÙÛ" #: bridgedb/https/templates/bridges.html:40 msgid "Show QRCode" -msgstr "" +msgstr "Ù¾ÛشاÙداÙÛ QRCode" #: bridgedb/https/templates/bridges.html:52 msgid "QRCode for your bridge lines" ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tails-misc] Update translations for tails-misc
commit df00918030d8b3b673ab6c59d47a47785c0ac4c4 Author: Translation commit botDate: Fri Sep 16 20:16:19 2016 + Update translations for tails-misc --- ku_IQ.po | 11 ++- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/ku_IQ.po b/ku_IQ.po index 14eddde..857ce53 100644 --- a/ku_IQ.po +++ b/ku_IQ.po @@ -4,13 +4,14 @@ # # Translators: # Haval Abdulkarim , 2015 +# Rasti K5 , 2016 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-09-02 16:02+0200\n" -"PO-Revision-Date: 2016-09-16 19:22+\n" -"Last-Translator: carolyn \n" +"PO-Revision-Date: 2016-09-16 19:53+\n" +"Last-Translator: Rasti K5 \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/otf/torproject/language/ku_IQ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -231,11 +232,11 @@ msgstr "" #: config/chroot_local-includes/usr/local/lib/tails-virt-notify-user:79 msgid "Learn more" -msgstr "" +msgstr "زÛاتر بزاÙÛ" #: config/chroot_local-includes/usr/local/bin/tor-browser:40 msgid "Tor is not ready" -msgstr "" +msgstr "Tor Ø¦Ø§Ù Ø§Ø¯Û ÙÛÛÛ" #: config/chroot_local-includes/usr/local/bin/tor-browser:41 msgid "Tor is not ready. Start Tor Browser anyway?" @@ -243,7 +244,7 @@ msgstr "" #: config/chroot_local-includes/usr/local/bin/tor-browser:42 msgid "Start Tor Browser" -msgstr "" +msgstr "دÛستپÛکردÙÛ ÙÛبگÛÚÛ Tor" #: config/chroot_local-includes/usr/local/bin/tor-browser:43 msgid "Cancel" ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tor-messenger-imtooltipproperties] Update translations for tor-messenger-imtooltipproperties
commit 45eaffa1396c3d9dc4ffe38ffdf831cd80ac336a Author: Translation commit botDate: Fri Sep 16 20:18:03 2016 + Update translations for tor-messenger-imtooltipproperties --- ku_IQ/imtooltip.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ku_IQ/imtooltip.properties b/ku_IQ/imtooltip.properties index 95a8e63..776f03b 100644 --- a/ku_IQ/imtooltip.properties +++ b/ku_IQ/imtooltip.properties @@ -2,6 +2,6 @@ # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. -buddy.username=Username +buddy.username=ÙاÙÛ Ø¨ÛکارÙÛÙÛر buddy.account=ÙÛÚ٠ار contact.tags=Tags ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tor-messenger-ircproperties] Update translations for tor-messenger-ircproperties
commit 6f1b4d8a188666ef8a67a3ca93acbad5faa9bc89 Author: Translation commit botDate: Fri Sep 16 20:18:09 2016 + Update translations for tor-messenger-ircproperties --- ku_IQ/irc.properties | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ku_IQ/irc.properties b/ku_IQ/irc.properties index daa1237..bcfc56f 100644 --- a/ku_IQ/irc.properties +++ b/ku_IQ/irc.properties @@ -19,13 +19,13 @@ connection.error.passwordRequired=Password required # LOCALIZATION NOTE (joinChat.*): # These show up on the join chat menu. An underscore is for the access key. -joinChat.channel=_Channel -joinChat.password=_Password +joinChat.channel=_Ú©ÛÙاڵ +joinChat.password=_تÛÙ¾ÛÚÛÙØ´Û # LOCALIZATION NOTE (options.*): # These are the protocol specific options shown in the account manager and # account wizard windows. -options.server=Server +options.server=ÚاÚÛکار options.port=دÛرÚÛ options.ssl=Use SSL options.encoding=Character Set @@ -110,7 +110,7 @@ message.quit=%1$S has left the room (Quit%2$S). message.quit2=: %S #%1$S is the nickname of the user that invited us, %2$S is the conversation #name. -message.inviteReceived=%1$S has invited you to %2$S. +message.inviteReceived=%1$S باÙÚ¯ÙÛØ´ØªÛ Ú©Ø±Ø¯ÙÙÛ Ø¨Û %2$S. #%1$S is the nickname of the invited user, %2$S is the conversation name #they were invited to. message.invited=%1$S was successfully invited to %2$S. @@ -155,7 +155,7 @@ error.banned=You are banned from this server. error.bannedSoon=You will soon be banned from this server. error.mode.wrongUser=You cannot change modes for other users. #%S is the nickname or channel name that isn't available. -error.noSuchNick=%S is not online. +error.noSuchNick=%S ÙÛسÛرÙÛÚµ ÙÛÛÛ error.wasNoSuchNick=There was no nickname: %S error.noSuchChannel=There is no channel: %S. error.unavailable=%S is temporarily unavailable. @@ -193,7 +193,7 @@ tooltip.secure=Using a secure connection tooltip.away=Away tooltip.ircOp=IRC Operator tooltip.bot=Bot -tooltip.lastActivity=Last activity +tooltip.lastActivity=دÙا ÚاÙØ§Ú©Û # %S is the timespan elapsed since the last activity. tooltip.timespan=%S ago tooltip.channels=Currently on ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tor-messenger-conversationsproperties] Update translations for tor-messenger-conversationsproperties
commit 2696d4e8cf12a4b9beaaad06067592ec5c2045cb Author: Translation commit botDate: Fri Sep 16 20:17:46 2016 + Update translations for tor-messenger-conversationsproperties --- ku_IQ/conversations.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ku_IQ/conversations.properties b/ku_IQ/conversations.properties index 1a5564a..1d34ca8 100644 --- a/ku_IQ/conversations.properties +++ b/ku_IQ/conversations.properties @@ -69,7 +69,7 @@ nickSet.you=You are now known as %S. # LOCALIZATION NOTE (messenger.conversations.selections.ellipsis): # ellipsis is used when copying a part of a message to show that the message was cut -messenger.conversations.selections.ellipsis=[â¦] +messenger.conversations.selections.ellipsis=[...] # LOCALIZATION NOTE (messenger.conversations.selections.{system,content,action}MessagesTemplate): # These 3 templates are used to format selected messages before copying them. ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tor-messenger-facebookproperties] Update translations for tor-messenger-facebookproperties
commit 0498baef7b9e8cdb8a6829e72ccdaf02c34fab02 Author: Translation commit botDate: Fri Sep 16 20:17:52 2016 + Update translations for tor-messenger-facebookproperties --- ku_IQ/facebook.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ku_IQ/facebook.properties b/ku_IQ/facebook.properties index aaf7cdc..c9db539 100644 --- a/ku_IQ/facebook.properties +++ b/ku_IQ/facebook.properties @@ -4,4 +4,4 @@ connection.error.useUsernameNotEmailAddress=Please use your Facebook username, not an email address -facebook.chat.name=Facebook Chat +facebook.chat.name=Ù¾ÛÛÚ¤ÛÙÛ ÙÛÛسبÙÙÚ© ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tor-messenger-accountsproperties] Update translations for tor-messenger-accountsproperties
commit e47c7bd89f733746039c9bcad61de9c5fcaa3783 Author: Translation commit botDate: Fri Sep 16 20:17:20 2016 + Update translations for tor-messenger-accountsproperties --- ku_IQ/accounts.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ku_IQ/accounts.properties b/ku_IQ/accounts.properties index 051ba0d..8c372ca 100644 --- a/ku_IQ/accounts.properties +++ b/ku_IQ/accounts.properties @@ -4,6 +4,6 @@ # LOCALIZATION NOTE (passwordPromptTitle, passwordPromptText): # %S is replaced with the name of the account -passwordPromptTitle=Password for %S +passwordPromptTitle=تÛÙ¾ÛÚÛÙØ´Û Ø¨Û % passwordPromptText=Please enter your password for %S in order to connect it. -passwordPromptSaveCheckbox=Use Password Manager to remember this password. +passwordPromptSaveCheckbox=بÛÚÛÙÛبÛØ±Û ØªÛÙ¾ÛÚÛÙØ´Û Ø¨ÛکاربÙÛÙÛ Ø¨Û ÙÛبÛرÙاتÙÛÙÛÛ Ø¦Û٠تÛÙ¾ÛÚÛÙØ´ÛÛÛ. ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tor-messenger-commandsproperties] Update translations for tor-messenger-commandsproperties
commit b0908e4a7b3a41d94bd0e83f042f3b60cdeb054a Author: Translation commit botDate: Fri Sep 16 20:17:35 2016 + Update translations for tor-messenger-commandsproperties --- ku_IQ/commands.properties | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ku_IQ/commands.properties b/ku_IQ/commands.properties index d4e3a91..72f2920 100644 --- a/ku_IQ/commands.properties +++ b/ku_IQ/commands.properties @@ -20,8 +20,8 @@ helpHelpString=help name: show the help message for the name com # %2$S is replaced with the localized version of that status type # (one of the 5 strings below). statusCommand=%1$S status message: set the status to %2$S with an optional status message. -back=available +back=بÛردÛست away=away -busy=unavailable -dnd=unavailable -offline=offline +busy=بÛردÛست ÙÛÛÛ +dnd=بÛردÛست ÙÛÛÛ +offline=دÛرÙÛÚµ ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/torbutton-branddtd] Update translations for torbutton-branddtd
commit 08322a287fc5dcd541c40fc85eb7aba58d0757a9 Author: Translation commit botDate: Fri Sep 16 20:16:37 2016 + Update translations for torbutton-branddtd --- ku_IQ/brand.dtd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ku_IQ/brand.dtd b/ku_IQ/brand.dtd index 7045aca..05e9cbc 100644 --- a/ku_IQ/brand.dtd +++ b/ku_IQ/brand.dtd @@ -5,7 +5,7 @@ - + ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/abouttor-homepage] Update translations for abouttor-homepage
commit eae389fdebfef3ead2ae2c7654443bbe45423d5a Author: Translation commit botDate: Fri Sep 16 20:16:25 2016 + Update translations for abouttor-homepage --- ku_IQ/aboutTor.dtd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ku_IQ/aboutTor.dtd b/ku_IQ/aboutTor.dtd index 008dff8..6cc8bd2 100644 --- a/ku_IQ/aboutTor.dtd +++ b/ku_IQ/aboutTor.dtd @@ -45,5 +45,5 @@ https://www.torproject.org/donate/donate.html.en;> - + https://www.torproject.org/about/overview.html.en;> ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/torbutton-brandproperties] Update translations for torbutton-brandproperties
commit b2df2f50820341d44f2c355bc77e341a97730274 Author: Translation commit botDate: Fri Sep 16 20:16:31 2016 + Update translations for torbutton-brandproperties --- ku_IQ/brand.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ku_IQ/brand.properties b/ku_IQ/brand.properties index 3a50a18..bb737ac 100644 --- a/ku_IQ/brand.properties +++ b/ku_IQ/brand.properties @@ -5,7 +5,7 @@ brandShorterName=ÙÛبگÛÚÛ Tor brandShortName=ÙÛبگÛÚÛ Tor brandFullName=ÙÛبگÛÚÛ Tor -vendorShortName=Tor Project +vendorShortName=Ù¾ÚÛÚÛÛ Tor homePageSingleStartMain=Firefox Start, a fast home page with built-in search homePageImport=Import your home page from %S @@ -13,4 +13,4 @@ homePageImport=Import your home page from %S homePageMigrationPageTitle=Home Page Selection homePageMigrationDescription=Please select the home page you wish to use: -syncBrandShortName=Sync +syncBrandShortName=ÙاÙدÛÙ Û ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/torbutton-torbuttondtd] Update translations for torbutton-torbuttondtd
commit ba2e5d0056d4c89b43463177bf07e4e0ce5ae6ac Author: Translation commit botDate: Fri Sep 16 20:16:46 2016 + Update translations for torbutton-torbuttondtd --- ku_IQ/torbutton.dtd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ku_IQ/torbutton.dtd b/ku_IQ/torbutton.dtd index a2d8661..50ebcdb 100644 --- a/ku_IQ/torbutton.dtd +++ b/ku_IQ/torbutton.dtd @@ -54,7 +54,7 @@ - + ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/torbutton-torbuttonproperties] Update translations for torbutton-torbuttonproperties
commit 2e8c6ef749a9cf15b7efc006b1d6295df0178cc3 Author: Translation commit botDate: Fri Sep 16 20:16:43 2016 + Update translations for torbutton-torbuttonproperties --- ku_IQ/torbutton.properties | 24 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/ku_IQ/torbutton.properties b/ku_IQ/torbutton.properties index 1a9e2c3..dcd0ce1 100644 --- a/ku_IQ/torbutton.properties +++ b/ku_IQ/torbutton.properties @@ -1,21 +1,21 @@ -torbutton.circuit_display.internet = Internet +torbutton.circuit_display.internet = ئÛÙتÛرÙÛت torbutton.circuit_display.ip_unknown = IP unknown -torbutton.circuit_display.onion_site = Onion site -torbutton.circuit_display.this_browser = This browser +torbutton.circuit_display.onion_site = ٠اڵپÛÚÛ Onion +torbutton.circuit_display.this_browser = ئÛÙ ÙÛبگÛÚÛ torbutton.circuit_display.relay = relay torbutton.circuit_display.tor_bridge = Bridge -torbutton.circuit_display.unknown_country = Unknown country +torbutton.circuit_display.unknown_country = ÙÚµØ§ØªÛ ÙÛزاÙرا٠torbutton.content_sizer.margin_tooltip = Tor Browser adds this margin to make the width and height of your window less distinctive, and thus reduces the ability of people to track you online. -torbutton.panel.tooltip.disabled = Click to enable Tor -torbutton.panel.tooltip.enabled = Click to disable Tor -torbutton.panel.label.disabled = Tor Disabled -torbutton.panel.label.enabled = Tor Enabled +torbutton.panel.tooltip.disabled = Ú©Ø±ØªÛ Ø¨Ú©Û Ø¨Û Ø¨ÛکارخستÙÛ Tor +torbutton.panel.tooltip.enabled = Ú©Ø±ØªÛ Ø¨Ú©Û Ø¨Û ÙÛکارخستÙÛ Tor +torbutton.panel.label.disabled = Tor ÙÛکارخراÙÛ +torbutton.panel.label.enabled = Tor بÛکارخراÙÛ extensions.torbut...@torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data. torbutton.popup.external.title = Download an external file type? torbutton.popup.external.app = Tor Browser cannot display this file. You will need to open it with another application.\n\n torbutton.popup.external.note = Some types of files can cause applications to connect to the Internet without using Tor.\n\n torbutton.popup.external.suggest = To be safe, you should only open downloaded files while offline, or use a Tor Live CD such as Tails.\n -torbutton.popup.launch = Download file +torbutton.popup.launch = داگرتÙÛ Ù¾ÛÚÚ¯Û torbutton.popup.cancel = پاشگÛزبÙÙÙÛÙÛ torbutton.popup.dontask = Automatically download files from now on torbutton.popup.prompted_language = To give you more privacy, Torbutton can request the English language version of web pages. This may cause web pages that you prefer to read in your native language to display in English instead.\n\nWould you like to request English language web pages for better privacy? @@ -29,17 +29,17 @@ torbutton.popup.never_ask_again = Never ask me again torbutton.popup.confirm_newnym = Tor Browser will close all windows and tabs. All website sessions will be lost.\n\nRestart Tor Browser now to reset your identity?\n\n torbutton.slider_notification = The green onion menu now has a security slider which lets you adjust your security level. Check it out! -torbutton.slider_notification_button = Open security settings +torbutton.slider_notification_button = کردÙÛÙÛÛ ÚÛکخستÙÛکاÙÛ Ù¾Ø§Ø±Ø§Ø³ØªÙ torbutton.maximize_warning = Maximizing Tor Browser can allow websites to determine your monitor size, which can be used to track you. We recommend that you leave Tor Browser windows in their original default size. # Canvas permission prompt. Strings are kept here for ease of translation. canvas.siteprompt=This website (%S) attempted to extract HTML5 canvas image data, which may be used to uniquely identify your computer.\n\nShould Tor Browser allow this website to extract HTML5 canvas image data? -canvas.notNow=Not Now +canvas.notNow=ئÛستا Ùا canvas.notNowAccessKey=N canvas.allow=Allow in the future canvas.allowAccessKey=A -canvas.never=Never for this site (recommended) +canvas.never=ÙÛرگÛز Ø¨Û Ø¦Û٠٠اڵپÛÚÛ (Ù¾ÛØ´ÙÛارکراÙ) canvas.neverAccessKey=e # Profile/startup error messages. Strings are kept here for ease of translation. ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/torbirdy] Update translations for torbirdy
commit cb34fe6cd71312065ed89687548710343d4fb34c Author: Translation commit botDate: Fri Sep 16 20:15:50 2016 + Update translations for torbirdy --- ku_IQ/torbirdy.dtd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ku_IQ/torbirdy.dtd b/ku_IQ/torbirdy.dtd index c9f270f..a2066ac 100644 --- a/ku_IQ/torbirdy.dtd +++ b/ku_IQ/torbirdy.dtd @@ -46,13 +46,13 @@ - + - + ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tor-launcher-properties] Update translations for tor-launcher-properties
commit 980b2d6b0fe887186b902a5f5fb610c1ca5c8130 Author: Translation commit botDate: Fri Sep 16 20:16:03 2016 + Update translations for tor-launcher-properties --- ku_IQ/torlauncher.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ku_IQ/torlauncher.properties b/ku_IQ/torlauncher.properties index 626f705..ea34af8 100644 --- a/ku_IQ/torlauncher.properties +++ b/ku_IQ/torlauncher.properties @@ -28,7 +28,7 @@ torlauncher.error_bridges_missing=You must specify one or more bridges. torlauncher.error_default_bridges_type_missing=You must select a transport type for the provided bridges. torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings. -torlauncher.recommended_bridge=(recommended) +torlauncher.recommended_bridge=(Ù¾ÛØ´ÙÛارکراÙ) torlauncher.connect=Connect torlauncher.restart_tor=دÙÙبار دÛستپÛکردÙÛÙÛÛ Tor ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/mat-gui] Update translations for mat-gui
commit f1ba80d540b30c0d83ffc34f7ff25839565d927d Author: Translation commit botDate: Fri Sep 16 20:15:57 2016 + Update translations for mat-gui --- ku_IQ.po | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ku_IQ.po b/ku_IQ.po index fd491e3..6f20fee 100644 --- a/ku_IQ.po +++ b/ku_IQ.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-02-10 23:06+0100\n" -"PO-Revision-Date: 2016-09-16 19:41+\n" +"PO-Revision-Date: 2016-09-16 19:53+\n" "Last-Translator: Rasti K5 \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/otf/torproject/language/ku_IQ/)\n" "MIME-Version: 1.0\n" @@ -165,15 +165,15 @@ msgstr "ÙاÙ" #: data/mat.glade:368 msgid "Content" -msgstr "" +msgstr "ÙاÙÛÚÛÚ©" #: data/mat.glade:398 msgid "Supported formats" -msgstr "" +msgstr "ÙÛÚÙ Ø§ØªÛ Ù¾Ø§ÚµÙ¾Ø´ØªÛکراÙÛکاÙ" #: data/mat.glade:456 msgid "Support" -msgstr "" +msgstr "پاڵپشتÛکردÙ" #: data/mat.glade:478 msgid "Method" @@ -185,4 +185,4 @@ msgstr "" #: data/mat.glade:518 msgid "Fileformat" -msgstr "" +msgstr "ÙÛÚÙ Ø§ØªÛ Ù¾ÛÚÚ¯Û" ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/https_everywhere] Update translations for https_everywhere
commit f8c0a253f357ddfc3acb76a6f5679cd53762a5ba Author: Translation commit botDate: Fri Sep 16 20:15:23 2016 + Update translations for https_everywhere --- ku_IQ/https-everywhere.dtd| 10 +- ku_IQ/https-everywhere.properties | 14 +++--- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/ku_IQ/https-everywhere.dtd b/ku_IQ/https-everywhere.dtd index 15e1251..50befd9 100644 --- a/ku_IQ/https-everywhere.dtd +++ b/ku_IQ/https-everywhere.dtd @@ -34,10 +34,10 @@ - + - - + + @@ -45,8 +45,8 @@ - - + + diff --git a/ku_IQ/https-everywhere.properties b/ku_IQ/https-everywhere.properties index 3f4b2a2..7f2649e 100644 --- a/ku_IQ/https-everywhere.properties +++ b/ku_IQ/https-everywhere.properties @@ -1,8 +1,8 @@ -https-everywhere.menu.globalEnable = بÛÚ¯ÛÚخستÙÛ Ø¦ÛÚ ØªÛ ØªÛ Ù¾Û Ø¦Ûس ÙÛ ÙÛÙ ÙÙØ´ÙÛÙÛÚ© -https-everywhere.menu.globalDisable = ÙÛکارخستÙÛ Ø¦ÛÚ ØªÛ ØªÛ Ù¾Û Ø¦Ûس ÙÛ ÙÛÙ ÙÙØ´ÙÛÙÛÚ© -https-everywhere.menu.enableDisable = بÛÚ¯ÛÚخستÙ/ÙÛکارخست٠Ûاساکا٠+https-everywhere.menu.globalEnable = بÛÚ¯ÛÚخستÙÛ Ø¦ÛÚ ØªÛ ØªÛ Ù¾Û Ø¦Ûس ÙÛ ÙÛÙ ÙÙ Ø´ÙÛÙÛÚ© +https-everywhere.menu.globalDisable = ÙÛکارخستÙÛ Ø¦ÛÚ ØªÛ ØªÛ Ù¾Û Ø¦Ûس ÙÛ ÙÛÙ ÙÙ Ø´ÙÛÙÛÚ© +https-everywhere.menu.enableDisable = بÛÚ¯ÛÚخستÙ/ÙÛکارخستÙÛ Ûاساکا٠https-everywhere.menu.noRules = (ÙÛÚ ÛاساÛÛÚ© ÙÛÛ Ø¨Û Ø¦ÛÙ Ù¾ÛÛجÛ) -https-everywhere.menu.unknownRules = (ÛاساکاÙÛ Ø¦ÛÙ Ù¾ÛÛØ¬Û ÙÛزاÙراÙÙ) -https-everywhere.toolbar.hint = ئÛÚ ØªÛ ØªÛ Ù¾Û Ø¦Ûس ÙÛ ÙÛÙ ÙÙØ´ÙÛÙÛÚ© ئÛستا ÙÛ Ú©Ø§Ø±Ø¯Ø§ÛÛ. ئÛتÙاÙÛ Ø¨ÛÚ¯ÛÚÛت ÙÛسÛر بÙÛÙ Ø§Û Ù Ø§ÚµÙ¾ÛÚ-بÛ-٠اڵپÛÚ Ø¨Û Ú©ÙÛککرد٠ÙÛسÛر ئاÛÚ©ÛÙÛ ÚÛÙÛÛ ÙاÙÙÛشا٠-https-everywhere.migration.notification0 = Ø¨Û Ø¦ÛÙÛÛ ÚاکردÙÛÙÛÛ Ú¯Ø±ÙÚ¯ ئÛÙجا٠بدÛÛØªØ Ø¦Û٠تازÛکردÙÛÙÛÛÛ ÛØ§Ø³Ø§Û Ø¦ÛÚ ØªÛ ØªÛ Ù¾Û Ø¦Ûس ÙÛ ÙÛÙ ÙÙØ´ÙÙÛÙÛÚ© ئÛÚ¯ÛÚÛÙÛتÛÙÛ Ø¨Û ÙØ±Ø®Û Ø³ÛرÛتاÛÛکاÙ. -https-everywhere.menu.ruleset-tests = ÛاساکاÙÛ Ø¦ÛÚ ØªÛ ØªÛ Ù¾Û Ø¦Ûس ÙÛ ÙÛÙ ÙÙØ´ÙÛÙÛÚ© تاÙÛبکÛرÛÙÛ. +https-everywhere.menu.unknownRules = (ÛاساکاÙÛ Ø¦ÛÙ Ù¾ÛÚÛÛÛ ÙÛزاÙراÙÙ) +https-everywhere.toolbar.hint = ئÛستا ئÛÚ ØªÛ ØªÛ Ù¾Û Ø¦Ûس ÙÛ ÙÛÙ ÙÙ Ø´ÙÛÙÛÚ© ئÛستا ÙÛ Ú©Ø§Ø±Ø¯Ø§ÛÛ. دÛتÙاÙÛ Ø¨ÛÚ¯ÛÚÛت ÙÛسÛر بÙÛÙ Ø§Û Ù Ø§ÚµÙ¾ÛÚ-بÛ-٠اڵپÛÚ Ø¨Û Ú©Ø±ØªÛکرد٠ÙÛسÛر ÙÛÙÛÚÚ©ÛÛ ÙاÙÙÛشاÙÛتÙÙÙ. +https-everywhere.migration.notification0 = Ø¨Û Ø¦ÛÙÛÛ ÚاکردÙÛÙÛÛ Ú¯Ø±ÙÚ¯ ئÛÙجا٠بدÛÛØªØ Ø¦Û٠بÛÚÛÚکردÙÛ ÛØ§Ø³Ø§Û Ø¦ÛÚ ØªÛ ØªÛ Ù¾Û Ø¦Ûس ÙÛ ÙÛÙ ÙÙ Ø´ÙÙÛÙÛÚ© دÛÚ¯ÛÚÛÙÛتÛÙÛ Ø¨Û ÙØ±Ø®Û Ø³ÛرÛتاÛÛÛکاÙ. +https-everywhere.menu.ruleset-tests = ÛاساکاÙÛ Ø¦ÛÚ ØªÛ ØªÛ Ù¾Û Ø¦Ûس ÙÛ ÙÛÙ ÙÙ Ø´ÙÛÙÛÚ© تاÙÛبکÛÙÛ. ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/whisperback] Update translations for whisperback
commit 6935ab48b38ae8d1931d9237c91d3b4fe6e7d7c6 Author: Translation commit botDate: Fri Sep 16 20:15:16 2016 + Update translations for whisperback --- ku_IQ/ku_IQ.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ku_IQ/ku_IQ.po b/ku_IQ/ku_IQ.po index f0a9954..0e2d8ff 100644 --- a/ku_IQ/ku_IQ.po +++ b/ku_IQ/ku_IQ.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-12-16 19:54+0100\n" -"PO-Revision-Date: 2016-09-16 19:38+\n" +"PO-Revision-Date: 2016-09-16 19:50+\n" "Last-Translator: Rasti K5 \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/otf/torproject/language/ku_IQ/)\n" "MIME-Version: 1.0\n" @@ -196,4 +196,4 @@ msgstr "Ûار٠ÛتÛ" #: ../data/whisperback.ui.h:30 msgid "Send" -msgstr "" +msgstr "ÙاردÙ" ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/bridgedb] Update translations for bridgedb
commit e667ce75445a5a3e8edad5c7fd31bae44b236354 Author: Translation commit botDate: Fri Sep 16 20:15:03 2016 + Update translations for bridgedb --- ku_IQ/LC_MESSAGES/bridgedb.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ku_IQ/LC_MESSAGES/bridgedb.po b/ku_IQ/LC_MESSAGES/bridgedb.po index e77bbfc..46eb187 100644 --- a/ku_IQ/LC_MESSAGES/bridgedb.po +++ b/ku_IQ/LC_MESSAGES/bridgedb.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: 'https://trac.torproject.org/projects/tor/newticket?component=BridgeDB=bridgedb-reported,msgid=isis,sysrqb=isis'\n" "POT-Creation-Date: 2015-07-25 03:40+\n" -"PO-Revision-Date: 2016-09-16 19:44+\n" +"PO-Revision-Date: 2016-09-16 19:59+\n" "Last-Translator: Rasti K5 \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/otf/torproject/language/ku_IQ/)\n" "MIME-Version: 1.0\n" @@ -358,7 +358,7 @@ msgstr "" #: bridgedb/strings.py:167 msgid "Displays this message." -msgstr "" +msgstr "Ù¾ÛشاÙداÙÛ Ø¦ÛÙ Ù¾ÛÛا٠Û." #. TRANSLATORS: Please try to make it clear that "vanilla" here refers to the #. same non-Pluggable Transport bridges described above as being ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tails-greeter] Update translations for tails-greeter
commit 45b1fcd0a6a2b6fb7feafa2afc1338364f3b4f1f Author: Translation commit botDate: Fri Sep 16 20:15:44 2016 + Update translations for tails-greeter --- ku_IQ/ku_IQ.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ku_IQ/ku_IQ.po b/ku_IQ/ku_IQ.po index aa7a7db..0362d41 100644 --- a/ku_IQ/ku_IQ.po +++ b/ku_IQ/ku_IQ.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-09-02 14:43+0200\n" -"PO-Revision-Date: 2016-09-16 19:30+\n" +"PO-Revision-Date: 2016-09-16 19:46+\n" "Last-Translator: Rasti K5 \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/otf/torproject/language/ku_IQ/)\n" "MIME-Version: 1.0\n" @@ -184,4 +184,4 @@ msgstr "" #: ../tailsgreeter/langpanel.py:142 ../tailsgreeter/langpanel.py:169 #: ../tailsgreeter/langpanel.py:202 msgid "Other..." -msgstr "" +msgstr "ÙÛ ØªØ±..." ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/liveusb-creator] Update translations for liveusb-creator
commit 0502716053bca86156366d3979ec7af120aee96e Author: Translation commit botDate: Fri Sep 16 20:15:32 2016 + Update translations for liveusb-creator --- ku_IQ/ku_IQ.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ku_IQ/ku_IQ.po b/ku_IQ/ku_IQ.po index 2023e32..d651ea3 100644 --- a/ku_IQ/ku_IQ.po +++ b/ku_IQ/ku_IQ.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-11-02 21:23+0100\n" -"PO-Revision-Date: 2016-09-16 19:35+\n" +"PO-Revision-Date: 2016-09-16 19:56+\n" "Last-Translator: Rasti K5 \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/otf/torproject/language/ku_IQ/)\n" "MIME-Version: 1.0\n" @@ -215,7 +215,7 @@ msgstr "" #: ../liveusb/gui.py:645 msgid "Installation complete!" -msgstr "" +msgstr "دا٠ÛزراÙد٠تÛÙا٠بÙÙ!" #: ../liveusb/gui.py:265 #, python-format @@ -261,7 +261,7 @@ msgstr "" #: ../liveusb/gui.py:588 #, python-format msgid "No free space on device %(device)s" -msgstr "" +msgstr "ÙÛÚ Ø´ÙÛÙÛÚ©Û Ø¨Ûتاڵ ÙÛ٠اÙÛتÛÙÛ ÙÛسÛر ئا٠ÛØ±Û %(device)s" #: ../liveusb/creator.py:826 msgid "No mount points found" ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tails-openpgp-applet] Update translations for tails-openpgp-applet
commit fd9feb6dcb9981d32fdd93ca56658684e372d513 Author: Translation commit botDate: Fri Sep 16 19:48:44 2016 + Update translations for tails-openpgp-applet --- ku_IQ/openpgp-applet.pot | 9 + 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ku_IQ/openpgp-applet.pot b/ku_IQ/openpgp-applet.pot index 87d9d12..1ac01eb 100644 --- a/ku_IQ/openpgp-applet.pot +++ b/ku_IQ/openpgp-applet.pot @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Rasti K5 , 2016 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: ta...@boum.org\n" "POT-Creation-Date: 2015-08-10 15:55+0200\n" -"PO-Revision-Date: 2015-11-23 02:23+\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2016-09-16 19:46+\n" +"Last-Translator: Rasti K5 \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/otf/torproject/language/ku_IQ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -51,7 +52,7 @@ msgstr "" #: bin/openpgp-applet:251 msgid "_Open Text Editor" -msgstr "" +msgstr "_کردÙÛÙÛÛ Ø¯ÛستکارÛÚ©ÛØ±Û Ø¯ÛÙ" #: bin/openpgp-applet:295 msgid "The clipboard does not contain valid input data." @@ -149,7 +150,7 @@ msgstr "" #: bin/openpgp-applet:664 msgid "No keys available" -msgstr "" +msgstr "ÙÛÚ Ú©ÙÛÙÛÚ© بÛردÛست ÙÛÛÛ" #: bin/openpgp-applet:666 msgid "" ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tails-onioncircuits] Update translations for tails-onioncircuits
commit 355c3f135730f9bed050be078f386139723c6bbd Author: Translation commit botDate: Fri Sep 16 19:48:54 2016 + Update translations for tails-onioncircuits --- ku_IQ/onioncircuits.pot | 9 + 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ku_IQ/onioncircuits.pot b/ku_IQ/onioncircuits.pot index e4ebf04..aab4a03 100644 --- a/ku_IQ/onioncircuits.pot +++ b/ku_IQ/onioncircuits.pot @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Rasti K5 , 2016 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-05-31 14:42+0200\n" -"PO-Revision-Date: 2016-06-01 09:23+\n" -"Last-Translator: carolyn \n" +"PO-Revision-Date: 2016-09-16 19:31+\n" +"Last-Translator: Rasti K5 \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/otf/torproject/language/ku_IQ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -43,7 +44,7 @@ msgstr "" #: ../onioncircuits:317 msgid "..." -msgstr "" +msgstr "..." #: ../onioncircuits:343 #, c-format @@ -66,7 +67,7 @@ msgstr "" #: ../onioncircuits:592 ../onioncircuits:593 ../onioncircuits:594 msgid "Unknown" -msgstr "" +msgstr "ÙÛÙاسراÙ" #: ../onioncircuits:607 msgid "Fingerprint:" ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tor-messenger-privdtd] Update translations for tor-messenger-privdtd
commit 96e2da488ce582295eab1db9337acf6024f8809b Author: Translation commit botDate: Fri Sep 16 19:48:33 2016 + Update translations for tor-messenger-privdtd --- ku_IQ/priv.dtd | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ku_IQ/priv.dtd b/ku_IQ/priv.dtd new file mode 100644 index 000..7007979 --- /dev/null +++ b/ku_IQ/priv.dtd @@ -0,0 +1,2 @@ + + \ No newline at end of file ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tor-messenger-prefsdtd] Update translations for tor-messenger-prefsdtd
commit f6e7ebaabc0e3d9a47307d80c845973a66ffd423 Author: Translation commit botDate: Fri Sep 16 19:48:27 2016 + Update translations for tor-messenger-prefsdtd --- ku_IQ/prefs.dtd | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ku_IQ/prefs.dtd b/ku_IQ/prefs.dtd index a875141..ef0155d 100644 --- a/ku_IQ/prefs.dtd +++ b/ku_IQ/prefs.dtd @@ -8,14 +8,14 @@ - + - - + + ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tor-messenger-fingerdtd] Update translations for tor-messenger-fingerdtd
commit 653b5c2a0fe7d2bc9dea04d58265cd93cbf3f8c0 Author: Translation commit botDate: Fri Sep 16 19:48:00 2016 + Update translations for tor-messenger-fingerdtd --- ku_IQ/finger.dtd | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ku_IQ/finger.dtd b/ku_IQ/finger.dtd index c74f003..31b302d 100644 --- a/ku_IQ/finger.dtd +++ b/ku_IQ/finger.dtd @@ -2,14 +2,14 @@ - - + + - - + + - + \ No newline at end of file ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tor-messenger-imtooltipproperties] Update translations for tor-messenger-imtooltipproperties
commit da2f572966075f591378deaa86a7ecd893b59eed Author: Translation commit botDate: Fri Sep 16 19:48:05 2016 + Update translations for tor-messenger-imtooltipproperties --- ku_IQ/imtooltip.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ku_IQ/imtooltip.properties b/ku_IQ/imtooltip.properties index 0dd51fe..95a8e63 100644 --- a/ku_IQ/imtooltip.properties +++ b/ku_IQ/imtooltip.properties @@ -3,5 +3,5 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. buddy.username=Username -buddy.account=Account +buddy.account=ÙÛÚ٠ار contact.tags=Tags ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tor-messenger-ircproperties] Update translations for tor-messenger-ircproperties
commit 2807f736a37db67478592356eb9328cbf4af0b22 Author: Translation commit botDate: Fri Sep 16 19:48:11 2016 + Update translations for tor-messenger-ircproperties --- ku_IQ/irc.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ku_IQ/irc.properties b/ku_IQ/irc.properties index eee7b49..daa1237 100644 --- a/ku_IQ/irc.properties +++ b/ku_IQ/irc.properties @@ -26,7 +26,7 @@ joinChat.password=_Password # These are the protocol specific options shown in the account manager and # account wizard windows. options.server=Server -options.port=Port +options.port=دÛرÚÛ options.ssl=Use SSL options.encoding=Character Set options.quitMessage=Quit message ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/torbutton-aboutdialogdtd] Update translations for torbutton-aboutdialogdtd
commit 79e35a280d782d44d60865701613d34a7e9ad3da Author: Translation commit botDate: Fri Sep 16 19:47:13 2016 + Update translations for torbutton-aboutdialogdtd --- ku_IQ/aboutdialog.dtd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ku_IQ/aboutdialog.dtd b/ku_IQ/aboutdialog.dtd index 5099ad7..4eb8472 100644 --- a/ku_IQ/aboutdialog.dtd +++ b/ku_IQ/aboutdialog.dtd @@ -6,7 +6,7 @@ - + ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tor-messenger-authdtd] Update translations for tor-messenger-authdtd
commit 52c65d1965016b0e1b334606df4760902dfc187b Author: Translation commit botDate: Fri Sep 16 19:47:29 2016 + Update translations for tor-messenger-authdtd --- ku_IQ/auth.dtd | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ku_IQ/auth.dtd b/ku_IQ/auth.dtd index 483f0b3..db300c4 100644 --- a/ku_IQ/auth.dtd +++ b/ku_IQ/auth.dtd @@ -8,14 +8,14 @@ - + - + - + \ No newline at end of file ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tor-and-https] Update translations for tor-and-https
commit 277455d12996d3f9e2aef272b3818731cc64d969 Author: Translation commit botDate: Fri Sep 16 19:47:02 2016 + Update translations for tor-and-https --- ku_IQ.po | 19 ++- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/ku_IQ.po b/ku_IQ.po index 657e535..ee6d623 100644 --- a/ku_IQ.po +++ b/ku_IQ.po @@ -1,12 +1,13 @@ # # Translators: +# Rasti K5 , 2016 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "POT-Creation-Date: 2014-07-17 14:23+\n" -"PO-Revision-Date: 2014-05-21 08:40+\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Kurdish (Iraq) (http://www.transifex.com/projects/p/torproject/language/ku_IQ/)\n" +"PO-Revision-Date: 2016-09-16 19:31+\n" +"Last-Translator: Rasti K5 \n" +"Language-Team: Kurdish (Iraq) (http://www.transifex.com/otf/torproject/language/ku_IQ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -53,14 +54,14 @@ msgstr "" #: C/tor-and-https.svg:363 #, no-wrap msgid "location" -msgstr "" +msgstr "Ø´ÙÛÙ" #. (itstool) path: defs/text #. Keep it short: 3em max. #: C/tor-and-https.svg:363 #, no-wrap msgid "WiFi" -msgstr "" +msgstr "ÙØ§Û ÙاÛ" #. (itstool) path: defs/text #. Keep it short: 4em max. @@ -74,7 +75,7 @@ msgstr "" #: C/tor-and-https.svg:363 #, no-wrap msgid "Hacker" -msgstr "" +msgstr "ÙاکÛر" #. (itstool) path: defs/text #. Keep it short: 8em is ok, 9em is max. @@ -88,14 +89,14 @@ msgstr "" #: C/tor-and-https.svg:363 #, no-wrap msgid "Sysadmin" -msgstr "" +msgstr "بÛÚÛÙÛبÛØ±Û Ø³ÛستÛÙ " #. (itstool) path: defs/text #. Keep it short: 8em is ok, 9em is max. #: C/tor-and-https.svg:363 #, no-wrap msgid "Police" -msgstr "" +msgstr "Ù¾ÛÙÛس" #. (itstool) path: defs/text #: C/tor-and-https.svg:363 @@ -114,7 +115,7 @@ msgstr "" #: C/tor-and-https.svg:363 #, no-wrap msgid "Key" -msgstr "" +msgstr "Ú©ÙÛÙ" #. (itstool) path: defs/text #: C/tor-and-https.svg:363 ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tor_animation] Update translations for tor_animation
commit f0dba329c1e1c4f17d1af17e7ecbf348ad4dc604 Author: Translation commit botDate: Fri Sep 16 19:47:08 2016 + Update translations for tor_animation --- ku_IQ.srt | 56 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/ku_IQ.srt b/ku_IQ.srt index 78c998d..a4e17b3 100644 --- a/ku_IQ.srt +++ b/ku_IQ.srt @@ -40,126 +40,126 @@ and so much more information about you and your life 10 -00:00:29,620 --> 00:00:32,460 +00:00:29,200 --> 00:00:31,500 which you probably didn't mean to share with unknown strangers, 11 -00:00:32,920 --> 00:00:35,840 +00:00:31,700 --> 00:00:34,000 who could easily use this data to exploit you. 12 -00:00:36,220 --> 00:00:38,120 +00:00:34,500 --> 00:00:37,000 But not if you're using Tor! 13 -00:00:39,140 --> 00:00:42,840 +00:00:37,140 --> 00:00:40,840 Tor Browser protects our privacy and identity on the Internet. 14 -00:00:43,560 --> 00:00:46,760 +00:00:41,560 --> 00:00:44,760 Tor secures your connection with three layers of encryption 15 -00:00:46,940 --> 00:00:51,760 +00:00:44,940 --> 00:00:49,760 and passes it through three voluntarily operated servers around the world, 16 -00:00:52,280 --> 00:00:55,520 +00:00:50,280 --> 00:00:53,520 which enables us to communicate anonymously over the Internet. 17 -00:00:58,560 --> 00:01:00,280 +00:00:56,560 --> 00:00:58,280 Tor also protects our data 18 -00:01:00,400 --> 00:01:03,900 +00:00:58,400 --> 00:01:01,900 against corporate or government targeted and mass surveillance. 19 -00:01:04,880 --> 00:01:09,340 +00:01:02,880 --> 00:01:07,340 Perhaps you live in a repressive country which tries to control and surveil the Internet. 20 -00:01:09,900 --> 00:01:13,800 +00:01:07,900 --> 00:01:11,800 Or perhaps you don't want big corporations taking advantage of your personal information. 21 -00:01:14,880 --> 00:01:17,640 +00:01:12,880 --> 00:01:15,640 Tor makes all of its users to look the same 22 -00:01:17,920 --> 00:01:20,800 +00:01:15,920 --> 00:01:18,800 which confuses the observer and makes you anonymous. 23 -00:01:21,500 --> 00:01:24,980 +00:01:19,500 --> 00:01:22,980 So, the more people use the Tor network, the stronger it gets 24 -00:01:25,140 --> 00:01:29,800 +00:01:23,140 --> 00:01:27,800 as it's easier to hide in a crowd of people who look exactly the same. 25 -00:01:30,700 --> 00:01:33,240 +00:01:28,700 --> 00:01:31,240 You can bypass the censorship without being worried about 26 -00:01:33,400 --> 00:01:36,100 +00:01:31,400 --> 00:01:34,100 the censor knowing what you do on the Internet. 27 -00:01:38,540 --> 00:01:41,440 +00:01:36,540 --> 00:01:39,440 The ads won't follow you everywhere for months, 28 -00:01:41,640 --> 00:01:43,300 +00:01:39,640 --> 00:01:41,300 starting when you first clicked on a product. 29 -00:01:45,880 --> 00:01:49,380 +00:01:43,880 --> 00:01:47,380 By using Tor, the sites you visit won't even know who you are, 30 -00:01:49,540 --> 00:01:51,760 +00:01:47,540 --> 00:01:49,760 from what part of the world you're visiting them, 31 -00:01:51,920 --> 00:01:53,920 +00:01:49,920 --> 00:01:51,920 unless you login and tell them so. 32 -00:01:56,200 --> 00:01:57,840 -By downloading and using Tor, +00:01:54,200 --> 00:01:55,840 +Ø¨Û Ø¯Ø§Ú¯Ø±ØªÙ Ù Ø¨ÛکارÙÛÙاÙÛ Tor, 33 -00:01:58,200 --> 00:02:00,560 +00:01:56,200 --> 00:01:58,560 you can protect the people who need anonymity, 34 -00:02:00,880 --> 00:02:03,640 -like activists, journalists and bloggers. +00:01:58,880 --> 00:02:01,640 +ÙÛÚ© ÚاÙاکÙاÙاÙØ ÚÛÚÙا٠ÛÙÙÙسا٠٠بÙÛÚ¯ÙÙÙسÛکاÙ. 35 -00:02:04,000 --> 00:02:09,000 +00:02:02,000 --> 00:02:07,000 Download and use Tor! Or run a relay! ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/torbutton-torbuttondtd] Update translations for torbutton-torbuttondtd
commit 316e9823b5a10512d4b8dfd39ff4fb1dcc44d0d2 Author: Translation commit botDate: Fri Sep 16 19:46:48 2016 + Update translations for torbutton-torbuttondtd --- ku_IQ/torbutton.dtd | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ku_IQ/torbutton.dtd b/ku_IQ/torbutton.dtd index e19e42e..a2d8661 100644 --- a/ku_IQ/torbutton.dtd +++ b/ku_IQ/torbutton.dtd @@ -4,7 +4,7 @@ - + @@ -15,9 +15,9 @@ - + - + ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/torbutton-brandproperties] Update translations for torbutton-brandproperties
commit a4e3e2604972bc4b46822fefbd44139edbc3522c Author: Translation commit botDate: Fri Sep 16 19:46:33 2016 + Update translations for torbutton-brandproperties --- ku_IQ/brand.properties | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ku_IQ/brand.properties b/ku_IQ/brand.properties index 732c157..3a50a18 100644 --- a/ku_IQ/brand.properties +++ b/ku_IQ/brand.properties @@ -2,9 +2,9 @@ # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. -brandShorterName=Tor Browser -brandShortName=Tor Browser -brandFullName=Tor Browser +brandShorterName=ÙÛبگÛÚÛ Tor +brandShortName=ÙÛبگÛÚÛ Tor +brandFullName=ÙÛبگÛÚÛ Tor vendorShortName=Tor Project homePageSingleStartMain=Firefox Start, a fast home page with built-in search ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tails-iuk] Update translations for tails-iuk
commit cfc3c782ce103fa5b283cc1bdf0849eebb7beb87 Author: Translation commit botDate: Fri Sep 16 19:46:51 2016 + Update translations for tails-iuk --- ku_IQ.po | 9 + 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ku_IQ.po b/ku_IQ.po index e0f40c9..83c97c3 100644 --- a/ku_IQ.po +++ b/ku_IQ.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Rasti K5 , 2016 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: Tails developers \n" "POT-Creation-Date: 2016-05-25 16:55+0200\n" -"PO-Revision-Date: 2016-05-26 08:49+\n" -"Last-Translator: carolyn \n" +"PO-Revision-Date: 2016-09-16 19:43+\n" +"Last-Translator: Rasti K5 \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/otf/torproject/language/ku_IQ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -136,7 +137,7 @@ msgstr "" #: ../lib/Tails/IUK/Frontend.pm:412 msgid "New version available" -msgstr "" +msgstr "ÙÛشاÙÛ ÙÙÛ Ø¨ÛردÛستÛ" #: ../lib/Tails/IUK/Frontend.pm:469 msgid "Downloading upgrade" @@ -201,7 +202,7 @@ msgstr "" #: ../lib/Tails/IUK/Frontend.pm:614 msgid "Restart now" -msgstr "" +msgstr "ئÛستا دÛستپÛبکÛÙÛ" #: ../lib/Tails/IUK/Frontend.pm:615 msgid "Restart later" ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tor-launcher-network-settings] Update translations for tor-launcher-network-settings
commit 163d8a6986c17a47c1d699f8953c314671b86be7 Author: Translation commit botDate: Fri Sep 16 19:46:15 2016 + Update translations for tor-launcher-network-settings --- ku_IQ/network-settings.dtd | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ku_IQ/network-settings.dtd b/ku_IQ/network-settings.dtd index d7d8572..49dbab3 100644 --- a/ku_IQ/network-settings.dtd +++ b/ku_IQ/network-settings.dtd @@ -34,7 +34,7 @@ - + @@ -44,11 +44,11 @@ - + - + - + ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tor-launcher-properties] Update translations for tor-launcher-properties
commit 8e4ebe6b94c6c2ebe35e8700d380ffb504f0233d Author: Translation commit botDate: Fri Sep 16 19:46:04 2016 + Update translations for tor-launcher-properties --- ku_IQ/torlauncher.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ku_IQ/torlauncher.properties b/ku_IQ/torlauncher.properties index 94d395d..626f705 100644 --- a/ku_IQ/torlauncher.properties +++ b/ku_IQ/torlauncher.properties @@ -31,7 +31,7 @@ torlauncher.error_bridge_bad_default_type=No provided bridges that have the tran torlauncher.recommended_bridge=(recommended) torlauncher.connect=Connect -torlauncher.restart_tor=Restart Tor +torlauncher.restart_tor=دÙÙبار دÛستپÛکردÙÛÙÛÛ Tor torlauncher.quit=Quit torlauncher.quit_win=داخست٠torlauncher.done=Done ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/torbutton-branddtd] Update translations for torbutton-branddtd
commit f5592af130f00be01cd004494359914412ac12df Author: Translation commit botDate: Fri Sep 16 19:46:39 2016 + Update translations for torbutton-branddtd --- ku_IQ/brand.dtd | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ku_IQ/brand.dtd b/ku_IQ/brand.dtd index 3df1a08..7045aca 100644 --- a/ku_IQ/brand.dtd +++ b/ku_IQ/brand.dtd @@ -2,9 +2,9 @@ - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> - - - + + + ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tails-misc] Update translations for tails-misc
commit 5f895784b6da278c93cd8a72ef9f3e0ac123b3ef Author: Translation commit botDate: Fri Sep 16 19:46:21 2016 + Update translations for tails-misc --- ku_IQ.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ku_IQ.po b/ku_IQ.po index 7f8fb9a..14eddde 100644 --- a/ku_IQ.po +++ b/ku_IQ.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-09-02 16:02+0200\n" -"PO-Revision-Date: 2016-09-03 08:57+\n" +"PO-Revision-Date: 2016-09-16 19:22+\n" "Last-Translator: carolyn \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/otf/torproject/language/ku_IQ/)\n" "MIME-Version: 1.0\n" @@ -381,7 +381,7 @@ msgstr "" #: ../config/chroot_local-includes/usr/share/applications/tor-browser.desktop.in.h:1 msgid "Tor Browser" -msgstr "" +msgstr "ÙÛبگÛÚÛ Tor" #: ../config/chroot_local-includes/usr/share/applications/tor-browser.desktop.in.h:2 msgid "Anonymous Web Browser" ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/abouttor-homepage] Update translations for abouttor-homepage
commit c83f5f5c4f875c15e83f5df5eb37604fde30a7c4 Author: Translation commit botDate: Fri Sep 16 19:46:27 2016 + Update translations for abouttor-homepage --- ku_IQ/aboutTor.dtd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ku_IQ/aboutTor.dtd b/ku_IQ/aboutTor.dtd index d44f164..008dff8 100644 --- a/ku_IQ/aboutTor.dtd +++ b/ku_IQ/aboutTor.dtd @@ -12,11 +12,11 @@ - + - + ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/mat-gui] Update translations for mat-gui
commit a2581e742ff1e61f272906188a2b586a1c32c7c8 Author: Translation commit botDate: Fri Sep 16 19:45:58 2016 + Update translations for mat-gui --- ku_IQ.po | 21 +++-- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/ku_IQ.po b/ku_IQ.po index 18ce360..fd491e3 100644 --- a/ku_IQ.po +++ b/ku_IQ.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Rasti K5 , 2016 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-02-10 23:06+0100\n" -"PO-Revision-Date: 2016-03-21 16:34+\n" -"Last-Translator: carolyn \n" +"PO-Revision-Date: 2016-09-16 19:41+\n" +"Last-Translator: Rasti K5 \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/otf/torproject/language/ku_IQ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -57,11 +58,11 @@ msgstr "" #: mat-gui:192 msgid "Website" -msgstr "" +msgstr "٠اڵپÛÚ" #: mat-gui:219 msgid "Preferences" -msgstr "" +msgstr "ÙÛڵبÚاردÙÛکاÙ" #: mat-gui:232 msgid "Reduce PDF quality" @@ -81,7 +82,7 @@ msgstr "" #: mat-gui:280 msgid "Unknown" -msgstr "" +msgstr "ÙÛÙاسراÙ" #: mat-gui:325 msgid "Not-supported" @@ -97,7 +98,7 @@ msgstr "" #: mat-gui:343 msgid "Fileformat not supported" -msgstr "" +msgstr "ÙÛÚÙ Ø§ØªÛ Ù¾ÛÚÚ¯Û Ù¾Ø§ÚµÙ¾Ø´ØªÛ ÙÛکراÙÛ" #: mat-gui:346 msgid "These files can not be processed:" @@ -105,7 +106,7 @@ msgstr "" #: mat-gui:351 mat-gui:380 data/mat.glade:239 msgid "Filename" -msgstr "" +msgstr "ÙاÙÛ Ù¾ÛÚÚ¯Û" #: mat-gui:353 msgid "Reason" @@ -140,15 +141,15 @@ msgstr "" #: data/mat.glade:95 msgid "_Edit" -msgstr "" +msgstr "_دÛستکارÛکردÙ" #: data/mat.glade:141 msgid "_Help" -msgstr "" +msgstr "_Ûار٠ÛتÛ" #: data/mat.glade:187 msgid "Add" -msgstr "" +msgstr "زÛادکردÙ" #: data/mat.glade:256 msgid "State" ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/torbirdy] Update translations for torbirdy
commit 3d0d1d874021481680f29d89abae79e126b85f46 Author: Translation commit botDate: Fri Sep 16 19:45:52 2016 + Update translations for torbirdy --- ku_IQ/torbirdy.dtd | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ku_IQ/torbirdy.dtd b/ku_IQ/torbirdy.dtd index 2d0be2e..c9f270f 100644 --- a/ku_IQ/torbirdy.dtd +++ b/ku_IQ/torbirdy.dtd @@ -3,13 +3,13 @@ - + - + - + @@ -31,7 +31,7 @@ - + ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tails-persistence-setup] Update translations for tails-persistence-setup
commit 38bfa8492d94604c89a0edac1c52921035a21bf9 Author: Translation commit botDate: Fri Sep 16 19:45:39 2016 + Update translations for tails-persistence-setup --- ku_IQ/ku_IQ.po | 11 ++- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/ku_IQ/ku_IQ.po b/ku_IQ/ku_IQ.po index c736a4f..9e03be3 100644 --- a/ku_IQ/ku_IQ.po +++ b/ku_IQ/ku_IQ.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Rasti K5 , 2016 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: Tails developers \n" "POT-Creation-Date: 2016-05-25 02:27+0200\n" -"PO-Revision-Date: 2016-06-06 08:15+\n" -"Last-Translator: carolyn \n" +"PO-Revision-Date: 2016-09-16 19:35+\n" +"Last-Translator: Rasti K5 \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/otf/torproject/language/ku_IQ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -83,7 +84,7 @@ msgstr "" #: ../lib/Tails/Persistence/Configuration/Presets.pm:128 msgid "Printers" -msgstr "" +msgstr "ÚاپکÛرÛکاÙ" #: ../lib/Tails/Persistence/Configuration/Presets.pm:130 msgid "Printers configuration" @@ -99,7 +100,7 @@ msgstr "" #: ../lib/Tails/Persistence/Configuration/Presets.pm:148 msgid "APT Packages" -msgstr "" +msgstr "Ú¯ÙرزÛکاÙÛ APT" #: ../lib/Tails/Persistence/Configuration/Presets.pm:150 msgid "Packages downloaded by APT" @@ -286,7 +287,7 @@ msgstr "" #: ../lib/Tails/Persistence/Step/Configure.pm:74 msgid "Save" -msgstr "" +msgstr "پاشÛÚ©ÛÙتکردÙ" #: ../lib/Tails/Persistence/Step/Configure.pm:143 msgid "Saving..." ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/https_everywhere] Update translations for https_everywhere
commit c7052009c79ba222c3caf58415293d98f4fb372b Author: Translation commit botDate: Fri Sep 16 19:45:25 2016 + Update translations for https_everywhere --- ku_IQ/https-everywhere.dtd | 14 +++--- ku_IQ/ssl-observatory.dtd | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/ku_IQ/https-everywhere.dtd b/ku_IQ/https-everywhere.dtd index 36ff7e7..15e1251 100644 --- a/ku_IQ/https-everywhere.dtd +++ b/ku_IQ/https-everywhere.dtd @@ -3,36 +3,36 @@ - + - + - + - + - + - + - + diff --git a/ku_IQ/ssl-observatory.dtd b/ku_IQ/ssl-observatory.dtd index 0bdf17e..32de9b5 100644 --- a/ku_IQ/ssl-observatory.dtd +++ b/ku_IQ/ssl-observatory.dtd @@ -70,7 +70,7 @@ received by the Observatory will indicate that somebody visited www.something.com, but not who visited the site, or what specific page they looked at. Mouseover the options for further details:"> - + @@ -84,7 +84,7 @@ looked at. Mouseover the options for further details:"> - + ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tails-greeter] Update translations for tails-greeter
commit b139a2fa2e66f31e8aee8c66abc58ab2f669774a Author: Translation commit botDate: Fri Sep 16 19:45:45 2016 + Update translations for tails-greeter --- ku_IQ/ku_IQ.po | 17 + 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/ku_IQ/ku_IQ.po b/ku_IQ/ku_IQ.po index f320dc9..aa7a7db 100644 --- a/ku_IQ/ku_IQ.po +++ b/ku_IQ/ku_IQ.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Rasti K5 , 2016 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-29 14:32+0100\n" -"PO-Revision-Date: 2016-03-21 16:27+\n" -"Last-Translator: carolyn \n" +"POT-Creation-Date: 2016-09-02 14:43+0200\n" +"PO-Revision-Date: 2016-09-16 19:30+\n" +"Last-Translator: Rasti K5 \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/otf/torproject/language/ku_IQ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -59,7 +60,7 @@ msgstr "" #: ../glade/persistencewindow.glade.h:11 msgid "More options?" -msgstr "" +msgstr "بÚاردÛÛ Ø²ÛاترØ" #: ../glade/optionswindow.glade.h:3 msgid "Administration password" @@ -79,7 +80,7 @@ msgstr "" #: ../glade/optionswindow.glade.h:7 msgid "Password:" -msgstr "" +msgstr "تÛÙ¾ÛÚÛÙØ´Û:" #: ../glade/optionswindow.glade.h:8 msgid "Verify Password:" @@ -145,7 +146,7 @@ msgstr "" msgid " " msgstr "" -#: ../glade/langpanel.glade.h:2 ../tailsgreeter/langpanel.py:43 +#: ../glade/langpanel.glade.h:2 ../tailsgreeter/langpanel.py:45 msgid "Language" msgstr "" @@ -180,7 +181,7 @@ msgid "" "%(stderr)s" msgstr "" -#: ../tailsgreeter/langpanel.py:140 ../tailsgreeter/langpanel.py:167 -#: ../tailsgreeter/langpanel.py:200 +#: ../tailsgreeter/langpanel.py:142 ../tailsgreeter/langpanel.py:169 +#: ../tailsgreeter/langpanel.py:202 msgid "Other..." msgstr "" ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/liveusb-creator] Update translations for liveusb-creator
commit 6a9df0fdc7d1c79b6cab8567024592ace729d527 Author: Translation commit botDate: Fri Sep 16 19:45:33 2016 + Update translations for liveusb-creator --- ku_IQ/ku_IQ.po | 11 ++- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/ku_IQ/ku_IQ.po b/ku_IQ/ku_IQ.po index c6347d9..2023e32 100644 --- a/ku_IQ/ku_IQ.po +++ b/ku_IQ/ku_IQ.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Rasti K5 , 2016 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-11-02 21:23+0100\n" -"PO-Revision-Date: 2015-11-03 09:24+\n" -"Last-Translator: carolyn \n" +"PO-Revision-Date: 2016-09-16 19:35+\n" +"Last-Translator: Rasti K5 \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/otf/torproject/language/ku_IQ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -98,7 +99,7 @@ msgstr "" #: ../liveusb/dialog.py:161 msgid "Alt+B" -msgstr "" +msgstr "Alt+B" #: ../liveusb/dialog.py:160 msgid "Browse" @@ -143,7 +144,7 @@ msgstr "" #: ../liveusb/gui.py:778 msgid "Download complete!" -msgstr "" +msgstr "داگرتÙÛÚ©Û ØªÛÙا٠بÙÙ!" #: ../liveusb/gui.py:782 msgid "Download failed: " @@ -604,4 +605,4 @@ msgstr "" #: ../liveusb/dialog.py:162 msgid "or" -msgstr "" +msgstr "ÛاÙ" ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/torcheck] Update translations for torcheck
commit 932d109e8cfd74e67361c709fbf96d2a1e1eae9a Author: Translation commit botDate: Fri Sep 16 19:45:10 2016 + Update translations for torcheck --- ku_IQ/torcheck.po | 13 +++-- 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/ku_IQ/torcheck.po b/ku_IQ/torcheck.po index 8d92e0f..d31051f 100644 --- a/ku_IQ/torcheck.po +++ b/ku_IQ/torcheck.po @@ -2,13 +2,14 @@ # Copyright (C) 2008-2013 The Tor Project, Inc # # Translators: +# Rasti K5 , 2016 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "POT-Creation-Date: 2012-02-16 20:28+PDT\n" -"PO-Revision-Date: 2015-02-14 08:38+\n" -"Last-Translator: runasand \n" -"Language-Team: Kurdish (Iraq) (http://www.transifex.com/projects/p/torproject/language/ku_IQ/)\n" +"PO-Revision-Date: 2016-09-16 19:36+\n" +"Last-Translator: Rasti K5 \n" +"Language-Team: Kurdish (Iraq) (http://www.transifex.com/otf/torproject/language/ku_IQ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -55,7 +56,7 @@ msgid "Your IP address appears to be: " msgstr "" msgid "Are you using Tor?" -msgstr "" +msgstr "ئاÛا ØªÛ Tor بÛکاردÛÙÛÙÛØ" msgid "This page is also available in the following languages:" msgstr "" @@ -72,7 +73,7 @@ msgid "Learn More " msgstr "" msgid "Go" -msgstr "" +msgstr "بÚÛ" msgid "Short User Manual" msgstr "" @@ -90,7 +91,7 @@ msgid "JavaScript is enabled." msgstr "" msgid "JavaScript is disabled." -msgstr "" +msgstr "جاڤاسکرÛپت ÚاÙاککراÙÛ." msgid "However, it does not appear to be Tor Browser." msgstr "" ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/whisperback] Update translations for whisperback
commit 336ceb9a7b6739e4f432458f248b0baea6b97d3b Author: Translation commit botDate: Fri Sep 16 19:45:16 2016 + Update translations for whisperback --- ku_IQ/ku_IQ.po | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ku_IQ/ku_IQ.po b/ku_IQ/ku_IQ.po index 4cf98bf..f0a9954 100644 --- a/ku_IQ/ku_IQ.po +++ b/ku_IQ/ku_IQ.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Rasti K5 , 2016 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-12-16 19:54+0100\n" -"PO-Revision-Date: 2012-02-26 16:11+\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2016-09-16 19:38+\n" +"Last-Translator: Rasti K5 \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/otf/torproject/language/ku_IQ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -134,7 +135,7 @@ msgstr "" #: ../data/whisperback.ui.h:3 msgid "https://tails.boum.org/; -msgstr "" +msgstr "https://tails.boum.org/; #: ../data/whisperback.ui.h:4 msgid "" ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/bridgedb] Update translations for bridgedb
commit 1bc962b5173a7e6dad09ad958d67333cc8b2e8cf Author: Translation commit botDate: Fri Sep 16 19:45:04 2016 + Update translations for bridgedb --- ku_IQ/LC_MESSAGES/bridgedb.po | 15 --- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/ku_IQ/LC_MESSAGES/bridgedb.po b/ku_IQ/LC_MESSAGES/bridgedb.po index f8405da..e77bbfc 100644 --- a/ku_IQ/LC_MESSAGES/bridgedb.po +++ b/ku_IQ/LC_MESSAGES/bridgedb.po @@ -5,13 +5,14 @@ # Translators: # Haval Abdulkarim , 2015 # Jaza Abdullah , 2015 +# Rasti K5 , 2016 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: 'https://trac.torproject.org/projects/tor/newticket?component=BridgeDB=bridgedb-reported,msgid=isis,sysrqb=isis'\n" "POT-Creation-Date: 2015-07-25 03:40+\n" -"PO-Revision-Date: 2016-03-21 16:27+\n" -"Last-Translator: Jaza Abdullah \n" +"PO-Revision-Date: 2016-09-16 19:44+\n" +"Last-Translator: Rasti K5 \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/otf/torproject/language/ku_IQ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -33,7 +34,7 @@ msgstr "" #. "Tor Browser" #: bridgedb/https/server.py:167 msgid "Sorry! Something went wrong with your request." -msgstr "ببÙرÛ! ÙÛÚµÛÛÛÚ© ÚÙÛدا ÙÛ Ø¯Ø§ÙاکردÙÛÚ©Ûدا." +msgstr "ببÙÙرÛ! ÙÛÚµÛÛÛÚ© ÚÙÙÛدا ÙÛ Ø¯Ø§ÙاکردÙÛÚ©Ûدا." #: bridgedb/https/templates/base.html:79 msgid "Report a Bug" @@ -106,7 +107,7 @@ msgstr "" #: bridgedb/https/templates/index.html:25 #, python-format msgid "Step %s2%s" -msgstr "" +msgstr "ÙÛÙگاÙÛ %s2%s" #: bridgedb/https/templates/index.html:27 #, python-format @@ -116,7 +117,7 @@ msgstr "" #: bridgedb/https/templates/index.html:36 #, python-format msgid "Step %s3%s" -msgstr "" +msgstr "ÙÛÙگاÙÛ %s3%s" #: bridgedb/https/templates/index.html:38 #, python-format @@ -193,11 +194,11 @@ msgstr "" #: bridgedb/strings.py:56 #, python-format msgid "Hey, %s!" -msgstr "" +msgstr "سڵاÙØ %s!" #: bridgedb/strings.py:57 msgid "Hello, friend!" -msgstr "" +msgstr "سڵاÙØ ÙاÙÚÛ!" #: bridgedb/strings.py:58 bridgedb/https/templates/base.html:90 msgid "Public Keys" ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tor-messenger-prefsdtd_completed] Update translations for tor-messenger-prefsdtd_completed
commit 021b9e37d76096d83e2ccd340001f17d730a98b9 Author: Translation commit botDate: Fri Sep 16 15:18:20 2016 + Update translations for tor-messenger-prefsdtd_completed --- pl/prefs.dtd | 11 ++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pl/prefs.dtd b/pl/prefs.dtd index da36ad7..c7eb53d 100644 --- a/pl/prefs.dtd +++ b/pl/prefs.dtd @@ -1,4 +1,6 @@ + + @@ -10,4 +12,11 @@ - \ No newline at end of file + + + + + + + + \ No newline at end of file ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tor-messenger-prefsdtd] Update translations for tor-messenger-prefsdtd
commit b643c65815507086fa5c34eb838ebde9d5369365 Author: Translation commit botDate: Fri Sep 16 15:18:07 2016 + Update translations for tor-messenger-prefsdtd --- pl/prefs.dtd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pl/prefs.dtd b/pl/prefs.dtd index 60ba8fe..c7eb53d 100644 --- a/pl/prefs.dtd +++ b/pl/prefs.dtd @@ -19,4 +19,4 @@ - \ No newline at end of file + \ No newline at end of file ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [tor-browser-bundle/master] Bug 19528: fix permissions on get-moz-build-date (fixup)
commit 6a0a82dd8a9e1d882e780b9a0783e91c1c0d69af Author: Nicolas VigierDate: Fri Sep 16 17:09:22 2016 +0200 Bug 19528: fix permissions on get-moz-build-date (fixup) --- gitian/descriptors/linux/gitian-firefox.yml | 1 + gitian/descriptors/mac/gitian-firefox.yml | 1 + gitian/descriptors/windows/gitian-firefox.yml | 1 + 3 files changed, 3 insertions(+) diff --git a/gitian/descriptors/linux/gitian-firefox.yml b/gitian/descriptors/linux/gitian-firefox.yml index 79356a9..6f3d3ad 100644 --- a/gitian/descriptors/linux/gitian-firefox.yml +++ b/gitian/descriptors/linux/gitian-firefox.yml @@ -89,6 +89,7 @@ script: | cd tor-browser # run get-moz-build-date before removing .git, which is used to get the year + chmod +x ~/build/get-moz-build-date eval $(~/build/get-moz-build-date $(cat browser/config/version.txt)) # .git and the src takes up a lot of useless space, and we need the space to build rm -rf .git diff --git a/gitian/descriptors/mac/gitian-firefox.yml b/gitian/descriptors/mac/gitian-firefox.yml index 607a04c..7461031 100644 --- a/gitian/descriptors/mac/gitian-firefox.yml +++ b/gitian/descriptors/mac/gitian-firefox.yml @@ -44,6 +44,7 @@ script: | COPYRIGHT_YEAR=${TB_COMMIT_DATE%%-*} mv .mozconfig-mac .mozconfig # run get-moz-build-date before removing .git, which is used to get the year + chmod +x ~/build/get-moz-build-date eval $(~/build/get-moz-build-date $(cat browser/config/version.txt)) # .git and the src takes up a lot of useless space, and we need the space to build #git archive HEAD | tar -x -C $OUTDIR/src diff --git a/gitian/descriptors/windows/gitian-firefox.yml b/gitian/descriptors/windows/gitian-firefox.yml index cc7fdeb..8b68925 100644 --- a/gitian/descriptors/windows/gitian-firefox.yml +++ b/gitian/descriptors/windows/gitian-firefox.yml @@ -69,6 +69,7 @@ script: | # obscure one. export DLLFLAGS="-specs=/home/ubuntu/build/msvcr100.spec" # run get-moz-build-date before removing .git, which is used to get the year + chmod +x ~/build/get-moz-build-date eval $(~/build/get-moz-build-date $(cat browser/config/version.txt)) # .git and the src takes up a lot of useless space, and we need the space to build #git archive HEAD | tar -x -C $OUTDIR/src ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [webwml/master] Bumping expert bundle to 0.2.8.7
commit 0659413b9dcb2679a5dc560c432984950cb24727 Author: Georg KoppenDate: Fri Sep 16 15:07:28 2016 + Bumping expert bundle to 0.2.8.7 --- include/versions.wmi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/versions.wmi b/include/versions.wmi index 12d510d..36e7003 100644 --- a/include/versions.wmi +++ b/include/versions.wmi @@ -1,7 +1,7 @@ 0.2.8.7 0.2.9.2-alpha -0.2.8.6 +0.2.8.7 maint-6.0 6.0.5 ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [webwml/master] Add new Tor Browser version: 6.0.5
commit 065295265350f35b51d8ddbe29c51f65924d43b5 Author: Nicolas VigierDate: Fri Sep 16 13:34:34 2016 +0200 Add new Tor Browser version: 6.0.5 --- include/versions.wmi | 22 +++--- projects/torbrowser/RecommendedTBBVersions | 4 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/include/versions.wmi b/include/versions.wmi index 94a086d..12d510d 100644 --- a/include/versions.wmi +++ b/include/versions.wmi @@ -4,27 +4,27 @@ 0.2.8.6 maint-6.0 -6.0.4 +6.0.5 6.5a2 -6.0.4 -2016-08-02 +6.0.5 +2016-09-16 6.5a2 2016-08-03 -6.0.4 -2016-08-02 -6.0.4 -2016-08-02 +6.0.5 +2016-09-16 +6.0.5 +2016-09-16 6.5a2 2016-08-03 6.5a2 2016-08-03 -6.0.4 -2016-08-02 -6.0.4 -2016-08-02 +6.0.5 +2016-09-16 +6.0.5 +2016-09-16 6.5a2 2016-08-03 diff --git a/projects/torbrowser/RecommendedTBBVersions b/projects/torbrowser/RecommendedTBBVersions index 9fd109e..3f9813f 100644 --- a/projects/torbrowser/RecommendedTBBVersions +++ b/projects/torbrowser/RecommendedTBBVersions @@ -7,6 +7,10 @@ "6.0.4-Linux", "6.0.4-MacOS", "6.0.4-Windows", +"6.0.5", +"6.0.5-Linux", +"6.0.5-MacOS", +"6.0.5-Windows", "6.5a2", "6.5a2-Linux", "6.5a2-MacOS", ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [nyx/master] Move show_message() and input_prompt()
commit 3a2cf0e242d2ed7d8b88f04571aa471bdb1ceed7 Author: Damian JohnsonDate: Thu Sep 15 13:12:58 2016 -0700 Move show_message() and input_prompt() Last controller module functions with the exception of the starter. --- nyx/__init__.py | 32 nyx/controller.py| 26 +- nyx/menu.py | 7 +++ nyx/panel/config.py | 11 +-- nyx/panel/graph.py | 7 +++ nyx/panel/header.py | 5 ++--- nyx/panel/interpreter.py | 1 - nyx/panel/log.py | 13 ++--- 8 files changed, 52 insertions(+), 50 deletions(-) diff --git a/nyx/__init__.py b/nyx/__init__.py index a22e9f3..db78bd4 100644 --- a/nyx/__init__.py +++ b/nyx/__init__.py @@ -9,6 +9,8 @@ Tor curses monitoring application. nyx_interface - nyx interface singleton tor_controller - tor connection singleton + show_message - shows a message to the user + input_prompt - prompts the user for text input init_controller - initializes our connection to tor expand_path - expands path with respect to our chroot join - joins a series of strings up to a set length @@ -141,6 +143,36 @@ def tor_controller(): return TOR_CONTROLLER +def show_message(message = None, *attr, **kwargs): + """ + Shows a message in our header. + + :param str message: message to be shown + """ + + return nyx_interface().header_panel().show_message(message, *attr, **kwargs) + + +def input_prompt(msg, initial_value = ''): + """ + Prompts the user for input. + + :param str message: prompt for user input + :param str initial_value: initial value of the prompt + + :returns: **str** with the user input, this is **None** if the prompt is +canceled + """ + + header_panel = nyx_interface().header_panel() + + header_panel.show_message(msg) + user_input = nyx.curses.str_input(len(msg), header_panel.get_height() - 1, initial_value) + header_panel.show_message() + + return user_input + + def init_controller(*args, **kwargs): """ Sets the Controller used by nyx. This is a passthrough for Stem's diff --git a/nyx/controller.py b/nyx/controller.py index 85cf1fe..980f44c 100644 --- a/nyx/controller.py +++ b/nyx/controller.py @@ -19,7 +19,7 @@ import stem from stem.util import conf, log from nyx.curses import BOLD -from nyx import nyx_interface, tor_controller +from nyx import nyx_interface, tor_controller, show_message def conf_handler(key, value): @@ -35,30 +35,6 @@ CONFIG = conf.config_dict('nyx', { }, conf_handler) -def show_message(message = None, *attr, **kwargs): - return nyx_interface().header_panel().show_message(message, *attr, **kwargs) - - -def input_prompt(msg, initial_value = ''): - """ - Prompts the user for input. - - :param str message: prompt for user input - :param str initial_value: initial value of the prompt - - :returns: **str** with the user input, this is **None** if the prompt is -canceled - """ - - header_panel = nyx_interface().header_panel() - - header_panel.show_message(msg) - user_input = nyx.curses.str_input(len(msg), header_panel.get_height() - 1, initial_value) - header_panel.show_message() - - return user_input - - def start_nyx(): """ Main draw loop context. diff --git a/nyx/menu.py b/nyx/menu.py index 4d5f61c..83b8479 100644 --- a/nyx/menu.py +++ b/nyx/menu.py @@ -7,13 +7,12 @@ Menu for controlling nyx. import functools -import nyx.controller import nyx.curses import nyx.popups import stem -from nyx import nyx_interface, tor_controller +from nyx import nyx_interface, tor_controller, show_message from nyx.curses import RED, WHITE, NORMAL, BOLD, UNDERLINE from stem.util import str_tools @@ -205,7 +204,7 @@ def show_menu(): cursor = MenuCursor(menu.children[0].children[0]) with nyx.curses.CURSES_LOCK: -nyx.controller.show_message('Press m or esc to close the menu.', BOLD) +show_message('Press m or esc to close the menu.', BOLD) while not cursor.is_done: selection_x = _draw_top_menubar(menu, cursor.selection) @@ -213,7 +212,7 @@ def show_menu(): cursor.handle_key(nyx.curses.key_input()) nyx_interface().redraw() -nyx.controller.show_message() +show_message() def _make_menu(): diff --git a/nyx/panel/config.py b/nyx/panel/config.py index d67afae..42271e2 100644 --- a/nyx/panel/config.py +++ b/nyx/panel/config.py @@ -9,7 +9,6 @@ and the resulting configuration files saved. import curses import os -import nyx.controller import nyx.curses import nyx.panel import nyx.popups @@ -20,7 +19,7 @@ import stem.util.connection from nyx.curses import WHITE, NORMAL, BOLD, HIGHLIGHT from nyx.menu import MenuItem, Submenu -from nyx import DATA_DIR, tor_controller +from nyx import DATA_DIR, tor_controller, input_prompt, show_message from stem.util import conf, enum, log, str_tools @@ -194,9 +193,9 @@ class ConfigPanel(nyx.panel.Panel): if
[tor-commits] [nyx/master] Move panel methods
commit af4562df66c5c6d3dc633cedf4368c88f463e8d0 Author: Damian JohnsonDate: Tue Sep 13 10:25:19 2016 -0700 Move panel methods Pretty direct cut-and-paste with the exception of renaming get_display_panels(). --- nyx/__init__.py | 45 +++-- nyx/controller.py | 44 +++- nyx/menu.py | 4 ++-- nyx/popups.py | 2 +- test/popups.py| 2 +- 5 files changed, 50 insertions(+), 47 deletions(-) diff --git a/nyx/__init__.py b/nyx/__init__.py index c7a9b47..2ca58fe 100644 --- a/nyx/__init__.py +++ b/nyx/__init__.py @@ -19,6 +19,10 @@ Tor curses monitoring application. |- set_page - sets the page we're showing |- page_count - pages within our interface | +|- get_panels - provides all panels +|- get_page_panels - provides panels on a page +|- get_daemon_panels - provides daemon panels +| |- is_paused - checks if the interface is paused +- set_paused - sets paused state """ @@ -260,6 +264,41 @@ class Interface(object): return len(self._page_panels) + def get_panels(self): +""" +Provides all panels in the interface. + +:returns: **list** with panels in the interface +""" + +all_panels = [self._header_panel] + +for page in self._page_panels: + all_panels += list(page) + +return all_panels + + def get_page_panels(self, page_number = None): +""" +Provides panels belonging to a page, ordered top to bottom. + +:param int page_number: page to provide the panels of, current page if + **None** + +:returns: **list** of panels on that page +""" + +return list(self._page_panels[self._page if page_number is None else page_number]) + + def get_daemon_panels(self): +""" +Provides panels that are daemons. + +:returns: **list** of DaemonPanel in the interface +""" + +return [panel for panel in self.get_panels() if isinstance(panel, nyx.panel.DaemonPanel)] + def is_paused(self): """ Checks if the interface is configured to be paused. @@ -280,8 +319,10 @@ class Interface(object): if is_pause != self._paused: self._paused = is_pause - for panel_impl in self.get_all_panels(): + for panel_impl in self.get_panels(): panel_impl.set_paused(is_pause) - for panel_impl in self.get_display_panels(): + for panel_impl in self.get_page_panels(): panel_impl.redraw() + +import nyx.panel diff --git a/nyx/controller.py b/nyx/controller.py index 8e1f6f3..63aa13c 100644 --- a/nyx/controller.py +++ b/nyx/controller.py @@ -139,44 +139,6 @@ class Controller(Interface): def header_panel(self): return self._header_panel - def get_display_panels(self, page_number = None): -""" -Provides all panels belonging to a page and sticky content above it. This -is ordered they way they are presented (top to bottom) on the page. - -Arguments: - page_number- page number of the panels to be returned, the current - page if None -""" - -return_page = self._page if page_number is None else page_number -return list(self._page_panels[return_page]) if self._page_panels else [] - - def get_daemon_panels(self): -""" -Provides thread panels. -""" - -thread_panels = [] - -for panel_impl in self.get_all_panels(): - if isinstance(panel_impl, threading.Thread): -thread_panels.append(panel_impl) - -return thread_panels - - def get_all_panels(self): -""" -Provides all panels in the interface. -""" - -all_panels = [self._header_panel] - -for page in self._page_panels: - all_panels += list(page) - -return all_panels - def redraw(self, force = True): """ Redraws the displayed panel content. @@ -195,7 +157,7 @@ class Controller(Interface): if self._last_drawn + CONFIG['features.refreshRate'] <= current_time: force = True -display_panels = [self.header_panel()] + self.get_display_panels() +display_panels = [self.header_panel()] + self.get_page_panels() occupied_content = 0 @@ -274,11 +236,11 @@ def start_nyx(): override_key = None # uses this rather than waiting on user input while not interface.quit_signal: -display_panels = [interface.header_panel()] + interface.get_display_panels() +display_panels = [interface.header_panel()] + interface.get_page_panels() # sets panel visability -for panel_impl in interface.get_all_panels(): +for panel_impl in interface.get_panels(): panel_impl.set_visible(panel_impl in display_panels) interface.redraw() diff --git a/nyx/menu.py b/nyx/menu.py index 8ebaf4d..ebb8305 100644 --- a/nyx/menu.py +++ b/nyx/menu.py @@ -240,7 +240,7 @@ def _make_menu(): root_menu.add(_view_menu()) - for panel in interface.get_display_panels(): + for panel in interface.get_page_panels(): submenu =
[tor-commits] [nyx/master] Drop daemon_panels() method
commit ed0fcdc3a1d8e8b489bc22420bcf7cc004a7097e Author: Damian JohnsonDate: Thu Sep 15 19:00:50 2016 -0700 Drop daemon_panels() method This is only used internally so just doing the isinstance() checks where we need 'em. --- nyx/__init__.py | 20 nyx/controller.py | 7 +-- 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/nyx/__init__.py b/nyx/__init__.py index db78bd4..33da167 100644 --- a/nyx/__init__.py +++ b/nyx/__init__.py @@ -23,7 +23,6 @@ Tor curses monitoring application. | |- header_panel - provides the header panel |- page_panels - provides panels on a page -|- daemon_panels - provides daemon panels | |- is_paused - checks if the interface is paused |- set_paused - sets paused state @@ -309,6 +308,10 @@ class Interface(object): if CONFIG['features.panels.show.interpreter']: self._page_panels.append([nyx.panel.interpreter.InterpreterPanel()]) +for panel in self: + if isinstance(panel, nyx.panel.DaemonPanel): +panel.start() + def get_page(self): """ Provides the page we're showing. @@ -364,15 +367,6 @@ class Interface(object): return list(self._page_panels[self._page if page_number is None else page_number]) - def daemon_panels(self): -""" -Provides panels that are daemons. - -:returns: **list** of DaemonPanel in the interface -""" - -return [panel for panel in self if isinstance(panel, nyx.panel.DaemonPanel)] - def is_paused(self): """ Checks if the interface is configured to be paused. @@ -434,10 +428,12 @@ class Interface(object): """ def halt_panels(): - for panel in self.daemon_panels(): + daemons = [panel for panel in self if isinstance(panel, nyx.panel.DaemonPanel)] + + for panel in daemons(): panel.stop() - for panel in self.daemon_panels(): + for panel in daemons(): panel.join() halt_thread = threading.Thread(target = halt_panels) diff --git a/nyx/controller.py b/nyx/controller.py index 980f44c..d304527 100644 --- a/nyx/controller.py +++ b/nyx/controller.py @@ -40,8 +40,6 @@ def start_nyx(): Main draw loop context. """ - interface = nyx_interface() - if not CONFIG['features.acsSupport']: nyx.curses.disable_acs() @@ -51,10 +49,7 @@ def start_nyx(): if not key.startswith('msg.') and not key.startswith('dedup.'): log.notice('Unused configuration entry: %s' % key) - # tells daemon panels to start - - for panel in interface.daemon_panels(): -panel.start() + interface = nyx_interface() # logs the initialization time ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [nyx/master] Move header_panel method
commit 07432edae044bb5e71b16e2cd994ef9fbc89ad42 Author: Damian JohnsonDate: Thu Sep 15 12:46:47 2016 -0700 Move header_panel method Moving our last method and dropping the get_* prefix from the other panel methods. --- nyx/__init__.py | 26 ++ nyx/controller.py | 7 ++- nyx/menu.py | 4 ++-- nyx/popups.py | 2 +- test/popups.py| 2 +- 5 files changed, 24 insertions(+), 17 deletions(-) diff --git a/nyx/__init__.py b/nyx/__init__.py index dc4d3e5..973776d 100644 --- a/nyx/__init__.py +++ b/nyx/__init__.py @@ -19,8 +19,9 @@ Tor curses monitoring application. |- set_page - sets the page we're showing |- page_count - pages within our interface | -|- get_page_panels - provides panels on a page -|- get_daemon_panels - provides daemon panels +|- header_panel - provides the header panel +|- page_panels - provides panels on a page +|- daemon_panels - provides daemon panels | |- is_paused - checks if the interface is paused |- set_paused - sets paused state @@ -268,7 +269,16 @@ class Interface(object): return len(self._page_panels) - def get_page_panels(self, page_number = None): + def header_panel(self): +""" +Provides our interface's header. + +:returns: :class:`~nyx.panel.header.HeaderPanel` of our interface +""" + +return self._header_panel + + def page_panels(self, page_number = None): """ Provides panels belonging to a page, ordered top to bottom. @@ -280,7 +290,7 @@ class Interface(object): return list(self._page_panels[self._page if page_number is None else page_number]) - def get_daemon_panels(self): + def daemon_panels(self): """ Provides panels that are daemons. @@ -312,7 +322,7 @@ class Interface(object): for panel in self: panel.set_paused(is_pause) - for panel in self.get_page_panels(): + for panel in self.page_panels(): panel.redraw() def redraw(self, force = True): @@ -331,7 +341,7 @@ class Interface(object): occupied = 0 -for panel in [self.header_panel()] + self.get_page_panels(): +for panel in [self.header_panel()] + self.page_panels(): panel.redraw(force = force, top = occupied) occupied += panel.get_height() @@ -350,10 +360,10 @@ class Interface(object): """ def halt_panels(): - for panel in self.get_daemon_panels(): + for panel in self.daemon_panels(): panel.stop() - for panel in self.get_daemon_panels(): + for panel in self.daemon_panels(): panel.join() halt_thread = threading.Thread(target = halt_panels) diff --git a/nyx/controller.py b/nyx/controller.py index 201dec4..cb69082 100644 --- a/nyx/controller.py +++ b/nyx/controller.py @@ -129,9 +129,6 @@ class Controller(Interface): if CONFIG['features.panels.show.interpreter']: self._page_panels.append([nyx.panel.interpreter.InterpreterPanel()]) - def header_panel(self): -return self._header_panel - def start_nyx(): """ @@ -151,7 +148,7 @@ def start_nyx(): # tells daemon panels to start - for panel in interface.get_daemon_panels(): + for panel in interface.daemon_panels(): panel.start() # logs the initialization time @@ -163,7 +160,7 @@ def start_nyx(): override_key = None # uses this rather than waiting on user input while not interface._quit: -display_panels = [interface.header_panel()] + interface.get_page_panels() +display_panels = [interface.header_panel()] + interface.page_panels() # sets panel visability diff --git a/nyx/menu.py b/nyx/menu.py index ebb8305..4d5f61c 100644 --- a/nyx/menu.py +++ b/nyx/menu.py @@ -240,7 +240,7 @@ def _make_menu(): root_menu.add(_view_menu()) - for panel in interface.get_page_panels(): + for panel in interface.page_panels(): submenu = panel.submenu() if submenu: @@ -270,7 +270,7 @@ def _view_menu(): page_group = RadioGroup(interface.set_page, interface.get_page()) for i in range(interface.page_count()): -page_panels = interface.get_page_panels(page_number = i) +page_panels = interface.page_panels(page_number = i) label = ' / '.join([type(panel).__name__.replace('Panel', '') for panel in page_panels]) view_menu.add(RadioMenuItem(label, page_group, i)) diff --git a/nyx/popups.py b/nyx/popups.py index b52d95d..e2f0205 100644 --- a/nyx/popups.py +++ b/nyx/popups.py @@ -59,7 +59,7 @@ def show_help(): interface = nyx_interface() handlers = [] - for panel in reversed(interface.get_page_panels()): + for panel in reversed(interface.page_panels()): handlers += [handler for handler in panel.key_handlers() if handler.description] def _render(subwindow): diff --git a/test/popups.py b/test/popups.py index 361d15b..3e64914 100644 --- a/test/popups.py +++ b/test/popups.py @@ -275,7 +275,7 @@ class TestPopups(unittest.TestCase):
[tor-commits] [nyx/master] Rewrite controller module
commit 25458f3b15b598820ff9a90a85fd295449df7dc8 Merge: ca2a385 85e41b3 Author: Damian JohnsonDate: Thu Sep 15 23:13:17 2016 -0700 Rewrite controller module Finishing the overhaul fo the last bit of our legacy codebase! This replaces our controller module with a simpler Interface class. nyx/__init__.py | 348 +- nyx/controller.py| 423 --- nyx/curses.py| 9 +- nyx/menu.py | 31 ++-- nyx/panel/__init__.py| 33 ++-- nyx/panel/config.py | 11 +- nyx/panel/connection.py | 14 +- nyx/panel/graph.py | 31 ++-- nyx/panel/header.py | 23 +-- nyx/panel/interpreter.py | 1 - nyx/panel/log.py | 24 ++- nyx/popups.py| 10 +- nyx/settings/strings.cfg | 4 + nyx/starter.py | 23 ++- nyxrc.sample | 5 - test/__init__.py | 2 +- test/panel/header.py | 18 +- test/popups.py | 6 +- 18 files changed, 475 insertions(+), 541 deletions(-) ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [nyx/master] Finish merging Controller into the Interface
commit 0a366d3c6d140d0a9f229e9decf69c3e42de7a6d Author: Damian JohnsonDate: Thu Sep 15 12:57:55 2016 -0700 Finish merging Controller into the Interface Last bit is moving the constructor in. This completes the shift from our old controller into the interface class. --- nyx/__init__.py | 55 +++--- nyx/controller.py | 79 +++ 2 files changed, 56 insertions(+), 78 deletions(-) diff --git a/nyx/__init__.py b/nyx/__init__.py index 973776d..a22e9f3 100644 --- a/nyx/__init__.py +++ b/nyx/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2010-2016, Damian Johnson and The Tor Project +# Copyright 2009-2016, Damian Johnson and The Tor Project # See LICENSE for licensing information """ @@ -61,6 +61,16 @@ __all__ = [ 'tracker', ] +CONFIG = stem.util.conf.config_dict('nyx', { + 'features.panels.show.graph': True, + 'features.panels.show.log': True, + 'features.panels.show.connection': True, + 'features.panels.show.config': True, + 'features.panels.show.torrc': True, + 'features.panels.show.interpreter': True, +}) + +NYX_INTERFACE = None TOR_CONTROLLER = None BASE_DIR = os.path.sep.join(__file__.split(os.path.sep)[:-1]) DATA_DIR = os.path.expanduser('~/.nyx') @@ -115,8 +125,10 @@ def nyx_interface(): :returns: :class:`~nyx.Interface` controller """ - import nyx.controller - return nyx.controller.get_controller() + if NYX_INTERFACE is None: +Interface() # constructor sets NYX_INTERFACE + + return NYX_INTERFACE def tor_controller(): @@ -231,10 +243,40 @@ class Interface(object): """ def __init__(self): +global NYX_INTERFACE + self._page = 0 +self._page_panels = [] +self._header_panel = None self._paused = False self._quit = False +NYX_INTERFACE = self + +self._header_panel = nyx.panel.header.HeaderPanel() +first_page_panels = [] + +if CONFIG['features.panels.show.graph']: + first_page_panels.append(nyx.panel.graph.GraphPanel()) + +if CONFIG['features.panels.show.log']: + first_page_panels.append(nyx.panel.log.LogPanel()) + +if first_page_panels: + self._page_panels.append(first_page_panels) + +if CONFIG['features.panels.show.connection']: + self._page_panels.append([nyx.panel.connection.ConnectionPanel()]) + +if CONFIG['features.panels.show.config']: + self._page_panels.append([nyx.panel.config.ConfigPanel()]) + +if CONFIG['features.panels.show.torrc']: + self._page_panels.append([nyx.panel.torrc.TorrcPanel()]) + +if CONFIG['features.panels.show.interpreter']: + self._page_panels.append([nyx.panel.interpreter.InterpreterPanel()]) + def get_page(self): """ Provides the page we're showing. @@ -379,3 +421,10 @@ class Interface(object): import nyx.panel +import nyx.panel.config +import nyx.panel.connection +import nyx.panel.graph +import nyx.panel.header +import nyx.panel.interpreter +import nyx.panel.log +import nyx.panel.torrc diff --git a/nyx/controller.py b/nyx/controller.py index cb69082..85cf1fe 100644 --- a/nyx/controller.py +++ b/nyx/controller.py @@ -13,23 +13,13 @@ import nyx.menu import nyx.popups import nyx.panel -import nyx.panel.config -import nyx.panel.connection -import nyx.panel.graph -import nyx.panel.header -import nyx.panel.interpreter -import nyx.panel.log -import nyx.panel.torrc import stem from stem.util import conf, log from nyx.curses import BOLD -from nyx import Interface, tor_controller - - -NYX_CONTROLLER = None +from nyx import nyx_interface, tor_controller def conf_handler(key, value): @@ -39,31 +29,14 @@ def conf_handler(key, value): CONFIG = conf.config_dict('nyx', { 'features.acsSupport': True, - 'features.panels.show.graph': True, - 'features.panels.show.log': True, - 'features.panels.show.connection': True, - 'features.panels.show.config': True, - 'features.panels.show.torrc': True, - 'features.panels.show.interpreter': True, 'features.redrawRate': 5, 'features.confirmQuit': True, 'start_time': 0, }, conf_handler) -def get_controller(): - """ - Provides the nyx controller instance. - """ - - if NYX_CONTROLLER is None: -Controller() # constructor sets NYX_CONTROLLER - - return NYX_CONTROLLER - - def show_message(message = None, *attr, **kwargs): - return get_controller().header_panel().show_message(message, *attr, **kwargs) + return nyx_interface().header_panel().show_message(message, *attr, **kwargs) def input_prompt(msg, initial_value = ''): @@ -77,7 +50,7 @@ def input_prompt(msg, initial_value = ''): canceled """ - header_panel = get_controller().header_panel() + header_panel = nyx_interface().header_panel() header_panel.show_message(msg) user_input = nyx.curses.str_input(len(msg), header_panel.get_height() - 1, initial_value) @@ -86,56 +59,12 @@ def input_prompt(msg, initial_value = ''): return user_input
[tor-commits] [nyx/master] Finish merging controller module
commit 85e41b3581371d9119dc678ce5e7f939453f45ba Author: Damian JohnsonDate: Thu Sep 15 23:06:38 2016 -0700 Finish merging controller module Moving the draw loop, making a handful of minor improvements in the process. This lets us finally drop the controller module. --- nyx/__init__.py | 85 --- nyx/controller.py| 114 --- nyx/menu.py | 2 +- nyx/popups.py| 2 +- nyx/settings/strings.cfg | 4 ++ nyx/starter.py | 15 ++- test/__init__.py | 2 +- 7 files changed, 99 insertions(+), 125 deletions(-) diff --git a/nyx/__init__.py b/nyx/__init__.py index 33da167..69ede9b 100644 --- a/nyx/__init__.py +++ b/nyx/__init__.py @@ -36,7 +36,9 @@ import distutils.spawn import os import sys import threading +import time +import stem import stem.connection import stem.control import stem.util.conf @@ -62,14 +64,23 @@ __all__ = [ 'tracker', ] + +def conf_handler(key, value): + if key == 'features.redrawRate': +return max(1, value) + + CONFIG = stem.util.conf.config_dict('nyx', { + 'features.confirmQuit': True, 'features.panels.show.graph': True, 'features.panels.show.log': True, 'features.panels.show.connection': True, 'features.panels.show.config': True, 'features.panels.show.torrc': True, 'features.panels.show.interpreter': True, -}) + 'features.redrawRate': 5, + 'start_time': 0, +}, conf_handler) NYX_INTERFACE = None TOR_CONTROLLER = None @@ -94,7 +105,6 @@ except IOError as exc: def main(): try: -import nyx.starter nyx.starter.main() except ImportError as exc: if exc.message == 'No module named stem': @@ -119,6 +129,55 @@ def main(): sys.exit(1) +def draw_loop(): + interface = nyx_interface() + next_key = None # use this as the next user input + + stem.util.log.info(msg('startup_time', start_time = time.time() - CONFIG['start_time'])) + + while not interface._quit: +interface.redraw() + +with nyx.curses.raw_screen() as stdscr: + stdscr.refresh() + +if next_key: + key, next_key = next_key, None +else: + key = nyx.curses.key_input(CONFIG['features.redrawRate']) + +if key.match('right'): + interface.set_page((interface.get_page() + 1) % interface.page_count()) +elif key.match('left'): + interface.set_page((interface.get_page() - 1) % interface.page_count()) +elif key.match('p'): + interface.set_paused(not interface.is_paused()) +elif key.match('m'): + nyx.menu.show_menu() +elif key.match('q'): + if CONFIG['features.confirmQuit']: +confirmation_key = show_message(msg('confirm_quit'), nyx.curses.BOLD, max_wait = 30) + +if not confirmation_key.match('q'): + continue + + break +elif key.match('x'): + confirmation_key = show_message(msg('confirm_reload'), nyx.curses.BOLD, max_wait = 30) + + if confirmation_key.match('x'): +try: + tor_controller().signal(stem.Signal.RELOAD) +except stem.ControllerError as exc: + stem.util.log.error('Error detected when reloading tor: %s' % exc.strerror) +elif key.match('h'): + next_key = nyx.popups.show_help() +else: + for panel in interface.page_panels(): +for keybinding in panel.key_handlers(): + keybinding.handle(key) + + def nyx_interface(): """ Singleton controller for our interface. @@ -308,7 +367,11 @@ class Interface(object): if CONFIG['features.panels.show.interpreter']: self._page_panels.append([nyx.panel.interpreter.InterpreterPanel()]) +visible_panels = self.page_panels() + for panel in self: + panel.set_visible(panel in visible_panels) + if isinstance(panel, nyx.panel.DaemonPanel): panel.start() @@ -337,6 +400,11 @@ class Interface(object): self._page = page_number self.header_panel().redraw() + visible_panels = self.page_panels() + + for panel in self: +panel.set_visible(panel in visible_panels) + def page_count(self): """ Provides the number of pages the interface has. @@ -365,7 +433,8 @@ class Interface(object): :returns: **list** of panels on that page """ -return list(self._page_panels[self._page if page_number is None else page_number]) +page_number = self._page if page_number is None else page_number +return [self._header_panel] + self._page_panels[page_number] def is_paused(self): """ @@ -409,7 +478,7 @@ class Interface(object): occupied = 0 -for panel in [self.header_panel()] + self.page_panels(): +for panel in self.page_panels(): panel.redraw(force = force, top = occupied) occupied += panel.get_height() @@ -430,10 +499,10 @@ class Interface(object): def halt_panels(): daemons = [panel for panel in self if isinstance(panel,
[tor-commits] [nyx/master] Move ACS support into curses.start()
commit 9264b37174c80ee2c8bd3bd412ea290cef45e91b Author: Damian JohnsonDate: Thu Sep 15 20:45:34 2016 -0700 Move ACS support into curses.start() Our start method accepts flags for other curses features. ACS would be a perfect fit, and lets us make one of our functions private. --- nyx/controller.py | 4 nyx/curses.py | 9 ++--- nyx/starter.py| 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/nyx/controller.py b/nyx/controller.py index d304527..76fa549 100644 --- a/nyx/controller.py +++ b/nyx/controller.py @@ -28,7 +28,6 @@ def conf_handler(key, value): CONFIG = conf.config_dict('nyx', { - 'features.acsSupport': True, 'features.redrawRate': 5, 'features.confirmQuit': True, 'start_time': 0, @@ -40,9 +39,6 @@ def start_nyx(): Main draw loop context. """ - if not CONFIG['features.acsSupport']: -nyx.curses.disable_acs() - # provides notice about any unused config keys for key in sorted(conf.get_config('nyx').unused_keys()): diff --git a/nyx/curses.py b/nyx/curses.py index d6176f9..1717067 100644 --- a/nyx/curses.py +++ b/nyx/curses.py @@ -25,7 +25,6 @@ if we want Windows support in the future too. get_color_override - provides color we override requests with set_color_override - sets color we override requests with - disable_acs - renders replacements for ACS characters is_wide_characters_supported - checks if curses supports wide character draw - renders subwindow that can be drawn into @@ -181,11 +180,12 @@ CONFIG = stem.util.conf.config_dict('nyx', { }, conf_handler) -def start(function, transparent_background = False, cursor = True): +def start(function, acs_support = True, transparent_background = False, cursor = True): """ Starts a curses interface, delegating to the given function. :param funtion: function to invoke when curses starts + :param bool acs_support: uses wide characters for pipes :param bool transparent_background: allows background transparency :param bool cursor: makes cursor visible """ @@ -195,6 +195,9 @@ def start(function, transparent_background = False, cursor = True): CURSES_SCREEN = stdscr +if not acs_support: + _disable_acs() + if transparent_background: try: curses.use_default_colors() @@ -608,7 +611,7 @@ def _color_attr(): return COLOR_ATTR -def disable_acs(): +def _disable_acs(): """ Replaces ACS characters used for showing borders. This can be preferable if curses is `unable to render them diff --git a/nyx/starter.py b/nyx/starter.py index 0126c3c..7ff37b2 100644 --- a/nyx/starter.py +++ b/nyx/starter.py @@ -85,7 +85,7 @@ def main(config): _set_process_name() try: -nyx.curses.start(nyx.controller.start_nyx, transparent_background = True, cursor = False) +nyx.curses.start(nyx.controller.start_nyx, acs_support = config.get('features.acsSupport', True), transparent_background = True, cursor = False) except UnboundLocalError as exc: if os.environ['TERM'] != 'xterm': print(msg('setup.unknown_term', term = os.environ['TERM'])) ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [nyx/master] Notify all panels of pausing/unpausing
commit f271985f7647e56b6737be689ceeb5329b1d492c Author: Damian JohnsonDate: Mon Sep 12 10:33:36 2016 -0700 Notify all panels of pausing/unpausing Initially I thought a listener pattern would make more sense, but just about all the panels need to be notified when we're paused or unpaused. As such adding a notification hook to the panel. This lets us drop get_pause_time() from the Interface since the two panels that care about this can now track it for themselves. --- nyx/__init__.py | 24 +--- nyx/panel/__init__.py | 10 ++ nyx/panel/connection.py | 7 ++- nyx/panel/graph.py | 10 +- nyx/panel/header.py | 10 +++--- nyx/panel/log.py| 8 6 files changed, 33 insertions(+), 36 deletions(-) diff --git a/nyx/__init__.py b/nyx/__init__.py index 268c4ba..4a031c7 100644 --- a/nyx/__init__.py +++ b/nyx/__init__.py @@ -16,14 +16,12 @@ Tor curses monitoring application. Interface - overall nyx interface |- is_paused - checks if the interface is paused -|- pause_time - time when the interface was paused +- set_paused - sets paused state """ import distutils.spawn import os import sys -import time import stem.connection import stem.control @@ -221,7 +219,6 @@ class Interface(object): def __init__(self): self._paused = False -self._pause_time = None def is_paused(self): """ @@ -232,16 +229,6 @@ class Interface(object): return self._paused - def get_pause_time(self): -""" -Provides the time that we were last paused. - -:returns: **float** with the unix timestamp for when we were last paused, - **None** if not paused -""" - -return self._pause_time - def set_paused(self, is_pause): """ Pauses or unpauses the interface. @@ -252,18 +239,9 @@ class Interface(object): if is_pause != self._paused: self._paused = is_pause - self._pause_time = time.time() if is_pause else None - - # Couple panels have their own pausing behavior. I'll later change this to - # a listener approach or someting else that's less hacky. for panel_impl in self.get_all_panels(): -if isinstance(panel_impl, nyx.panel.graph.GraphPanel) or isinstance(panel_impl, nyx.panel.log.LogPanel): - panel_impl.set_paused(is_pause) +panel_impl.set_paused(is_pause) for panel_impl in self.get_display_panels(): panel_impl.redraw() - - -import nyx.panel.graph -import nyx.panel.log diff --git a/nyx/panel/__init__.py b/nyx/panel/__init__.py index 5714db4..49c7e22 100644 --- a/nyx/panel/__init__.py +++ b/nyx/panel/__init__.py @@ -21,6 +21,7 @@ Panels consisting the nyx interface. |- get_height - height occupied by the panel | |- set_visible - toggles panel visiblity +|- set_paused - notified when interface pauses or unpauses |- key_handlers - keyboard input accepted by the panel |- submenu - submenu for the panel +- redraw - renders the panel content @@ -133,6 +134,15 @@ class Panel(object): self._visible = is_visible + def set_paused(self, is_pause): +""" +Notified when the interface pauses or unpauses. + +:param bool is_pause: suspended if **True**, resumed otherwise +""" + +pass + def key_handlers(self): """ Provides keyboard input this panel supports. diff --git a/nyx/panel/connection.py b/nyx/panel/connection.py index f8c3a7d..cabba2d 100644 --- a/nyx/panel/connection.py +++ b/nyx/panel/connection.py @@ -265,6 +265,7 @@ class ConnectionPanel(nyx.panel.DaemonPanel): self._entries = []# last fetched display entries self._show_details = False# presents the details panel if true self._sort_order = CONFIG['features.connection.order'] +self._pause_time = 0 self._last_resource_fetch = -1 # timestamp of the last ConnectionResolver results used @@ -308,6 +309,10 @@ class ConnectionPanel(nyx.panel.DaemonPanel): self._sort_order = results self._entries = sorted(self._entries, key = lambda entry: [entry.sort_value(attr) for attr in self._sort_order]) + def set_paused(self, is_pause): +if is_pause: + self._pause_time = time.time() + def key_handlers(self): def _scroll(key): page_height = self.get_height() - 1 @@ -426,7 +431,7 @@ class ConnectionPanel(nyx.panel.DaemonPanel): selected, scroll = self._scroller.selection(lines, subwindow.height - details_offset - 1) if interface.is_paused(): - current_time = interface.get_pause_time() + current_time = self._pause_time() elif not controller.is_alive(): current_time = controller.connection_time() else: diff --git a/nyx/panel/graph.py b/nyx/panel/graph.py index 76d4bfa..5266e3f 100644 --- a/nyx/panel/graph.py +++ b/nyx/panel/graph.py @@ -498,6 +498,11 @@ class GraphPanel(nyx.panel.Panel): finally:
[tor-commits] [nyx/master] Move quit and halt methods
commit 6a30efb8f330305ca8c354c36483e9b5b1bfe77d Author: Damian JohnsonDate: Tue Sep 13 10:45:38 2016 -0700 Move quit and halt methods Simply moving a couple of our methods used to terminate the application. --- nyx/__init__.py | 33 - nyx/controller.py | 24 ++-- 2 files changed, 34 insertions(+), 23 deletions(-) diff --git a/nyx/__init__.py b/nyx/__init__.py index 2ca58fe..c5e24c1 100644 --- a/nyx/__init__.py +++ b/nyx/__init__.py @@ -24,12 +24,16 @@ Tor curses monitoring application. |- get_daemon_panels - provides daemon panels | |- is_paused - checks if the interface is paused -+- set_paused - sets paused state +|- set_paused - sets paused state +| +|- quit - quits our application ++- halt - stops daemon panels """ import distutils.spawn import os import sys +import threading import stem.connection import stem.control @@ -228,6 +232,7 @@ class Interface(object): def __init__(self): self._page = 0 self._paused = False +self._quit = False def get_page(self): """ @@ -325,4 +330,30 @@ class Interface(object): for panel_impl in self.get_page_panels(): panel_impl.redraw() + def quit(self): +""" +Quits our application. +""" + +self._quit = True + + def halt(self): +""" +Stops curses panels in our interface. + +:returns: **threading.Thread** terminating daemons +""" + +def halt_panels(): + for panel_impl in self.get_daemon_panels(): +panel_impl.stop() + + for panel_impl in self.get_daemon_panels(): +panel_impl.join() + +halt_thread = threading.Thread(target = halt_panels) +halt_thread.start() +return halt_thread + + import nyx.panel diff --git a/nyx/controller.py b/nyx/controller.py index a50f2d4..7358383 100644 --- a/nyx/controller.py +++ b/nyx/controller.py @@ -7,7 +7,6 @@ user input to the proper panels. """ import time -import threading import nyx.curses import nyx.menu @@ -106,13 +105,13 @@ class Controller(Interface): self._page_panels = [] self._header_panel = None -self.quit_signal = False self._force_redraw = False self._last_drawn = 0 NYX_CONTROLLER = self self._header_panel = nyx.panel.header.HeaderPanel() +first_page_panels = [] if CONFIG['features.panels.show.graph']: first_page_panels.append(nyx.panel.graph.GraphPanel()) @@ -181,25 +180,6 @@ class Controller(Interface): if force: self._last_drawn = current_time - def quit(self): -self.quit_signal = True - - def halt(self): -""" -Halts curses panels, providing back the thread doing so. -""" - -def halt_panels(): - for panel_impl in self.get_daemon_panels(): -panel_impl.stop() - - for panel_impl in self.get_daemon_panels(): -panel_impl.join() - -halt_thread = threading.Thread(target = halt_panels) -halt_thread.start() -return halt_thread - def start_nyx(): """ @@ -230,7 +210,7 @@ def start_nyx(): override_key = None # uses this rather than waiting on user input - while not interface.quit_signal: + while not interface._quit: display_panels = [interface.header_panel()] + interface.get_page_panels() # sets panel visability ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [nyx/master] Pressing 'x' to confirm reload didn't work
commit 4c4f07704ed2832ea4fa022723fc36f46a9c1b09 Author: Damian JohnsonDate: Fri Sep 9 10:54:20 2016 -0700 Pressing 'x' to confirm reload didn't work We expected the confirmation_key to be an integer but it was actually a KeyInput, causing the check to always evaluate to false. --- nyx/controller.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nyx/controller.py b/nyx/controller.py index bf7a22d..00bd504 100644 --- a/nyx/controller.py +++ b/nyx/controller.py @@ -410,7 +410,7 @@ def start_nyx(): msg = "This will reset Tor's internal state. Are you sure (x again to confirm)?" confirmation_key = show_message(msg, BOLD, max_wait = 30) - if confirmation_key in (ord('x'), ord('X')): + if confirmation_key.match('x'): try: tor_controller().signal(stem.Signal.RELOAD) except IOError as exc: ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [nyx/master] Start Interface class, moving pause methods
commit 89f8218031de2fce3863fe151c26320317ab4656 Author: Damian JohnsonDate: Mon Sep 12 09:50:32 2016 -0700 Start Interface class, moving pause methods Starting a gradual migration of our Controller class into the Interface, rewritting this sucker as we go. Doing this as a Controller subclass so things continue to work as we move. --- nyx/__init__.py | 71 +++ nyx/controller.py | 53 - 2 files changed, 75 insertions(+), 49 deletions(-) diff --git a/nyx/__init__.py b/nyx/__init__.py index 1ffd4b0..268c4ba 100644 --- a/nyx/__init__.py +++ b/nyx/__init__.py @@ -3,11 +3,27 @@ """ Tor curses monitoring application. + +:: + + nyx_interface - nyx interface singleton + tor_controller - tor connection singleton + + init_controller - initializes our connection to tor + expand_path - expands path with respect to our chroot + join - joins a series of strings up to a set length + msg - string from our configuration + + Interface - overall nyx interface +|- is_paused - checks if the interface is paused +|- pause_time - time when the interface was paused ++- set_paused - sets paused state """ import distutils.spawn import os import sys +import time import stem.connection import stem.control @@ -196,3 +212,58 @@ def msg(message, config, **attr): stem.util.log.notice(msg) return '' + + +class Interface(object): + """ + Overall state of the nyx interface. + """ + + def __init__(self): +self._paused = False +self._pause_time = None + + def is_paused(self): +""" +Checks if the interface is configured to be paused. + +:returns: **True** if the interface is paused, **False** otherwise +""" + +return self._paused + + def get_pause_time(self): +""" +Provides the time that we were last paused. + +:returns: **float** with the unix timestamp for when we were last paused, + **None** if not paused +""" + +return self._pause_time + + def set_paused(self, is_pause): +""" +Pauses or unpauses the interface. + +:param bool is_pause: suspends the interface if **True**, resumes it + otherwise +""" + +if is_pause != self._paused: + self._paused = is_pause + self._pause_time = time.time() if is_pause else None + + # Couple panels have their own pausing behavior. I'll later change this to + # a listener approach or someting else that's less hacky. + + for panel_impl in self.get_all_panels(): +if isinstance(panel_impl, nyx.panel.graph.GraphPanel) or isinstance(panel_impl, nyx.panel.log.LogPanel): + panel_impl.set_paused(is_pause) + + for panel_impl in self.get_display_panels(): +panel_impl.redraw() + + +import nyx.panel.graph +import nyx.panel.log diff --git a/nyx/controller.py b/nyx/controller.py index 4a3825f..42553b4 100644 --- a/nyx/controller.py +++ b/nyx/controller.py @@ -27,7 +27,7 @@ import stem from stem.util import conf, log from nyx.curses import BOLD -from nyx import tor_controller +from nyx import Interface, tor_controller NYX_CONTROLLER = None @@ -87,7 +87,7 @@ def input_prompt(msg, initial_value = ''): return user_input -class Controller(object): +class Controller(Interface): """ Tracks the global state of the interface """ @@ -98,12 +98,12 @@ class Controller(object): top to bottom on the page. """ +super(Controller, self).__init__() + self._page_panels = [] self._header_panel = None self.quit_signal = False self._page = 0 -self._paused = False -self._pause_time = -1 self._force_redraw = False self._last_drawn = 0 @@ -134,8 +134,6 @@ class Controller(object): self.quit_signal = False self._page = 0 -self._paused = False -self._pause_time = -1 self._force_redraw = False self._last_drawn = 0 @@ -184,49 +182,6 @@ class Controller(object): self.set_page((self._page - 1) % len(self._page_panels)) - def is_paused(self): -""" -Provides if the interface is configured to be paused or not. - -:returns: **True** if the interface is paused and **False** otherwise -""" - -return self._paused - - def set_paused(self, is_pause): -""" -Pauses or unpauses the interface. - -:param bool is_pause: suspends the interface if **True**, resumes it - otherwise -""" - -if is_pause != self._paused: - if is_pause: -self._pause_time = time.time() - - # Couple panels have their own pausing behavior. I'll later change this to - # a listener approach or someting else that's less hacky. - - for panel_impl in self.get_all_panels(): -if isinstance(panel_impl, nyx.panel.graph.GraphPanel) or isinstance(panel_impl, nyx.panel.log.LogPanel): - panel_impl.set_paused(is_pause) - - self._paused = is_pause - - for panel_impl
[tor-commits] [nyx/master] Replace get_panels() with iterator
commit 320baf839270e1e4c4d2d777fdc4f403272dd3d4 Author: Damian JohnsonDate: Thu Sep 15 12:30:28 2016 -0700 Replace get_panels() with iterator This is only used internally, and makes sense that iterating over the interface would give you the panels. --- nyx/__init__.py | 40 nyx/controller.py | 12 ++-- 2 files changed, 22 insertions(+), 30 deletions(-) diff --git a/nyx/__init__.py b/nyx/__init__.py index 91225b8..dc4d3e5 100644 --- a/nyx/__init__.py +++ b/nyx/__init__.py @@ -19,7 +19,6 @@ Tor curses monitoring application. |- set_page - sets the page we're showing |- page_count - pages within our interface | -|- get_panels - provides all panels |- get_page_panels - provides panels on a page |- get_daemon_panels - provides daemon panels | @@ -269,20 +268,6 @@ class Interface(object): return len(self._page_panels) - def get_panels(self): -""" -Provides all panels in the interface. - -:returns: **list** with panels in the interface -""" - -all_panels = [self._header_panel] - -for page in self._page_panels: - all_panels += list(page) - -return all_panels - def get_page_panels(self, page_number = None): """ Provides panels belonging to a page, ordered top to bottom. @@ -302,7 +287,7 @@ class Interface(object): :returns: **list** of DaemonPanel in the interface """ -return [panel for panel in self.get_panels() if isinstance(panel, nyx.panel.DaemonPanel)] +return [panel for panel in self if isinstance(panel, nyx.panel.DaemonPanel)] def is_paused(self): """ @@ -324,11 +309,11 @@ class Interface(object): if is_pause != self._paused: self._paused = is_pause - for panel_impl in self.get_panels(): -panel_impl.set_paused(is_pause) + for panel in self: +panel.set_paused(is_pause) - for panel_impl in self.get_page_panels(): -panel_impl.redraw() + for panel in self.get_page_panels(): +panel.redraw() def redraw(self, force = True): """ @@ -365,15 +350,22 @@ class Interface(object): """ def halt_panels(): - for panel_impl in self.get_daemon_panels(): -panel_impl.stop() + for panel in self.get_daemon_panels(): +panel.stop() - for panel_impl in self.get_daemon_panels(): -panel_impl.join() + for panel in self.get_daemon_panels(): +panel.join() halt_thread = threading.Thread(target = halt_panels) halt_thread.start() return halt_thread + def __iter__(self): +yield self._header_panel + +for page in self._page_panels: + for panel in page: +yield panel + import nyx.panel diff --git a/nyx/controller.py b/nyx/controller.py index 6dd1b09..201dec4 100644 --- a/nyx/controller.py +++ b/nyx/controller.py @@ -151,8 +151,8 @@ def start_nyx(): # tells daemon panels to start - for panel_impl in interface.get_daemon_panels(): -panel_impl.start() + for panel in interface.get_daemon_panels(): +panel.start() # logs the initialization time @@ -167,8 +167,8 @@ def start_nyx(): # sets panel visability -for panel_impl in interface.get_panels(): - panel_impl.set_visible(panel_impl in display_panels) +for panel in interface: + panel.set_visible(panel in display_panels) interface.redraw() @@ -216,6 +216,6 @@ def start_nyx(): elif key.match('h'): override_key = nyx.popups.show_help() else: - for panel_impl in display_panels: -for keybinding in panel_impl.key_handlers(): + for panel in display_panels: +for keybinding in panel.key_handlers(): keybinding.handle(key) ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [nyx/master] Merge Controller init methods
commit 8a83598d588b2a58da7cfd852c107bb925233835 Author: Damian JohnsonDate: Tue Sep 13 10:34:21 2016 -0700 Merge Controller init methods I really hate the two stage init() we hacked in to account for panels calling get_controller(). This is a hack too, but little cleaner for our init to simply set the singleton. --- nyx/controller.py | 17 ++--- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/nyx/controller.py b/nyx/controller.py index 63aa13c..a50f2d4 100644 --- a/nyx/controller.py +++ b/nyx/controller.py @@ -60,6 +60,9 @@ def get_controller(): Provides the nyx controller instance. """ + if NYX_CONTROLLER is None: +Controller() # constructor sets NYX_CONTROLLER + return NYX_CONTROLLER @@ -98,6 +101,7 @@ class Controller(Interface): top to bottom on the page. """ +global NYX_CONTROLLER super(Controller, self).__init__() self._page_panels = [] @@ -106,9 +110,9 @@ class Controller(Interface): self._force_redraw = False self._last_drawn = 0 - def init(self): +NYX_CONTROLLER = self + self._header_panel = nyx.panel.header.HeaderPanel() -first_page_panels = [] if CONFIG['features.panels.show.graph']: first_page_panels.append(nyx.panel.graph.GraphPanel()) @@ -131,11 +135,6 @@ class Controller(Interface): if CONFIG['features.panels.show.interpreter']: self._page_panels.append([nyx.panel.interpreter.InterpreterPanel()]) -self.quit_signal = False -self._page = 0 -self._force_redraw = False -self._last_drawn = 0 - def header_panel(self): return self._header_panel @@ -207,10 +206,6 @@ def start_nyx(): Main draw loop context. """ - global NYX_CONTROLLER - - NYX_CONTROLLER = Controller() - NYX_CONTROLLER.init() interface = get_controller() if not CONFIG['features.acsSupport']: ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [nyx/master] Move redraw method
commit 66e34c28ca1c02a526c4a427e37955d25a3487cc Author: Damian JohnsonDate: Thu Sep 15 10:10:28 2016 -0700 Move redraw method Moving our redraw() method to the Interface with a couple simplifications... * The only time we ever call a panel's set_height() is for rendering, so that might as well just be a render() argument. * Since we started doing forced rendering by default 'features.refreshRate' and self._force_redraw are no longer doing anything. We may go back to this in the future but for now might as well just drop them it. --- nyx/__init__.py | 22 +- nyx/controller.py | 48 nyx/panel/__init__.py | 16 +--- nyxrc.sample | 5 - 4 files changed, 26 insertions(+), 65 deletions(-) diff --git a/nyx/__init__.py b/nyx/__init__.py index c5e24c1..91225b8 100644 --- a/nyx/__init__.py +++ b/nyx/__init__.py @@ -26,6 +26,7 @@ Tor curses monitoring application. |- is_paused - checks if the interface is paused |- set_paused - sets paused state | +|- redraw - renders our content |- quit - quits our application +- halt - stops daemon panels """ @@ -257,7 +258,6 @@ class Interface(object): if page_number != self._page: self._page = page_number - self._force_redraw = True self.header_panel().redraw() def page_count(self): @@ -330,6 +330,26 @@ class Interface(object): for panel_impl in self.get_page_panels(): panel_impl.redraw() + def redraw(self, force = True): +""" +Renders our displayed content. + +:param bool force: if **False** only redraws content if resized +""" + +# Curses may overly cache content without clearing here... +# https://trac.torproject.org/projects/tor/ticket/2830#comment:9 + +if force: + with nyx.curses.raw_screen() as stdscr: +stdscr.clear() + +occupied = 0 + +for panel in [self.header_panel()] + self.get_page_panels(): + panel.redraw(force = force, top = occupied) + occupied += panel.get_height() + def quit(self): """ Quits our application. diff --git a/nyx/controller.py b/nyx/controller.py index 7358383..6dd1b09 100644 --- a/nyx/controller.py +++ b/nyx/controller.py @@ -35,8 +35,6 @@ NYX_CONTROLLER = None def conf_handler(key, value): if key == 'features.redrawRate': return max(1, value) - elif key == 'features.refreshRate': -return max(0, value) CONFIG = conf.config_dict('nyx', { @@ -48,7 +46,6 @@ CONFIG = conf.config_dict('nyx', { 'features.panels.show.torrc': True, 'features.panels.show.interpreter': True, 'features.redrawRate': 5, - 'features.refreshRate': 5, 'features.confirmQuit': True, 'start_time': 0, }, conf_handler) @@ -105,8 +102,6 @@ class Controller(Interface): self._page_panels = [] self._header_panel = None -self._force_redraw = False -self._last_drawn = 0 NYX_CONTROLLER = self @@ -137,49 +132,6 @@ class Controller(Interface): def header_panel(self): return self._header_panel - def redraw(self, force = True): -""" -Redraws the displayed panel content. - -Arguments: - force - redraws regardless of if it's needed if true, otherwise ignores - the request when there aren't changes to be displayed -""" - -force |= self._force_redraw -self._force_redraw = False - -current_time = time.time() - -if CONFIG['features.refreshRate'] != 0: - if self._last_drawn + CONFIG['features.refreshRate'] <= current_time: -force = True - -display_panels = [self.header_panel()] + self.get_page_panels() - -occupied_content = 0 - -for panel_impl in display_panels: - panel_impl.set_top(occupied_content) - height = panel_impl.get_height() - - if height: -occupied_content += height - -# apparently curses may cache display contents unless we explicitely -# request a redraw here... -# https://trac.torproject.org/projects/tor/ticket/2830#comment:9 - -if force: - with nyx.curses.raw_screen() as stdscr: -stdscr.clear() - -for panel_impl in display_panels: - panel_impl.redraw(force = force) - -if force: - self._last_drawn = current_time - def start_nyx(): """ diff --git a/nyx/panel/__init__.py b/nyx/panel/__init__.py index 49c7e22..24ffadf 100644 --- a/nyx/panel/__init__.py +++ b/nyx/panel/__init__.py @@ -17,7 +17,6 @@ Panels consisting the nyx interface. | +- stop - stops triggering daemon actions | |- get_top - top position we're rendered into on the screen -|- set_top - sets top position within the screen |- get_height - height occupied by the panel | |- set_visible - toggles panel visiblity @@ -107,15 +106,6 @@ class Panel(object): return self._top - def set_top(self, top): -""" -Changes the position where
[tor-commits] [nyx/master] nyx_interface() alias
commit 40781c080f7a82010b5c1efed55d59d00e6d0881 Author: Damian JohnsonDate: Sat Sep 10 12:22:06 2016 -0700 nyx_interface() alias Aliasing nyx.control.get_controller() to nyx_interface(). This will later be the home for thsi code but for now it's just a terminology change. I'm renaming this because we had two 'controllers' for both nyx and tor. With this we now work with nyx's 'interface' instead. --- nyx/__init__.py | 11 +++ nyx/menu.py | 26 +- nyx/panel/__init__.py | 7 +++ nyx/panel/connection.py | 9 - nyx/panel/graph.py | 16 ++-- nyx/panel/header.py | 12 ++-- nyx/panel/log.py| 5 ++--- nyx/popups.py | 10 +- nyx/starter.py | 8 test/panel/header.py| 18 +- test/popups.py | 6 +++--- 11 files changed, 66 insertions(+), 62 deletions(-) diff --git a/nyx/__init__.py b/nyx/__init__.py index f2c62f4..1ffd4b0 100644 --- a/nyx/__init__.py +++ b/nyx/__init__.py @@ -81,6 +81,17 @@ def main(): sys.exit(1) +def nyx_interface(): + """ + Singleton controller for our interface. + + :returns: :class:`~nyx.Interface` controller + """ + + import nyx.controller + return nyx.controller.get_controller() + + def tor_controller(): """ Singleton for getting our tor controller connection. diff --git a/nyx/menu.py b/nyx/menu.py index 8c60be9..2a5af98 100644 --- a/nyx/menu.py +++ b/nyx/menu.py @@ -13,7 +13,7 @@ import nyx.popups import stem -from nyx import tor_controller +from nyx import nyx_interface, tor_controller from nyx.curses import RED, WHITE, NORMAL, BOLD, UNDERLINE from stem.util import str_tools @@ -211,7 +211,7 @@ def show_menu(): selection_x = _draw_top_menubar(menu, cursor.selection) _draw_submenu(cursor.selection, cursor.selection.submenu, 1, selection_x) cursor.handle_key(nyx.curses.key_input()) - nyx.controller.get_controller().redraw() + nyx_interface().redraw() nyx.controller.show_message() @@ -221,26 +221,26 @@ def _make_menu(): Constructs the base menu and all of its contents. """ - nyx_controller = nyx.controller.get_controller() + interface = nyx_interface() - if not nyx_controller.is_paused(): -pause_item = MenuItem('Pause', nyx_controller.set_paused, True) + if not interface.is_paused(): +pause_item = MenuItem('Pause', interface.set_paused, True) else: -pause_item = MenuItem('Unpause', nyx_controller.set_paused, False) +pause_item = MenuItem('Unpause', interface.set_paused, False) root_menu = Submenu('') root_menu.add(Submenu('Actions', [ MenuItem('Close Menu', None), -MenuItem('New Identity', nyx_controller.header_panel().send_newnym), +MenuItem('New Identity', interface.header_panel().send_newnym), MenuItem('Reset Tor', tor_controller().signal, stem.Signal.RELOAD), pause_item, -MenuItem('Exit', nyx_controller.quit), +MenuItem('Exit', interface.quit), ])) root_menu.add(_view_menu()) - for panel in nyx_controller.get_display_panels(): + for panel in interface.get_display_panels(): submenu = panel.submenu() if submenu: @@ -264,13 +264,13 @@ def _view_menu(): Color (Submenu) """ - nyx_controller = nyx.controller.get_controller() + interface = nyx_interface() view_menu = Submenu('View') - page_group = RadioGroup(nyx_controller.set_page, nyx_controller.get_page()) + page_group = RadioGroup(interface.set_page, interface.get_page()) - for i in range(nyx_controller.get_page_count()): -page_panels = nyx_controller.get_display_panels(page_number = i) + for i in range(interface.get_page_count()): +page_panels = interface.get_display_panels(page_number = i) label = ' / '.join([type(panel).__name__.replace('Panel', '') for panel in page_panels]) view_menu.add(RadioMenuItem(label, page_group, i)) diff --git a/nyx/panel/__init__.py b/nyx/panel/__init__.py index 18a66ce..5714db4 100644 --- a/nyx/panel/__init__.py +++ b/nyx/panel/__init__.py @@ -33,6 +33,8 @@ import time import nyx.curses +from nyx import nyx_interface + __all__ = [ 'config', 'connection', @@ -195,13 +197,10 @@ class DaemonPanel(Panel, threading.Thread): Performs our _update() action at the given rate. """ -import nyx.controller - last_ran = -1 -nyx_controller = nyx.controller.get_controller() while not self._halt: - if nyx_controller.is_paused() or (time.time() - last_ran) < self._update_rate: + if nyx_interface().is_paused() or (time.time() - last_ran) < self._update_rate: with self._pause_condition: if not self._halt: self._pause_condition.wait(0.2) diff --git a/nyx/panel/connection.py b/nyx/panel/connection.py index 16175d9..f8c3a7d 100644 --- a/nyx/panel/connection.py +++ b/nyx/panel/connection.py @@ -11,15 +11,14 @@
[tor-commits] [nyx/master] Reload signals caught wrong exception type
commit 22c1ce6a0dcdde915f8347bfe60149e76cc1e37e Author: Damian JohnsonDate: Fri Sep 9 10:59:43 2016 -0700 Reload signals caught wrong exception type Stem's signal() method raises ControllerErrors, not IOErrors. --- nyx/controller.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nyx/controller.py b/nyx/controller.py index 00bd504..4a3825f 100644 --- a/nyx/controller.py +++ b/nyx/controller.py @@ -413,7 +413,7 @@ def start_nyx(): if confirmation_key.match('x'): try: tor_controller().signal(stem.Signal.RELOAD) -except IOError as exc: +except stem.ControllerError as exc: log.error('Error detected when reloading tor: %s' % exc.strerror) elif key.match('h'): override_key = nyx.popups.show_help() ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [nyx/master] Move page methods to Interface
commit 738cdd92c249f3bb951f2e072d0ac4c0b2aca03d Author: Damian JohnsonDate: Tue Sep 13 10:01:42 2016 -0700 Move page methods to Interface Pretty direct move. Renaming get_page_count() and dropping next_page() and prev_page() but otherwise just cut-and-paste. --- nyx/__init__.py | 40 nyx/controller.py| 64 nyx/menu.py | 2 +- nyx/panel/header.py | 2 +- test/panel/header.py | 4 ++-- 5 files changed, 53 insertions(+), 59 deletions(-) diff --git a/nyx/__init__.py b/nyx/__init__.py index 4a031c7..c7a9b47 100644 --- a/nyx/__init__.py +++ b/nyx/__init__.py @@ -15,6 +15,10 @@ Tor curses monitoring application. msg - string from our configuration Interface - overall nyx interface +|- get_page - page we're showing +|- set_page - sets the page we're showing +|- page_count - pages within our interface +| |- is_paused - checks if the interface is paused +- set_paused - sets paused state """ @@ -218,8 +222,44 @@ class Interface(object): """ def __init__(self): +self._page = 0 self._paused = False + def get_page(self): +""" +Provides the page we're showing. + +:return: **int** of the page we're showing +""" + +return self._page + + def set_page(self, page_number): +""" +Sets the selected page. + +:param int page_number: page to be shown + +:raises: **ValueError** if the page_number is invalid +""" + +if page_number < 0 or page_number >= self.page_count(): + raise ValueError('Invalid page number: %i' % page_number) + +if page_number != self._page: + self._page = page_number + self._force_redraw = True + self.header_panel().redraw() + + def page_count(self): +""" +Provides the number of pages the interface has. + +:returns: **int** number of pages in the interface +""" + +return len(self._page_panels) + def is_paused(self): """ Checks if the interface is configured to be paused. diff --git a/nyx/controller.py b/nyx/controller.py index 42553b4..8e1f6f3 100644 --- a/nyx/controller.py +++ b/nyx/controller.py @@ -103,7 +103,6 @@ class Controller(Interface): self._page_panels = [] self._header_panel = None self.quit_signal = False -self._page = 0 self._force_redraw = False self._last_drawn = 0 @@ -137,51 +136,6 @@ class Controller(Interface): self._force_redraw = False self._last_drawn = 0 - def get_page_count(self): -""" -Provides the number of pages the interface has. This may be zero if all -page panels have been disabled. -""" - -return len(self._page_panels) - - def get_page(self): -""" -Provides the number belonging to this page. Page numbers start at zero. -""" - -return self._page - - def set_page(self, page_number): -""" -Sets the selected page, raising a ValueError if the page number is invalid. - -Arguments: - page_number - page number to be selected -""" - -if page_number < 0 or page_number >= self.get_page_count(): - raise ValueError('Invalid page number: %i' % page_number) - -if page_number != self._page: - self._page = page_number - self._force_redraw = True - self.header_panel().redraw() - - def next_page(self): -""" -Increments the page number. -""" - -self.set_page((self._page + 1) % len(self._page_panels)) - - def prev_page(self): -""" -Decrements the page number. -""" - -self.set_page((self._page - 1) % len(self._page_panels)) - def header_panel(self): return self._header_panel @@ -295,7 +249,7 @@ def start_nyx(): NYX_CONTROLLER = Controller() NYX_CONTROLLER.init() - control = get_controller() + interface = get_controller() if not CONFIG['features.acsSupport']: nyx.curses.disable_acs() @@ -308,7 +262,7 @@ def start_nyx(): # tells daemon panels to start - for panel_impl in control.get_daemon_panels(): + for panel_impl in interface.get_daemon_panels(): panel_impl.start() # logs the initialization time @@ -319,15 +273,15 @@ def start_nyx(): override_key = None # uses this rather than waiting on user input - while not control.quit_signal: -display_panels = [control.header_panel()] + control.get_display_panels() + while not interface.quit_signal: +display_panels = [interface.header_panel()] + interface.get_display_panels() # sets panel visability -for panel_impl in control.get_all_panels(): +for panel_impl in interface.get_all_panels(): panel_impl.set_visible(panel_impl in display_panels) -control.redraw() +interface.redraw() with nyx.curses.raw_screen() as stdscr: stdscr.refresh() @@ -340,11 +294,11 @@ def start_nyx(): key = nyx.curses.key_input(CONFIG['features.redrawRate']) if key.match('right'): -