Commit 7397ed196b1698eec3baefe63ad1dab572863593

Authored by Carlos Oliveira
2 parents 4dd503c7 c9c788dc

Merge pull request #96 from colab/colab_search

Colab search
colab/accounts/search_indexes.py
@@ -22,6 +22,7 @@ class UserIndex(indexes.SearchIndex, indexes.Indexable): @@ -22,6 +22,7 @@ class UserIndex(indexes.SearchIndex, indexes.Indexable):
22 google_talk = indexes.CharField(model_attr='google_talk', null=True, 22 google_talk = indexes.CharField(model_attr='google_talk', null=True,
23 stored=False) 23 stored=False)
24 webpage = indexes.CharField(model_attr='webpage', null=True, stored=False) 24 webpage = indexes.CharField(model_attr='webpage', null=True, stored=False)
  25 + date_joined = indexes.DateTimeField(model_attr='date_joined')
25 26
26 def get_model(self): 27 def get_model(self):
27 return User 28 return User
colab/accounts/templates/search/user_search_preview.html 0 → 100644
@@ -0,0 +1,17 @@ @@ -0,0 +1,17 @@
  1 +{% load i18n tz highlight gravatar date_format %}
  2 +
  3 +<div class="row">
  4 + <div class="col-md-2 center">
  5 + <a href="{% url 'user_profile' username=result.username %}">
  6 + {% block gravatar_img %}{% gravatar result.email 100 %}{% endblock gravatar_img %}
  7 + </a>
  8 + </div>
  9 + <div class="col-md-10">
  10 + <strong><a href="{% url 'user_profile' username=result.username %}"><h4>{{ result.name }}</h4></a></strong>
  11 + <small><strong>{% trans "Since" %}: {% date_format result.date_joined %}</strong></small><br>
  12 + <small>{% trans "Registered in" %}: <strong>{% trans "User" %}</strong></small><br>
  13 + </div>
  14 +</div>
  15 +<div class="row">
  16 + <hr>
  17 +</div>
0 \ No newline at end of file 18 \ No newline at end of file
colab/accounts/templatetags/date_format.py 0 → 100644
@@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
  1 +from django import template
  2 +from django.utils.translation import ugettext as _
  3 +register = template.Library()
  4 +
  5 +
  6 +@register.simple_tag(takes_context=True)
  7 +def date_format(context, date):
  8 + formatted_date = _('%(m)s %(d)s %(y)s' % {'m': date.strftime('%B'),
  9 + 'd': date.day,
  10 + 'y': date.year})
  11 + return formatted_date
  12 +
  13 +
  14 +@register.simple_tag(takes_context=True)
  15 +def datetime_format(context, date):
  16 + formatted_date = date_format(context, date)
  17 + formatted_time = _('%(hour)s:%(min)s' % {'hour': date.hour,
  18 + 'min': date.strftime('%I')})
  19 + formatted_datetime = _('%s at %s' % (formatted_date, formatted_time))
  20 + return formatted_datetime
colab/locale/en/LC_MESSAGES/django.po
1 # SOME DESCRIPTIVE TITLE. 1 # SOME DESCRIPTIVE TITLE.
2 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 2 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3 # This file is distributed under the same license as the PACKAGE package. 3 # This file is distributed under the same license as the PACKAGE package.
4 -# 4 +#
5 # Translators: 5 # Translators:
6 msgid "" 6 msgid ""
7 msgstr "" 7 msgstr ""
8 "Project-Id-Version: colab\n" 8 "Project-Id-Version: colab\n"
9 "Report-Msgid-Bugs-To: \n" 9 "Report-Msgid-Bugs-To: \n"
10 -"POT-Creation-Date: 2015-09-01 13:15+0000\n" 10 +"POT-Creation-Date: 2015-10-27 13:48+0000\n"
11 "PO-Revision-Date: 2015-09-04 19:21+0000\n" 11 "PO-Revision-Date: 2015-09-04 19:21+0000\n"
12 "Last-Translator: Lucas Kanashiro Duarte <kanashiro.duarte@gmail.com>\n" 12 "Last-Translator: Lucas Kanashiro Duarte <kanashiro.duarte@gmail.com>\n"
13 "Language-Team: English (http://www.transifex.com/colab/colab/language/en/)\n" 13 "Language-Team: English (http://www.transifex.com/colab/colab/language/en/)\n"
  14 +"Language: en\n"
14 "MIME-Version: 1.0\n" 15 "MIME-Version: 1.0\n"
15 "Content-Type: text/plain; charset=UTF-8\n" 16 "Content-Type: text/plain; charset=UTF-8\n"
16 "Content-Transfer-Encoding: 8bit\n" 17 "Content-Transfer-Encoding: 8bit\n"
17 -"Language: en\n"  
18 "Plural-Forms: nplurals=2; plural=(n != 1);\n" 18 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19 19
20 -#: accounts/admin.py:18  
21 -msgid "Personal info"  
22 -msgstr "Personal info" 20 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:21
  21 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:21
  22 +msgid "Code"
  23 +msgstr "Code"
23 24
24 -#: accounts/admin.py:24  
25 -msgid "Permissions"  
26 -msgstr "Permissions" 25 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:26
  26 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:26
  27 +#, fuzzy
  28 +#| msgid "Gitlab Projects"
  29 +msgid "Public Projects"
  30 +msgstr "Gitlab Projects"
27 31
28 -#: accounts/admin.py:28  
29 -msgid "Important dates"  
30 -msgstr "Important dates" 32 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:28
  33 +#: colab-noosfero-plugin/tests/plugins.d/noosfero.py:30
  34 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:28
  35 +#: colab-spb-plugin/tests/plugins.d/noosfero.py:30
  36 +#, fuzzy
  37 +#| msgid "My Profile"
  38 +msgid "Profile"
  39 +msgstr "My Profile"
31 40
32 -#: accounts/forms.py:37  
33 -msgid "Social account does not exist"  
34 -msgstr "Social account does not exist" 41 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:30
  42 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:30
  43 +#, fuzzy
  44 +#| msgid "Gitlab Project"
  45 +msgid "New Project"
  46 +msgstr "Gitlab Project"
35 47
36 -#: accounts/forms.py:65 accounts/forms.py:71 accounts/forms.py:77  
37 -msgid "This field cannot be blank."  
38 -msgstr "This field cannot be blank." 48 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:32
  49 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:32
  50 +#, fuzzy
  51 +#| msgid "Gitlab Projects"
  52 +msgid "Projects"
  53 +msgstr "Gitlab Projects"
39 54
40 -#: accounts/forms.py:118 accounts/templates/accounts/user_detail.html:38  
41 -msgid "Bio"  
42 -msgstr "Bio" 55 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:34
  56 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:34
  57 +msgid "Groups"
  58 +msgstr "Groups"
43 59
44 -#: accounts/forms.py:119  
45 -msgid "Write something about you in 200 characters or less."  
46 -msgstr "Write something about you in 200 characters or less." 60 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:36
  61 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:36
  62 +#, fuzzy
  63 +#| msgid "Gitlab Issues"
  64 +msgid "Issues"
  65 +msgstr "Gitlab Issues"
47 66
48 -#: accounts/forms.py:148  
49 -msgid "Mailing lists"  
50 -msgstr "Mailing lists" 67 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:38
  68 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:38
  69 +#, fuzzy
  70 +#| msgid "Gitlab Merge Requests"
  71 +msgid "Merge Requests"
  72 +msgstr "Gitlab Merge Requests"
51 73
52 -#: accounts/forms.py:161  
53 -#, python-format  
54 -msgid "Email already used. Is it you? Please <a href='%(url)s'>login</a>"  
55 -msgstr "Email already used. Is it you? Please <a href='%(url)s'>login</a>" 74 +#: colab-noosfero-plugin/tests/plugins.d/noosfero.py:21
  75 +#: colab-spb-plugin/tests/plugins.d/noosfero.py:21
  76 +msgid "Social"
  77 +msgstr ""
56 78
57 -#: accounts/forms.py:163  
58 -msgid "A user with that username already exists."  
59 -msgstr "A user with that username already exists." 79 +#: colab-noosfero-plugin/tests/plugins.d/noosfero.py:26
  80 +#: colab-spb-plugin/tests/plugins.d/noosfero.py:26
  81 +#, fuzzy
  82 +#| msgid "Username"
  83 +msgid "Users"
  84 +msgstr "Username"
60 85
61 -#: accounts/forms.py:164 accounts/forms.py:401 accounts/forms.py:465  
62 -msgid "The two password fields didn't match."  
63 -msgstr "The two password fields didn't match." 86 +#: colab-noosfero-plugin/tests/plugins.d/noosfero.py:28
  87 +#: colab-spb-plugin/tests/plugins.d/noosfero.py:28
  88 +msgid "Communities"
  89 +msgstr "Communities"
64 90
65 -#: accounts/forms.py:166 accounts/forms.py:236 search/forms.py:38  
66 -msgid "Username"  
67 -msgstr "Username" 91 +#: colab-noosfero-plugin/tests/plugins.d/noosfero.py:32
  92 +#: colab-spb-plugin/tests/plugins.d/noosfero.py:32
  93 +msgid "Control Panel"
  94 +msgstr ""
68 95
69 -#: accounts/forms.py:173 accounts/forms.py:240 accounts/forms.py:277  
70 -#: accounts/forms.py:467  
71 -msgid "Password"  
72 -msgstr "Password" 96 +#~ msgid "Personal info"
  97 +#~ msgstr "Personal info"
73 98
74 -#: accounts/forms.py:175  
75 -msgid "Password confirmation"  
76 -msgstr "Password confirmation" 99 +#~ msgid "Permissions"
  100 +#~ msgstr "Permissions"
77 101
78 -#: accounts/forms.py:237 accounts/models.py:78  
79 -msgid "Required. 30 characters or fewer. Letters and digits."  
80 -msgstr "Required. 30 characters or fewer. Letters and digits." 102 +#~ msgid "Important dates"
  103 +#~ msgstr "Important dates"
81 104
82 -#: accounts/forms.py:239  
83 -msgid "This value may contain only letters and numbers."  
84 -msgstr "This value may contain only letters and numbers." 105 +#~ msgid "Social account does not exist"
  106 +#~ msgstr "Social account does not exist"
85 107
86 -#: accounts/forms.py:241  
87 -msgid ""  
88 -"Raw passwords are not stored, so there is no way to see this user's "  
89 -"password, but you can change the password using <a href=\"password/\">this "  
90 -"form</a>."  
91 -msgstr "Raw passwords are not stored, so there is no way to see this user's password, but you can change the password using <a href=\"password/\">this form</a>." 108 +#~ msgid "This field cannot be blank."
  109 +#~ msgstr "This field cannot be blank."
92 110
93 -#: accounts/forms.py:280  
94 -#, python-format  
95 -msgid ""  
96 -"Please enter a correct %(username)s and password. Note that both fields may "  
97 -"be case-sensitive."  
98 -msgstr "Please enter a correct %(username)s and password. Note that both fields may be case-sensitive."  
99 -  
100 -#: accounts/forms.py:282  
101 -msgid "This account is inactive."  
102 -msgstr "This account is inactive."  
103 -  
104 -#: accounts/forms.py:345  
105 -msgid "Email"  
106 -msgstr "Email"  
107 -  
108 -#: accounts/forms.py:403  
109 -msgid "New password"  
110 -msgstr "New password"  
111 -  
112 -#: accounts/forms.py:405  
113 -msgid "New password confirmation"  
114 -msgstr "New password confirmation"  
115 -  
116 -#: accounts/forms.py:436  
117 -msgid "Your old password was entered incorrectly. Please enter it again."  
118 -msgstr "Your old password was entered incorrectly. Please enter it again."  
119 -  
120 -#: accounts/forms.py:439  
121 -msgid "Old password"  
122 -msgstr "Old password"  
123 -  
124 -#: accounts/forms.py:469  
125 -msgid "Password (again)"  
126 -msgstr "Password (again)"  
127 -  
128 -#: accounts/models.py:82  
129 -msgid "Enter a valid username."  
130 -msgstr "Enter a valid username."  
131 -  
132 -#: accounts/templates/accounts/manage_subscriptions.html:6  
133 -msgid "Group Subscriptions"  
134 -msgstr "Group Subscriptions"  
135 -  
136 -#: accounts/templates/accounts/manage_subscriptions.html:36  
137 -msgid "Update subscriptions"  
138 -msgstr "Update subscriptions"  
139 -  
140 -#: accounts/templates/accounts/user_create_form.html:5  
141 -msgid "Sign up"  
142 -msgstr "Sign up"  
143 -  
144 -#: accounts/templates/accounts/user_create_form.html:10  
145 -#: accounts/templates/registration/login.html:14  
146 -#: accounts/templates/registration/password_change_form_custom.html:12  
147 -#: accounts/templates/registration/password_reset_confirm_custom.html:14  
148 -#: accounts/templates/registration/password_reset_form_custom.html:9  
149 -msgid "Please correct the errors below and try again."  
150 -msgstr "Please correct the errors below and try again."  
151 -  
152 -#: accounts/templates/accounts/user_create_form.html:17  
153 -msgid "Required fields"  
154 -msgstr "Required fields"  
155 -  
156 -#: accounts/templates/accounts/user_create_form.html:29  
157 -msgid "Personal Information"  
158 -msgstr "Personal Information"  
159 -  
160 -#: accounts/templates/accounts/user_create_form.html:46  
161 -msgid "Subscribe to groups"  
162 -msgstr "Subscribe to groups"  
163 -  
164 -#: accounts/templates/accounts/user_create_form.html:60  
165 -#: templates/base.html:100 templates/base.html.py:105 templates/header.html:40  
166 -#: templates/header.html.py:45  
167 -msgid "Register"  
168 -msgstr "Register"  
169 -  
170 -#: accounts/templates/accounts/user_detail.html:8  
171 -msgid "Messages"  
172 -msgstr "Messages"  
173 -  
174 -#: accounts/templates/accounts/user_detail.html:9 templates/home.html:7  
175 -msgid "Contributions"  
176 -msgstr "Contributions"  
177 -  
178 -#: accounts/templates/accounts/user_detail.html:29  
179 -msgid "edit profile"  
180 -msgstr "edit profile"  
181 -  
182 -#: accounts/templates/accounts/user_detail.html:30  
183 -msgid "group membership"  
184 -msgstr "group membership"  
185 -  
186 -#: accounts/templates/accounts/user_detail.html:66  
187 -msgid "Twitter account"  
188 -msgstr "Twitter account"  
189 -  
190 -#: accounts/templates/accounts/user_detail.html:69  
191 -msgid "Facebook account"  
192 -msgstr "Facebook account"  
193 -  
194 -#: accounts/templates/accounts/user_detail.html:74  
195 -msgid "Google talk account"  
196 -msgstr "Google talk account"  
197 -  
198 -#: accounts/templates/accounts/user_detail.html:78  
199 -msgid "Github account"  
200 -msgstr "Github account"  
201 -  
202 -#: accounts/templates/accounts/user_detail.html:82  
203 -msgid "Personal webpage"  
204 -msgstr "Personal webpage"  
205 -  
206 -#: accounts/templates/accounts/user_detail.html:88  
207 -msgid "Groups: "  
208 -msgstr "Groups: "  
209 -  
210 -#: accounts/templates/accounts/user_detail.html:101  
211 -msgid "Collaborations by Type"  
212 -msgstr "Collaborations by Type"  
213 -  
214 -#: accounts/templates/accounts/user_detail.html:117  
215 -msgid "Participation by Group"  
216 -msgstr "Participation by Group"  
217 -  
218 -#: accounts/templates/accounts/user_detail.html:133  
219 -msgid "Latest posted"  
220 -msgstr "Latest posted"  
221 -  
222 -#: accounts/templates/accounts/user_detail.html:138  
223 -msgid "There are no posts by this user so far."  
224 -msgstr "There are no posts by this user so far."  
225 -  
226 -#: accounts/templates/accounts/user_detail.html:142  
227 -msgid "View more posts..."  
228 -msgstr "View more posts..."  
229 -  
230 -#: accounts/templates/accounts/user_detail.html:148  
231 -msgid "Latest contributions"  
232 -msgstr "Latest contributions"  
233 -  
234 -#: accounts/templates/accounts/user_detail.html:153  
235 -msgid "No contributions of this user so far."  
236 -msgstr "No contributions of this user so far."  
237 -  
238 -#: accounts/templates/accounts/user_detail.html:157  
239 -msgid "View more contributions..."  
240 -msgstr "View more contributions..."  
241 -  
242 -#: accounts/templates/accounts/user_update_form.html:65  
243 -msgid "We sent a verification email to "  
244 -msgstr "We sent a verification email to "  
245 -  
246 -#: accounts/templates/accounts/user_update_form.html:66  
247 -msgid "Please follow the instructions in it."  
248 -msgstr "Please follow the instructions in it."  
249 -  
250 -#: accounts/templates/accounts/user_update_form.html:110  
251 -msgid "profile information"  
252 -msgstr "profile information"  
253 -  
254 -#: accounts/templates/accounts/user_update_form.html:115  
255 -msgid "Change your avatar at Gravatar.com"  
256 -msgstr "Change your avatar at Gravatar.com"  
257 -  
258 -#: accounts/templates/accounts/user_update_form.html:142 search/utils.py:56  
259 -msgid "Emails"  
260 -msgstr "Emails"  
261 -  
262 -#: accounts/templates/accounts/user_update_form.html:151  
263 -msgid "Primary"  
264 -msgstr "Primary"  
265 -  
266 -#: accounts/templates/accounts/user_update_form.html:154  
267 -msgid "Setting..."  
268 -msgstr "Setting..."  
269 -  
270 -#: accounts/templates/accounts/user_update_form.html:154  
271 -msgid "Set as Primary"  
272 -msgstr "Set as Primary"  
273 -  
274 -#: accounts/templates/accounts/user_update_form.html:155  
275 -msgid "Deleting..."  
276 -msgstr "Deleting..."  
277 -  
278 -#: accounts/templates/accounts/user_update_form.html:155  
279 -#: accounts/templates/accounts/user_update_form.html:167  
280 -msgid "Delete"  
281 -msgstr "Delete"  
282 -  
283 -#: accounts/templates/accounts/user_update_form.html:166  
284 -msgid "Sending verification..."  
285 -msgstr "Sending verification..."  
286 -  
287 -#: accounts/templates/accounts/user_update_form.html:166  
288 -msgid "Verify"  
289 -msgstr "Verify"  
290 -  
291 -#: accounts/templates/accounts/user_update_form.html:174  
292 -msgid "Add another email address:"  
293 -msgstr "Add another email address:"  
294 -  
295 -#: accounts/templates/accounts/user_update_form.html:177  
296 -msgid "Add"  
297 -msgstr "Add"  
298 -  
299 -#: accounts/templates/accounts/user_update_form.html:185  
300 -#: accounts/templates/accounts/user_update_form.html:189  
301 -#: accounts/templates/registration/password_change_form_custom.html:26  
302 -#: accounts/templates/registration/password_reset_confirm_custom.html:28  
303 -msgid "Change Password"  
304 -msgstr "Change Password"  
305 -  
306 -#: accounts/templates/accounts/user_update_form.html:196  
307 -msgid "Update"  
308 -msgstr "Update"  
309 -  
310 -#: accounts/templates/registration/login.html:10  
311 -#: accounts/templates/registration/password_change_form_custom.html:10  
312 -#: accounts/templates/registration/password_reset_confirm_custom.html:12  
313 -msgid "Please correct the error below and try again."  
314 -msgstr "Please correct the error below and try again."  
315 -  
316 -#: accounts/templates/registration/login.html:34  
317 -#: accounts/templates/registration/login.html:54 templates/base.html:99  
318 -#: templates/base.html.py:101 templates/base.html:104  
319 -#: templates/base.html.py:106 templates/header.html:39  
320 -#: templates/header.html.py:41 templates/header.html:44  
321 -#: templates/header.html.py:46  
322 -msgid "Login"  
323 -msgstr "Login"  
324 -  
325 -#: accounts/templates/registration/login.html:56  
326 -msgid "Forgot Password?"  
327 -msgstr "Forgot Password?"  
328 -  
329 -#: accounts/templates/registration/password_change_form_custom.html:54  
330 -#: accounts/templates/registration/password_reset_confirm_custom.html:51  
331 -msgid "Change my password"  
332 -msgstr "Change my password"  
333 -  
334 -#: accounts/templates/registration/password_reset_confirm_custom.html:3  
335 -msgid "Setting New password"  
336 -msgstr "Setting New password"  
337 -  
338 -#: accounts/templates/registration/password_reset_form_custom.html:23  
339 -msgid ""  
340 -"Forgotten your password? Enter your email address below, and we'll email "  
341 -"instructions for setting a new one."  
342 -msgstr "Forgotten your password? Enter your email address below, and we'll email instructions for setting a new one." 111 +#~ msgid "Bio"
  112 +#~ msgstr "Bio"
343 113
344 -#: accounts/templates/registration/password_reset_form_custom.html:26  
345 -msgid "Email address:"  
346 -msgstr "Email address:" 114 +#~ msgid "Write something about you in 200 characters or less."
  115 +#~ msgstr "Write something about you in 200 characters or less."
347 116
348 -#: accounts/templates/registration/password_reset_form_custom.html:37  
349 -msgid "Reset password"  
350 -msgstr "Reset password" 117 +#~ msgid "Mailing lists"
  118 +#~ msgstr "Mailing lists"
351 119
352 -#: accounts/views.py:126  
353 -msgid "Your profile has been created!"  
354 -msgstr "Your profile has been created!" 120 +#~ msgid "Email already used. Is it you? Please <a href='%(url)s'>login</a>"
  121 +#~ msgstr "Email already used. Is it you? Please <a href='%(url)s'>login</a>"
355 122
356 -#: accounts/views.py:186  
357 -msgid "Your password was changed."  
358 -msgstr "Your password was changed." 123 +#~ msgid "A user with that username already exists."
  124 +#~ msgstr "A user with that username already exists."
359 125
360 -#: accounts/views.py:202  
361 -msgid "Your password has been set. You may go ahead and log in now."  
362 -msgstr "Your password has been set. You may go ahead and log in now." 126 +#~ msgid "The two password fields didn't match."
  127 +#~ msgstr "The two password fields didn't match."
363 128
364 -#: home/context_processors.py:20  
365 -msgid "Fork me!"  
366 -msgstr "Fork me!" 129 +#~ msgid "Password"
  130 +#~ msgstr "Password"
367 131
368 -#: plugins/gitlab/models.py:27  
369 -msgid "Gitlab Project"  
370 -msgstr "Gitlab Project" 132 +#~ msgid "Password confirmation"
  133 +#~ msgstr "Password confirmation"
371 134
372 -#: plugins/gitlab/models.py:28  
373 -msgid "Gitlab Projects"  
374 -msgstr "Gitlab Projects" 135 +#~ msgid "Required. 30 characters or fewer. Letters and digits."
  136 +#~ msgstr "Required. 30 characters or fewer. Letters and digits."
375 137
376 -#: plugins/gitlab/models.py:54  
377 -msgid "Gitlab Group"  
378 -msgstr "Gitlab Group" 138 +#~ msgid "This value may contain only letters and numbers."
  139 +#~ msgstr "This value may contain only letters and numbers."
379 140
380 -#: plugins/gitlab/models.py:55  
381 -msgid "Gitlab Groups"  
382 -msgstr "Gitlab Groups" 141 +#~ msgid ""
  142 +#~ "Raw passwords are not stored, so there is no way to see this user's "
  143 +#~ "password, but you can change the password using <a href=\"password/"
  144 +#~ "\">this form</a>."
  145 +#~ msgstr ""
  146 +#~ "Raw passwords are not stored, so there is no way to see this user's "
  147 +#~ "password, but you can change the password using <a href=\"password/"
  148 +#~ "\">this form</a>."
383 149
384 -#: plugins/gitlab/models.py:91  
385 -msgid "Gitlab Merge Request"  
386 -msgstr "Gitlab Merge Request" 150 +#~ msgid ""
  151 +#~ "Please enter a correct %(username)s and password. Note that both fields "
  152 +#~ "may be case-sensitive."
  153 +#~ msgstr ""
  154 +#~ "Please enter a correct %(username)s and password. Note that both fields "
  155 +#~ "may be case-sensitive."
387 156
388 -#: plugins/gitlab/models.py:92  
389 -msgid "Gitlab Merge Requests"  
390 -msgstr "Gitlab Merge Requests" 157 +#~ msgid "This account is inactive."
  158 +#~ msgstr "This account is inactive."
391 159
392 -#: plugins/gitlab/models.py:120  
393 -msgid "Gitlab Issue"  
394 -msgstr "Gitlab Issue" 160 +#~ msgid "Email"
  161 +#~ msgstr "Email"
395 162
396 -#: plugins/gitlab/models.py:121  
397 -msgid "Gitlab Issues"  
398 -msgstr "Gitlab Issues" 163 +#~ msgid "New password"
  164 +#~ msgstr "New password"
399 165
400 -#: plugins/gitlab/models.py:176 plugins/gitlab/models.py:177  
401 -msgid "Gitlab Comments"  
402 -msgstr "Gitlab Comments" 166 +#~ msgid "New password confirmation"
  167 +#~ msgstr "New password confirmation"
403 168
404 -#: plugins/noosfero/models.py:39  
405 -msgid "Community"  
406 -msgstr "Community" 169 +#~ msgid "Your old password was entered incorrectly. Please enter it again."
  170 +#~ msgstr "Your old password was entered incorrectly. Please enter it again."
407 171
408 -#: plugins/noosfero/models.py:40  
409 -msgid "Communities"  
410 -msgstr "Communities" 172 +#~ msgid "Old password"
  173 +#~ msgstr "Old password"
411 174
412 -#: plugins/noosfero/models.py:67  
413 -msgid "Article"  
414 -msgstr "Article"  
415 -  
416 -#: plugins/noosfero/models.py:68  
417 -msgid "Articles"  
418 -msgstr "Articles"  
419 -  
420 -#: rss/feeds.py:13  
421 -msgid "Latest Discussions"  
422 -msgstr "Latest Discussions"  
423 -  
424 -#: rss/feeds.py:32  
425 -msgid "Discussions Most Relevance"  
426 -msgstr "Discussions Most Relevance"  
427 -  
428 -#: rss/feeds.py:51  
429 -msgid "Latest collaborations"  
430 -msgstr "Latest collaborations"  
431 -  
432 -#: search/forms.py:16 search/templates/search/search.html:46  
433 -#: templates/base.html:89 templates/header.html:29  
434 -msgid "Search"  
435 -msgstr "Search"  
436 -  
437 -#: search/forms.py:18  
438 -msgid "Type"  
439 -msgstr "Type"  
440 -  
441 -#: search/forms.py:19 search/views.py:20  
442 -msgid "Author"  
443 -msgstr "Author"  
444 -  
445 -#: search/forms.py:20  
446 -msgid "Modified by"  
447 -msgstr "Modified by"  
448 -  
449 -#: search/forms.py:22  
450 -msgid "Status"  
451 -msgstr "Status"  
452 -  
453 -#: search/forms.py:26 search/views.py:23  
454 -msgid "Mailinglist"  
455 -msgstr "Mailinglist"  
456 -  
457 -#: search/forms.py:30  
458 -msgid "Milestone"  
459 -msgstr "Milestone"  
460 -  
461 -#: search/forms.py:31  
462 -msgid "Priority"  
463 -msgstr "Priority"  
464 -  
465 -#: search/forms.py:32  
466 -msgid "Component"  
467 -msgstr "Component"  
468 -  
469 -#: search/forms.py:33  
470 -msgid "Severity"  
471 -msgstr "Severity"  
472 -  
473 -#: search/forms.py:34  
474 -msgid "Reporter"  
475 -msgstr "Reporter"  
476 -  
477 -#: search/forms.py:35  
478 -msgid "Keywords"  
479 -msgstr "Keywords"  
480 -  
481 -#: search/forms.py:36  
482 -msgid "Collaborators"  
483 -msgstr "Collaborators"  
484 -  
485 -#: search/forms.py:37  
486 -msgid "Repository"  
487 -msgstr "Repository"  
488 -  
489 -#: search/forms.py:39  
490 -msgid "Name"  
491 -msgstr "Name"  
492 -  
493 -#: search/forms.py:40  
494 -msgid "Institution"  
495 -msgstr "Institution"  
496 -  
497 -#: search/forms.py:41  
498 -msgid "Role"  
499 -msgstr "Role"  
500 -  
501 -#: search/forms.py:42 search/templates/search/includes/search_filters.html:132  
502 -#: search/templates/search/includes/search_filters.html:134  
503 -#: search/templates/search/includes/search_filters.html:166  
504 -#: search/templates/search/includes/search_filters.html:167  
505 -msgid "Since"  
506 -msgstr "Since"  
507 -  
508 -#: search/forms.py:43 search/templates/search/includes/search_filters.html:141  
509 -#: search/templates/search/includes/search_filters.html:143  
510 -#: search/templates/search/includes/search_filters.html:170  
511 -#: search/templates/search/includes/search_filters.html:171  
512 -msgid "Until"  
513 -msgstr "Until"  
514 -  
515 -#: search/forms.py:44  
516 -msgid "Filename"  
517 -msgstr "Filename"  
518 -  
519 -#: search/forms.py:45  
520 -msgid "Used by"  
521 -msgstr "Used by"  
522 -  
523 -#: search/forms.py:46  
524 -msgid "File type"  
525 -msgstr "File type"  
526 -  
527 -#: search/forms.py:47  
528 -msgid "Size"  
529 -msgstr "Size"  
530 -  
531 -#: search/templates/search/includes/search_filters.html:5  
532 -#: search/templates/search/includes/search_filters.html:33  
533 -#: search/templates/search/includes/search_filters.html:51  
534 -#: search/templates/search/includes/search_filters.html:69  
535 -msgid "Remove filter"  
536 -msgstr "Remove filter"  
537 -  
538 -#: search/templates/search/includes/search_filters.html:88  
539 -#: search/templates/search/includes/search_filters.html:152  
540 -#: search/templates/search/includes/search_filters.html:176  
541 -msgid "Filter"  
542 -msgstr "Filter"  
543 -  
544 -#: search/templates/search/includes/search_filters.html:94  
545 -msgid "Sort by"  
546 -msgstr "Sort by"  
547 -  
548 -#: search/templates/search/includes/search_filters.html:111  
549 -msgid "Types"  
550 -msgstr "Types"  
551 -  
552 -#: search/templates/search/includes/search_filters.html:117 search/views.py:18  
553 -msgid "Discussion"  
554 -msgstr "Discussion"  
555 -  
556 -#: search/templates/search/search.html:5  
557 -msgid "search"  
558 -msgstr "search"  
559 -  
560 -#: search/templates/search/search.html:51  
561 -msgid "documents found"  
562 -msgstr "documents found"  
563 -  
564 -#: search/templates/search/search.html:62  
565 -msgid "Search here"  
566 -msgstr "Search here"  
567 -  
568 -#: search/templates/search/search.html:74  
569 -#: search/templates/search/search.html:84  
570 -msgid "Filters"  
571 -msgstr "Filters"  
572 -  
573 -#: search/templates/search/search.html:105  
574 -msgid "No results for your search."  
575 -msgstr "No results for your search."  
576 -  
577 -#: search/templates/search/search.html:107  
578 -msgid "You are searching for"  
579 -msgstr "You are searching for"  
580 -  
581 -#: settings.py:113  
582 -msgid "English"  
583 -msgstr "English"  
584 -  
585 -#: settings.py:114  
586 -msgid "Portuguese"  
587 -msgstr "Portuguese"  
588 -  
589 -#: settings.py:115  
590 -msgid "Spanish"  
591 -msgstr "Spanish"  
592 -  
593 -#: settings.py:138  
594 -msgid "Recent activity"  
595 -msgstr "Recent activity"  
596 -  
597 -#: settings.py:142  
598 -msgid "Relevance"  
599 -msgstr "Relevance"  
600 -  
601 -#: settings.py:151  
602 -msgid "Document"  
603 -msgstr "Document"  
604 -  
605 -#: settings.py:153  
606 -msgid "Presentation"  
607 -msgstr "Presentation"  
608 -  
609 -#: settings.py:154  
610 -msgid "Text"  
611 -msgstr "Text"  
612 -  
613 -#: settings.py:155  
614 -msgid "Code"  
615 -msgstr "Code" 175 +#~ msgid "Password (again)"
  176 +#~ msgstr "Password (again)"
616 177
617 -#: settings.py:157  
618 -msgid "Compressed"  
619 -msgstr "Compressed" 178 +#~ msgid "Enter a valid username."
  179 +#~ msgstr "Enter a valid username."
620 180
621 -#: settings.py:158  
622 -msgid "Image"  
623 -msgstr "Image" 181 +#~ msgid "Group Subscriptions"
  182 +#~ msgstr "Group Subscriptions"
624 183
625 -#: settings.py:160  
626 -msgid "Spreadsheet"  
627 -msgstr "Spreadsheet" 184 +#~ msgid "Update subscriptions"
  185 +#~ msgstr "Update subscriptions"
628 186
629 -#: templates/404.html:5  
630 -msgid "Not found. Keep searching! :)"  
631 -msgstr "Not found. Keep searching! :)" 187 +#~ msgid "Sign up"
  188 +#~ msgstr "Sign up"
632 189
633 -#: templates/500.html:2  
634 -msgid "Ooopz... something went wrong!"  
635 -msgstr "Ooopz... something went wrong!" 190 +#~ msgid "Please correct the errors below and try again."
  191 +#~ msgstr "Please correct the errors below and try again."
636 192
637 -#: templates/base.html:83 templates/header.html:21  
638 -msgid "Groups"  
639 -msgstr "Groups" 193 +#~ msgid "Required fields"
  194 +#~ msgstr "Required fields"
640 195
641 -#: templates/base.html:119 templates/header.html:59  
642 -msgid "My Profile"  
643 -msgstr "My Profile" 196 +#~ msgid "Personal Information"
  197 +#~ msgstr "Personal Information"
  198 +
  199 +#~ msgid "Subscribe to groups"
  200 +#~ msgstr "Subscribe to groups"
  201 +
  202 +#~ msgid "Register"
  203 +#~ msgstr "Register"
  204 +
  205 +#~ msgid "Messages"
  206 +#~ msgstr "Messages"
  207 +
  208 +#~ msgid "Contributions"
  209 +#~ msgstr "Contributions"
  210 +
  211 +#~ msgid "edit profile"
  212 +#~ msgstr "edit profile"
  213 +
  214 +#~ msgid "group membership"
  215 +#~ msgstr "group membership"
  216 +
  217 +#~ msgid "Twitter account"
  218 +#~ msgstr "Twitter account"
  219 +
  220 +#~ msgid "Facebook account"
  221 +#~ msgstr "Facebook account"
  222 +
  223 +#~ msgid "Google talk account"
  224 +#~ msgstr "Google talk account"
  225 +
  226 +#~ msgid "Github account"
  227 +#~ msgstr "Github account"
  228 +
  229 +#~ msgid "Personal webpage"
  230 +#~ msgstr "Personal webpage"
  231 +
  232 +#~ msgid "Groups: "
  233 +#~ msgstr "Groups: "
  234 +
  235 +#~ msgid "Collaborations by Type"
  236 +#~ msgstr "Collaborations by Type"
  237 +
  238 +#~ msgid "Participation by Group"
  239 +#~ msgstr "Participation by Group"
  240 +
  241 +#~ msgid "Latest posted"
  242 +#~ msgstr "Latest posted"
  243 +
  244 +#~ msgid "There are no posts by this user so far."
  245 +#~ msgstr "There are no posts by this user so far."
  246 +
  247 +#~ msgid "View more posts..."
  248 +#~ msgstr "View more posts..."
  249 +
  250 +#~ msgid "Latest contributions"
  251 +#~ msgstr "Latest contributions"
  252 +
  253 +#~ msgid "No contributions of this user so far."
  254 +#~ msgstr "No contributions of this user so far."
  255 +
  256 +#~ msgid "View more contributions..."
  257 +#~ msgstr "View more contributions..."
  258 +
  259 +#~ msgid "We sent a verification email to "
  260 +#~ msgstr "We sent a verification email to "
  261 +
  262 +#~ msgid "Please follow the instructions in it."
  263 +#~ msgstr "Please follow the instructions in it."
  264 +
  265 +#~ msgid "profile information"
  266 +#~ msgstr "profile information"
  267 +
  268 +#~ msgid "Change your avatar at Gravatar.com"
  269 +#~ msgstr "Change your avatar at Gravatar.com"
  270 +
  271 +#~ msgid "Emails"
  272 +#~ msgstr "Emails"
  273 +
  274 +#~ msgid "Primary"
  275 +#~ msgstr "Primary"
  276 +
  277 +#~ msgid "Setting..."
  278 +#~ msgstr "Setting..."
  279 +
  280 +#~ msgid "Set as Primary"
  281 +#~ msgstr "Set as Primary"
  282 +
  283 +#~ msgid "Deleting..."
  284 +#~ msgstr "Deleting..."
  285 +
  286 +#~ msgid "Delete"
  287 +#~ msgstr "Delete"
  288 +
  289 +#~ msgid "Sending verification..."
  290 +#~ msgstr "Sending verification..."
  291 +
  292 +#~ msgid "Verify"
  293 +#~ msgstr "Verify"
  294 +
  295 +#~ msgid "Add another email address:"
  296 +#~ msgstr "Add another email address:"
  297 +
  298 +#~ msgid "Add"
  299 +#~ msgstr "Add"
  300 +
  301 +#~ msgid "Change Password"
  302 +#~ msgstr "Change Password"
  303 +
  304 +#~ msgid "Update"
  305 +#~ msgstr "Update"
  306 +
  307 +#~ msgid "Please correct the error below and try again."
  308 +#~ msgstr "Please correct the error below and try again."
  309 +
  310 +#~ msgid "Login"
  311 +#~ msgstr "Login"
  312 +
  313 +#~ msgid "Forgot Password?"
  314 +#~ msgstr "Forgot Password?"
  315 +
  316 +#~ msgid "Change my password"
  317 +#~ msgstr "Change my password"
  318 +
  319 +#~ msgid "Setting New password"
  320 +#~ msgstr "Setting New password"
  321 +
  322 +#~ msgid ""
  323 +#~ "Forgotten your password? Enter your email address below, and we'll email "
  324 +#~ "instructions for setting a new one."
  325 +#~ msgstr ""
  326 +#~ "Forgotten your password? Enter your email address below, and we'll email "
  327 +#~ "instructions for setting a new one."
  328 +
  329 +#~ msgid "Email address:"
  330 +#~ msgstr "Email address:"
  331 +
  332 +#~ msgid "Reset password"
  333 +#~ msgstr "Reset password"
  334 +
  335 +#~ msgid "Your profile has been created!"
  336 +#~ msgstr "Your profile has been created!"
  337 +
  338 +#~ msgid "Your password was changed."
  339 +#~ msgstr "Your password was changed."
  340 +
  341 +#~ msgid "Your password has been set. You may go ahead and log in now."
  342 +#~ msgstr "Your password has been set. You may go ahead and log in now."
  343 +
  344 +#~ msgid "Fork me!"
  345 +#~ msgstr "Fork me!"
  346 +
  347 +#~ msgid "Gitlab Group"
  348 +#~ msgstr "Gitlab Group"
  349 +
  350 +#~ msgid "Gitlab Groups"
  351 +#~ msgstr "Gitlab Groups"
  352 +
  353 +#~ msgid "Gitlab Merge Request"
  354 +#~ msgstr "Gitlab Merge Request"
  355 +
  356 +#~ msgid "Gitlab Issue"
  357 +#~ msgstr "Gitlab Issue"
  358 +
  359 +#~ msgid "Gitlab Comments"
  360 +#~ msgstr "Gitlab Comments"
  361 +
  362 +#~ msgid "Community"
  363 +#~ msgstr "Community"
  364 +
  365 +#~ msgid "Article"
  366 +#~ msgstr "Article"
  367 +
  368 +#~ msgid "Articles"
  369 +#~ msgstr "Articles"
  370 +
  371 +#~ msgid "Latest Discussions"
  372 +#~ msgstr "Latest Discussions"
  373 +
  374 +#~ msgid "Discussions Most Relevance"
  375 +#~ msgstr "Discussions Most Relevance"
  376 +
  377 +#~ msgid "Latest collaborations"
  378 +#~ msgstr "Latest collaborations"
  379 +
  380 +#~ msgid "Search"
  381 +#~ msgstr "Search"
  382 +
  383 +#~ msgid "Type"
  384 +#~ msgstr "Type"
  385 +
  386 +#~ msgid "Author"
  387 +#~ msgstr "Author"
  388 +
  389 +#~ msgid "Modified by"
  390 +#~ msgstr "Modified by"
  391 +
  392 +#~ msgid "Status"
  393 +#~ msgstr "Status"
  394 +
  395 +#~ msgid "Mailinglist"
  396 +#~ msgstr "Mailinglist"
  397 +
  398 +#~ msgid "Milestone"
  399 +#~ msgstr "Milestone"
  400 +
  401 +#~ msgid "Priority"
  402 +#~ msgstr "Priority"
  403 +
  404 +#~ msgid "Component"
  405 +#~ msgstr "Component"
  406 +
  407 +#~ msgid "Severity"
  408 +#~ msgstr "Severity"
  409 +
  410 +#~ msgid "Reporter"
  411 +#~ msgstr "Reporter"
  412 +
  413 +#~ msgid "Keywords"
  414 +#~ msgstr "Keywords"
  415 +
  416 +#~ msgid "Collaborators"
  417 +#~ msgstr "Collaborators"
  418 +
  419 +#~ msgid "Repository"
  420 +#~ msgstr "Repository"
  421 +
  422 +#~ msgid "Name"
  423 +#~ msgstr "Name"
  424 +
  425 +#~ msgid "Institution"
  426 +#~ msgstr "Institution"
  427 +
  428 +#~ msgid "Role"
  429 +#~ msgstr "Role"
  430 +
  431 +#~ msgid "Since"
  432 +#~ msgstr "Since"
  433 +
  434 +#~ msgid "Until"
  435 +#~ msgstr "Until"
  436 +
  437 +#~ msgid "Filename"
  438 +#~ msgstr "Filename"
  439 +
  440 +#~ msgid "Used by"
  441 +#~ msgstr "Used by"
  442 +
  443 +#~ msgid "File type"
  444 +#~ msgstr "File type"
  445 +
  446 +#~ msgid "Size"
  447 +#~ msgstr "Size"
  448 +
  449 +#~ msgid "Remove filter"
  450 +#~ msgstr "Remove filter"
  451 +
  452 +#~ msgid "Filter"
  453 +#~ msgstr "Filter"
  454 +
  455 +#~ msgid "Sort by"
  456 +#~ msgstr "Sort by"
  457 +
  458 +#~ msgid "Types"
  459 +#~ msgstr "Types"
  460 +
  461 +#~ msgid "Discussion"
  462 +#~ msgstr "Discussion"
  463 +
  464 +#~ msgid "search"
  465 +#~ msgstr "search"
  466 +
  467 +#~ msgid "documents found"
  468 +#~ msgstr "documents found"
  469 +
  470 +#~ msgid "Search here"
  471 +#~ msgstr "Search here"
  472 +
  473 +#~ msgid "Filters"
  474 +#~ msgstr "Filters"
  475 +
  476 +#~ msgid "No results for your search."
  477 +#~ msgstr "No results for your search."
  478 +
  479 +#~ msgid "You are searching for"
  480 +#~ msgstr "You are searching for"
  481 +
  482 +#~ msgid "English"
  483 +#~ msgstr "English"
  484 +
  485 +#~ msgid "Portuguese"
  486 +#~ msgstr "Portuguese"
  487 +
  488 +#~ msgid "Spanish"
  489 +#~ msgstr "Spanish"
  490 +
  491 +#~ msgid "Recent activity"
  492 +#~ msgstr "Recent activity"
  493 +
  494 +#~ msgid "Relevance"
  495 +#~ msgstr "Relevance"
  496 +
  497 +#~ msgid "Document"
  498 +#~ msgstr "Document"
  499 +
  500 +#~ msgid "Presentation"
  501 +#~ msgstr "Presentation"
  502 +
  503 +#~ msgid "Text"
  504 +#~ msgstr "Text"
  505 +
  506 +#~ msgid "Compressed"
  507 +#~ msgstr "Compressed"
  508 +
  509 +#~ msgid "Image"
  510 +#~ msgstr "Image"
  511 +
  512 +#~ msgid "Spreadsheet"
  513 +#~ msgstr "Spreadsheet"
  514 +
  515 +#~ msgid "Not found. Keep searching! :)"
  516 +#~ msgstr "Not found. Keep searching! :)"
  517 +
  518 +#~ msgid "Ooopz... something went wrong!"
  519 +#~ msgstr "Ooopz... something went wrong!"
644 520
645 -#: templates/base.html:120 templates/base.html.py:121 templates/header.html:60  
646 -#: templates/header.html.py:61  
647 -msgid "Logout"  
648 -msgstr "Logout" 521 +#~ msgid "Logout"
  522 +#~ msgstr "Logout"
649 523
650 -#: templates/base.html:132 templates/base.html.py:135 templates/header.html:72  
651 -#: templates/header.html.py:75  
652 -msgid "Search here..."  
653 -msgstr "Search here..." 524 +#~ msgid "Search here..."
  525 +#~ msgstr "Search here..."
654 526
655 -#: templates/base.html:149  
656 -msgid "The login has failed. Please, try again."  
657 -msgstr "The login has failed. Please, try again." 527 +#~ msgid "The login has failed. Please, try again."
  528 +#~ msgstr "The login has failed. Please, try again."
658 529
659 -#: templates/footer.html:6  
660 -msgid "Last email imported at"  
661 -msgstr "Last email imported at" 530 +#~ msgid "Last email imported at"
  531 +#~ msgstr "Last email imported at"
662 532
663 -#: templates/footer.html:12  
664 -msgid "The contents of this site is published under license"  
665 -msgstr "The contents of this site is published under license" 533 +#~ msgid "The contents of this site is published under license"
  534 +#~ msgstr "The contents of this site is published under license"
666 535
667 -#: templates/footer.html:15  
668 -msgid "Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual"  
669 -msgstr "Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual" 536 +#~ msgid "Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual"
  537 +#~ msgstr "Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual"
670 538
671 -#: templates/header.html:26  
672 -msgid "Paste"  
673 -msgstr "Paste" 539 +#~ msgid "Paste"
  540 +#~ msgstr "Paste"
674 541
675 -#: templates/home.html:17  
676 -msgid "Latest Collaborations"  
677 -msgstr "Latest Collaborations" 542 +#~ msgid "Latest Collaborations"
  543 +#~ msgstr "Latest Collaborations"
678 544
679 -#: templates/home.html:21  
680 -msgid "RSS - Latest collaborations"  
681 -msgstr "RSS - Latest collaborations" 545 +#~ msgid "RSS - Latest collaborations"
  546 +#~ msgstr "RSS - Latest collaborations"
682 547
683 -#: templates/home.html:30  
684 -msgid "View more collaborations..."  
685 -msgstr "View more collaborations..." 548 +#~ msgid "View more collaborations..."
  549 +#~ msgstr "View more collaborations..."
686 550
687 -#: templates/home.html:37  
688 -msgid "Collaboration Graph"  
689 -msgstr "Collaboration Graph" 551 +#~ msgid "Collaboration Graph"
  552 +#~ msgstr "Collaboration Graph"
690 553
691 -#: templates/home.html:48  
692 -msgid "Most Relevant Threads"  
693 -msgstr "Most Relevant Threads" 554 +#~ msgid "Most Relevant Threads"
  555 +#~ msgstr "Most Relevant Threads"
694 556
695 -#: templates/home.html:52  
696 -msgid "RSS - Most Relevant Threads"  
697 -msgstr "RSS - Most Relevant Threads" 557 +#~ msgid "RSS - Most Relevant Threads"
  558 +#~ msgstr "RSS - Most Relevant Threads"
698 559
699 -#: templates/home.html:60 templates/home.html.py:79  
700 -msgid "View more discussions..."  
701 -msgstr "View more discussions..." 560 +#~ msgid "View more discussions..."
  561 +#~ msgstr "View more discussions..."
702 562
703 -#: templates/home.html:67  
704 -msgid "Latest Threads"  
705 -msgstr "Latest Threads" 563 +#~ msgid "Latest Threads"
  564 +#~ msgstr "Latest Threads"
706 565
707 -#: templates/home.html:71  
708 -msgid "RSS - Latest Threads"  
709 -msgstr "RSS - Latest Threads" 566 +#~ msgid "RSS - Latest Threads"
  567 +#~ msgstr "RSS - Latest Threads"
colab/locale/pt_BR/LC_MESSAGES/django.po
1 # SOME DESCRIPTIVE TITLE. 1 # SOME DESCRIPTIVE TITLE.
2 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 2 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3 # This file is distributed under the same license as the PACKAGE package. 3 # This file is distributed under the same license as the PACKAGE package.
4 -# 4 +#
5 # Translators: 5 # Translators:
6 # Lucas Kanashiro Duarte <kanashiro.duarte@gmail.com>, 2015 6 # Lucas Kanashiro Duarte <kanashiro.duarte@gmail.com>, 2015
7 # macártur de sousa carvalho <macartur.sc@gmail.com>, 2015 7 # macártur de sousa carvalho <macartur.sc@gmail.com>, 2015
@@ -10,703 +10,564 @@ msgid &quot;&quot; @@ -10,703 +10,564 @@ msgid &quot;&quot;
10 msgstr "" 10 msgstr ""
11 "Project-Id-Version: colab\n" 11 "Project-Id-Version: colab\n"
12 "Report-Msgid-Bugs-To: \n" 12 "Report-Msgid-Bugs-To: \n"
13 -"POT-Creation-Date: 2015-09-01 13:15+0000\n" 13 +"POT-Creation-Date: 2015-10-27 13:48+0000\n"
14 "PO-Revision-Date: 2015-09-07 19:13+0000\n" 14 "PO-Revision-Date: 2015-09-07 19:13+0000\n"
15 "Last-Translator: Lucas Kanashiro Duarte <kanashiro.duarte@gmail.com>\n" 15 "Last-Translator: Lucas Kanashiro Duarte <kanashiro.duarte@gmail.com>\n"
16 -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/colab/colab/language/pt_BR/)\n" 16 +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/colab/colab/"
  17 +"language/pt_BR/)\n"
  18 +"Language: pt_BR\n"
17 "MIME-Version: 1.0\n" 19 "MIME-Version: 1.0\n"
18 "Content-Type: text/plain; charset=UTF-8\n" 20 "Content-Type: text/plain; charset=UTF-8\n"
19 "Content-Transfer-Encoding: 8bit\n" 21 "Content-Transfer-Encoding: 8bit\n"
20 -"Language: pt_BR\n"  
21 "Plural-Forms: nplurals=2; plural=(n > 1);\n" 22 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
22 23
23 -#: accounts/admin.py:18  
24 -msgid "Personal info"  
25 -msgstr "Informações Pessoais" 24 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:21
  25 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:21
  26 +msgid "Code"
  27 +msgstr "Código"
26 28
27 -#: accounts/admin.py:24  
28 -msgid "Permissions"  
29 -msgstr "Permissões" 29 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:26
  30 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:26
  31 +#, fuzzy
  32 +#| msgid "Gitlab Projects"
  33 +msgid "Public Projects"
  34 +msgstr "Projetos no Gitlab"
30 35
31 -#: accounts/admin.py:28  
32 -msgid "Important dates"  
33 -msgstr "Datas importantes" 36 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:28
  37 +#: colab-noosfero-plugin/tests/plugins.d/noosfero.py:30
  38 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:28
  39 +#: colab-spb-plugin/tests/plugins.d/noosfero.py:30
  40 +#, fuzzy
  41 +#| msgid "My Profile"
  42 +msgid "Profile"
  43 +msgstr "Meu Perfil"
34 44
35 -#: accounts/forms.py:37  
36 -msgid "Social account does not exist"  
37 -msgstr "Conta social não existe" 45 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:30
  46 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:30
  47 +#, fuzzy
  48 +#| msgid "Gitlab Project"
  49 +msgid "New Project"
  50 +msgstr "Projeto no Gitlab"
38 51
39 -#: accounts/forms.py:65 accounts/forms.py:71 accounts/forms.py:77  
40 -msgid "This field cannot be blank."  
41 -msgstr "Este campo não pode ficar em branco." 52 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:32
  53 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:32
  54 +#, fuzzy
  55 +#| msgid "Gitlab Projects"
  56 +msgid "Projects"
  57 +msgstr "Projetos no Gitlab"
42 58
43 -#: accounts/forms.py:118 accounts/templates/accounts/user_detail.html:38  
44 -msgid "Bio"  
45 -msgstr "Bio" 59 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:34
  60 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:34
  61 +msgid "Groups"
  62 +msgstr "Grupos"
46 63
47 -#: accounts/forms.py:119  
48 -msgid "Write something about you in 200 characters or less."  
49 -msgstr "Escreva algo sobre você em 200 caracteres ou menos." 64 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:36
  65 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:36
  66 +#, fuzzy
  67 +#| msgid "Gitlab Issues"
  68 +msgid "Issues"
  69 +msgstr "Tíquetes no Gitlab"
50 70
51 -#: accounts/forms.py:148  
52 -msgid "Mailing lists"  
53 -msgstr "Listas de e-mail" 71 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:38
  72 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:38
  73 +#, fuzzy
  74 +#| msgid "Gitlab Merge Requests"
  75 +msgid "Merge Requests"
  76 +msgstr "Envio de Contribuições no Gitlab"
54 77
55 -#: accounts/forms.py:161  
56 -#, python-format  
57 -msgid "Email already used. Is it you? Please <a href='%(url)s'>login</a>"  
58 -msgstr "Este email ja está sendo utilizado.Caso seja o seu efetue o <a href='%(url)s'>login</a>" 78 +#: colab-noosfero-plugin/tests/plugins.d/noosfero.py:21
  79 +#: colab-spb-plugin/tests/plugins.d/noosfero.py:21
  80 +msgid "Social"
  81 +msgstr "Social"
59 82
60 -#: accounts/forms.py:163  
61 -msgid "A user with that username already exists."  
62 -msgstr "Já existe um usuário com este nome." 83 +#: colab-noosfero-plugin/tests/plugins.d/noosfero.py:26
  84 +#: colab-spb-plugin/tests/plugins.d/noosfero.py:26
  85 +#, fuzzy
  86 +#| msgid "Username"
  87 +msgid "Users"
  88 +msgstr "Usuário"
63 89
64 -#: accounts/forms.py:164 accounts/forms.py:401 accounts/forms.py:465  
65 -msgid "The two password fields didn't match."  
66 -msgstr "Os dois campos de senha não conferem." 90 +#: colab-noosfero-plugin/tests/plugins.d/noosfero.py:28
  91 +#: colab-spb-plugin/tests/plugins.d/noosfero.py:28
  92 +msgid "Communities"
  93 +msgstr "Comunidades"
67 94
68 -#: accounts/forms.py:166 accounts/forms.py:236 search/forms.py:38  
69 -msgid "Username"  
70 -msgstr "Usuário" 95 +#: colab-noosfero-plugin/tests/plugins.d/noosfero.py:32
  96 +#: colab-spb-plugin/tests/plugins.d/noosfero.py:32
  97 +msgid "Control Panel"
  98 +msgstr "Painel de Controle"
71 99
72 -#: accounts/forms.py:173 accounts/forms.py:240 accounts/forms.py:277  
73 -#: accounts/forms.py:467  
74 -msgid "Password"  
75 -msgstr "Senha" 100 +#~ msgid "Personal info"
  101 +#~ msgstr "Informações Pessoais"
76 102
77 -#: accounts/forms.py:175  
78 -msgid "Password confirmation"  
79 -msgstr "Confirmação de senha" 103 +#~ msgid "Permissions"
  104 +#~ msgstr "Permissões"
80 105
81 -#: accounts/forms.py:237 accounts/models.py:78  
82 -msgid "Required. 30 characters or fewer. Letters and digits."  
83 -msgstr "Obrigatório. 30 caracteres ou menos. Letras ou digitos." 106 +#~ msgid "Important dates"
  107 +#~ msgstr "Datas importantes"
84 108
85 -#: accounts/forms.py:239  
86 -msgid "This value may contain only letters and numbers."  
87 -msgstr "Este campo pode conter apenas letras e números." 109 +#~ msgid "Social account does not exist"
  110 +#~ msgstr "Conta social não existe"
88 111
89 -#: accounts/forms.py:241  
90 -msgid ""  
91 -"Raw passwords are not stored, so there is no way to see this user's "  
92 -"password, but you can change the password using <a href=\"password/\">this "  
93 -"form</a>."  
94 -msgstr "Senhas em claro não são armazenadas, então não será possível visualizar sua senha, no entanto você poderá modificar sua senha utilizando <a href=\\\"password/\\\">este formulário</a>." 112 +#~ msgid "This field cannot be blank."
  113 +#~ msgstr "Este campo não pode ficar em branco."
95 114
96 -#: accounts/forms.py:280  
97 -#, python-format  
98 -msgid ""  
99 -"Please enter a correct %(username)s and password. Note that both fields may "  
100 -"be case-sensitive."  
101 -msgstr "Por favor entre com um %(username)s e senha. Note que ambos os campos diferenciam letras maiúsculas de minúsculas"  
102 -  
103 -#: accounts/forms.py:282  
104 -msgid "This account is inactive."  
105 -msgstr "Esta conta está inativa."  
106 -  
107 -#: accounts/forms.py:345  
108 -msgid "Email"  
109 -msgstr "Email"  
110 -  
111 -#: accounts/forms.py:403  
112 -msgid "New password"  
113 -msgstr "Nova senha"  
114 -  
115 -#: accounts/forms.py:405  
116 -msgid "New password confirmation"  
117 -msgstr "Confirmar nova senha"  
118 -  
119 -#: accounts/forms.py:436  
120 -msgid "Your old password was entered incorrectly. Please enter it again."  
121 -msgstr "Sua senha atual está incorreta. Por favor tente novamente."  
122 -  
123 -#: accounts/forms.py:439  
124 -msgid "Old password"  
125 -msgstr "Senha atual"  
126 -  
127 -#: accounts/forms.py:469  
128 -msgid "Password (again)"  
129 -msgstr "Senha (novamente)"  
130 -  
131 -#: accounts/models.py:82  
132 -msgid "Enter a valid username."  
133 -msgstr "Insira um nome de usuário válido."  
134 -  
135 -#: accounts/templates/accounts/manage_subscriptions.html:6  
136 -msgid "Group Subscriptions"  
137 -msgstr "Inscrições em grupos"  
138 -  
139 -#: accounts/templates/accounts/manage_subscriptions.html:36  
140 -msgid "Update subscriptions"  
141 -msgstr "Atualizar inscrições"  
142 -  
143 -#: accounts/templates/accounts/user_create_form.html:5  
144 -msgid "Sign up"  
145 -msgstr "Cadastrar"  
146 -  
147 -#: accounts/templates/accounts/user_create_form.html:10  
148 -#: accounts/templates/registration/login.html:14  
149 -#: accounts/templates/registration/password_change_form_custom.html:12  
150 -#: accounts/templates/registration/password_reset_confirm_custom.html:14  
151 -#: accounts/templates/registration/password_reset_form_custom.html:9  
152 -msgid "Please correct the errors below and try again."  
153 -msgstr "Por favor corrija os erros abaixo e tente novamente."  
154 -  
155 -#: accounts/templates/accounts/user_create_form.html:17  
156 -msgid "Required fields"  
157 -msgstr "Campos obrigatórios"  
158 -  
159 -#: accounts/templates/accounts/user_create_form.html:29  
160 -msgid "Personal Information"  
161 -msgstr "Informações pessoais"  
162 -  
163 -#: accounts/templates/accounts/user_create_form.html:46  
164 -msgid "Subscribe to groups"  
165 -msgstr "Inscreva-se nos grupos"  
166 -  
167 -#: accounts/templates/accounts/user_create_form.html:60  
168 -#: templates/base.html:100 templates/base.html.py:105 templates/header.html:40  
169 -#: templates/header.html.py:45  
170 -msgid "Register"  
171 -msgstr "Cadastre-se"  
172 -  
173 -#: accounts/templates/accounts/user_detail.html:8  
174 -msgid "Messages"  
175 -msgstr "Mensagens"  
176 -  
177 -#: accounts/templates/accounts/user_detail.html:9 templates/home.html:7  
178 -msgid "Contributions"  
179 -msgstr "Contribuições"  
180 -  
181 -#: accounts/templates/accounts/user_detail.html:29  
182 -msgid "edit profile"  
183 -msgstr "editar perfil"  
184 -  
185 -#: accounts/templates/accounts/user_detail.html:30  
186 -msgid "group membership"  
187 -msgstr "Inscrições nos grupos"  
188 -  
189 -#: accounts/templates/accounts/user_detail.html:66  
190 -msgid "Twitter account"  
191 -msgstr "Conta Twitter"  
192 -  
193 -#: accounts/templates/accounts/user_detail.html:69  
194 -msgid "Facebook account"  
195 -msgstr "Conta Facebook"  
196 -  
197 -#: accounts/templates/accounts/user_detail.html:74  
198 -msgid "Google talk account"  
199 -msgstr "Conta Google talk"  
200 -  
201 -#: accounts/templates/accounts/user_detail.html:78  
202 -msgid "Github account"  
203 -msgstr "Conta Github"  
204 -  
205 -#: accounts/templates/accounts/user_detail.html:82  
206 -msgid "Personal webpage"  
207 -msgstr "Página web pessoal"  
208 -  
209 -#: accounts/templates/accounts/user_detail.html:88  
210 -msgid "Groups: "  
211 -msgstr "Grupos: "  
212 -  
213 -#: accounts/templates/accounts/user_detail.html:101  
214 -msgid "Collaborations by Type"  
215 -msgstr "Colaborações por tipo"  
216 -  
217 -#: accounts/templates/accounts/user_detail.html:117  
218 -msgid "Participation by Group"  
219 -msgstr "Participação por grupo"  
220 -  
221 -#: accounts/templates/accounts/user_detail.html:133  
222 -msgid "Latest posted"  
223 -msgstr "Últimas postagens"  
224 -  
225 -#: accounts/templates/accounts/user_detail.html:138  
226 -msgid "There are no posts by this user so far."  
227 -msgstr "Não há posts deste usuário até agora."  
228 -  
229 -#: accounts/templates/accounts/user_detail.html:142  
230 -msgid "View more posts..."  
231 -msgstr "Ver mais postagens..."  
232 -  
233 -#: accounts/templates/accounts/user_detail.html:148  
234 -msgid "Latest contributions"  
235 -msgstr "Últimas colaborações"  
236 -  
237 -#: accounts/templates/accounts/user_detail.html:153  
238 -msgid "No contributions of this user so far."  
239 -msgstr "Não há contribuições deste usuário até agora."  
240 -  
241 -#: accounts/templates/accounts/user_detail.html:157  
242 -msgid "View more contributions..."  
243 -msgstr "Ver mais colaborações..."  
244 -  
245 -#: accounts/templates/accounts/user_update_form.html:65  
246 -msgid "We sent a verification email to "  
247 -msgstr "Enviamos um email de verificação para "  
248 -  
249 -#: accounts/templates/accounts/user_update_form.html:66  
250 -msgid "Please follow the instructions in it."  
251 -msgstr "Por favor, siga as instruções."  
252 -  
253 -#: accounts/templates/accounts/user_update_form.html:110  
254 -msgid "profile information"  
255 -msgstr "informações do perfil"  
256 -  
257 -#: accounts/templates/accounts/user_update_form.html:115  
258 -msgid "Change your avatar at Gravatar.com"  
259 -msgstr "Troque seu avatar em Gravatar.com"  
260 -  
261 -#: accounts/templates/accounts/user_update_form.html:142 search/utils.py:56  
262 -msgid "Emails"  
263 -msgstr "Emails"  
264 -  
265 -#: accounts/templates/accounts/user_update_form.html:151  
266 -msgid "Primary"  
267 -msgstr "Primário"  
268 -  
269 -#: accounts/templates/accounts/user_update_form.html:154  
270 -msgid "Setting..."  
271 -msgstr "Definindo..."  
272 -  
273 -#: accounts/templates/accounts/user_update_form.html:154  
274 -msgid "Set as Primary"  
275 -msgstr "Definir como Primário"  
276 -  
277 -#: accounts/templates/accounts/user_update_form.html:155  
278 -msgid "Deleting..."  
279 -msgstr "Apagando..."  
280 -  
281 -#: accounts/templates/accounts/user_update_form.html:155  
282 -#: accounts/templates/accounts/user_update_form.html:167  
283 -msgid "Delete"  
284 -msgstr "Apagar"  
285 -  
286 -#: accounts/templates/accounts/user_update_form.html:166  
287 -msgid "Sending verification..."  
288 -msgstr "Enviando verificação..."  
289 -  
290 -#: accounts/templates/accounts/user_update_form.html:166  
291 -msgid "Verify"  
292 -msgstr "Verificar"  
293 -  
294 -#: accounts/templates/accounts/user_update_form.html:174  
295 -msgid "Add another email address:"  
296 -msgstr "Adicionar outro endereço de email"  
297 -  
298 -#: accounts/templates/accounts/user_update_form.html:177  
299 -msgid "Add"  
300 -msgstr "Adicionar"  
301 -  
302 -#: accounts/templates/accounts/user_update_form.html:185  
303 -#: accounts/templates/accounts/user_update_form.html:189  
304 -#: accounts/templates/registration/password_change_form_custom.html:26  
305 -#: accounts/templates/registration/password_reset_confirm_custom.html:28  
306 -msgid "Change Password"  
307 -msgstr "Trocar senha"  
308 -  
309 -#: accounts/templates/accounts/user_update_form.html:196  
310 -msgid "Update"  
311 -msgstr "Atualizar"  
312 -  
313 -#: accounts/templates/registration/login.html:10  
314 -#: accounts/templates/registration/password_change_form_custom.html:10  
315 -#: accounts/templates/registration/password_reset_confirm_custom.html:12  
316 -msgid "Please correct the error below and try again."  
317 -msgstr "Por favor corrija o erro abaixo e tente novamente."  
318 -  
319 -#: accounts/templates/registration/login.html:34  
320 -#: accounts/templates/registration/login.html:54 templates/base.html:99  
321 -#: templates/base.html.py:101 templates/base.html:104  
322 -#: templates/base.html.py:106 templates/header.html:39  
323 -#: templates/header.html.py:41 templates/header.html:44  
324 -#: templates/header.html.py:46  
325 -msgid "Login"  
326 -msgstr "Entrar"  
327 -  
328 -#: accounts/templates/registration/login.html:56  
329 -msgid "Forgot Password?"  
330 -msgstr "Esqueci minha Senha?"  
331 -  
332 -#: accounts/templates/registration/password_change_form_custom.html:54  
333 -#: accounts/templates/registration/password_reset_confirm_custom.html:51  
334 -msgid "Change my password"  
335 -msgstr "Alterar minha senha"  
336 -  
337 -#: accounts/templates/registration/password_reset_confirm_custom.html:3  
338 -msgid "Setting New password"  
339 -msgstr "Definir Nova Senha"  
340 -  
341 -#: accounts/templates/registration/password_reset_form_custom.html:23  
342 -msgid ""  
343 -"Forgotten your password? Enter your email address below, and we'll email "  
344 -"instructions for setting a new one."  
345 -msgstr "Esqueceu sua senha? Digite seu email abaixo, e enviaremos instruções para redefinir sua senha." 115 +#~ msgid "Bio"
  116 +#~ msgstr "Bio"
346 117
347 -#: accounts/templates/registration/password_reset_form_custom.html:26  
348 -msgid "Email address:"  
349 -msgstr "Endereço de email: " 118 +#~ msgid "Write something about you in 200 characters or less."
  119 +#~ msgstr "Escreva algo sobre você em 200 caracteres ou menos."
350 120
351 -#: accounts/templates/registration/password_reset_form_custom.html:37  
352 -msgid "Reset password"  
353 -msgstr "Redefinir senha" 121 +#~ msgid "Mailing lists"
  122 +#~ msgstr "Listas de e-mail"
354 123
355 -#: accounts/views.py:126  
356 -msgid "Your profile has been created!"  
357 -msgstr "Seu perfil foi criado!" 124 +#~ msgid "Email already used. Is it you? Please <a href='%(url)s'>login</a>"
  125 +#~ msgstr ""
  126 +#~ "Este email ja está sendo utilizado.Caso seja o seu efetue o <a "
  127 +#~ "href='%(url)s'>login</a>"
358 128
359 -#: accounts/views.py:186  
360 -msgid "Your password was changed."  
361 -msgstr "Sua senha foi modificada." 129 +#~ msgid "A user with that username already exists."
  130 +#~ msgstr "Já existe um usuário com este nome."
362 131
363 -#: accounts/views.py:202  
364 -msgid "Your password has been set. You may go ahead and log in now."  
365 -msgstr "Sua senha foi modificada. Você já pode efetuar o login agora." 132 +#~ msgid "The two password fields didn't match."
  133 +#~ msgstr "Os dois campos de senha não conferem."
366 134
367 -#: home/context_processors.py:20  
368 -msgid "Fork me!"  
369 -msgstr "Fork me!" 135 +#~ msgid "Password"
  136 +#~ msgstr "Senha"
370 137
371 -#: plugins/gitlab/models.py:27  
372 -msgid "Gitlab Project"  
373 -msgstr "Projeto no Gitlab" 138 +#~ msgid "Password confirmation"
  139 +#~ msgstr "Confirmação de senha"
374 140
375 -#: plugins/gitlab/models.py:28  
376 -msgid "Gitlab Projects"  
377 -msgstr "Projetos no Gitlab" 141 +#~ msgid "Required. 30 characters or fewer. Letters and digits."
  142 +#~ msgstr "Obrigatório. 30 caracteres ou menos. Letras ou digitos."
378 143
379 -#: plugins/gitlab/models.py:54  
380 -msgid "Gitlab Group"  
381 -msgstr "Grupo no Gitlab" 144 +#~ msgid "This value may contain only letters and numbers."
  145 +#~ msgstr "Este campo pode conter apenas letras e números."
382 146
383 -#: plugins/gitlab/models.py:55  
384 -msgid "Gitlab Groups"  
385 -msgstr "Grupos no Gitlab" 147 +#~ msgid ""
  148 +#~ "Raw passwords are not stored, so there is no way to see this user's "
  149 +#~ "password, but you can change the password using <a href=\"password/"
  150 +#~ "\">this form</a>."
  151 +#~ msgstr ""
  152 +#~ "Senhas em claro não são armazenadas, então não será possível visualizar "
  153 +#~ "sua senha, no entanto você poderá modificar sua senha utilizando <a href="
  154 +#~ "\\\"password/\\\">este formulário</a>."
386 155
387 -#: plugins/gitlab/models.py:91  
388 -msgid "Gitlab Merge Request"  
389 -msgstr "Envio de Contribuição no Gitlab" 156 +#~ msgid ""
  157 +#~ "Please enter a correct %(username)s and password. Note that both fields "
  158 +#~ "may be case-sensitive."
  159 +#~ msgstr ""
  160 +#~ "Por favor entre com um %(username)s e senha. Note que ambos os campos "
  161 +#~ "diferenciam letras maiúsculas de minúsculas"
390 162
391 -#: plugins/gitlab/models.py:92  
392 -msgid "Gitlab Merge Requests"  
393 -msgstr "Envio de Contribuições no Gitlab" 163 +#~ msgid "This account is inactive."
  164 +#~ msgstr "Esta conta está inativa."
394 165
395 -#: plugins/gitlab/models.py:120  
396 -msgid "Gitlab Issue"  
397 -msgstr "Tíquete no Gitlab" 166 +#~ msgid "Email"
  167 +#~ msgstr "Email"
398 168
399 -#: plugins/gitlab/models.py:121  
400 -msgid "Gitlab Issues"  
401 -msgstr "Tíquetes no Gitlab" 169 +#~ msgid "New password"
  170 +#~ msgstr "Nova senha"
402 171
403 -#: plugins/gitlab/models.py:176 plugins/gitlab/models.py:177  
404 -msgid "Gitlab Comments"  
405 -msgstr "Comentários no Gitlab" 172 +#~ msgid "New password confirmation"
  173 +#~ msgstr "Confirmar nova senha"
406 174
407 -#: plugins/noosfero/models.py:39  
408 -msgid "Community"  
409 -msgstr "Comunidade" 175 +#~ msgid "Your old password was entered incorrectly. Please enter it again."
  176 +#~ msgstr "Sua senha atual está incorreta. Por favor tente novamente."
410 177
411 -#: plugins/noosfero/models.py:40  
412 -msgid "Communities"  
413 -msgstr "Comunidades" 178 +#~ msgid "Old password"
  179 +#~ msgstr "Senha atual"
414 180
415 -#: plugins/noosfero/models.py:67  
416 -msgid "Article"  
417 -msgstr "Artigo"  
418 -  
419 -#: plugins/noosfero/models.py:68  
420 -msgid "Articles"  
421 -msgstr "Artigos"  
422 -  
423 -#: rss/feeds.py:13  
424 -msgid "Latest Discussions"  
425 -msgstr "Últimas discussões"  
426 -  
427 -#: rss/feeds.py:32  
428 -msgid "Discussions Most Relevance"  
429 -msgstr "Discussões Mais Relevantes"  
430 -  
431 -#: rss/feeds.py:51  
432 -msgid "Latest collaborations"  
433 -msgstr "Últimas colaborações"  
434 -  
435 -#: search/forms.py:16 search/templates/search/search.html:46  
436 -#: templates/base.html:89 templates/header.html:29  
437 -msgid "Search"  
438 -msgstr "Busca"  
439 -  
440 -#: search/forms.py:18  
441 -msgid "Type"  
442 -msgstr "Tipo"  
443 -  
444 -#: search/forms.py:19 search/views.py:20  
445 -msgid "Author"  
446 -msgstr "Autor"  
447 -  
448 -#: search/forms.py:20  
449 -msgid "Modified by"  
450 -msgstr "Modificado por"  
451 -  
452 -#: search/forms.py:22  
453 -msgid "Status"  
454 -msgstr "Status"  
455 -  
456 -#: search/forms.py:26 search/views.py:23  
457 -msgid "Mailinglist"  
458 -msgstr "Lista de discussão"  
459 -  
460 -#: search/forms.py:30  
461 -msgid "Milestone"  
462 -msgstr "Marco"  
463 -  
464 -#: search/forms.py:31  
465 -msgid "Priority"  
466 -msgstr "Prioridade"  
467 -  
468 -#: search/forms.py:32  
469 -msgid "Component"  
470 -msgstr "Componente"  
471 -  
472 -#: search/forms.py:33  
473 -msgid "Severity"  
474 -msgstr "Severidade"  
475 -  
476 -#: search/forms.py:34  
477 -msgid "Reporter"  
478 -msgstr "Relator"  
479 -  
480 -#: search/forms.py:35  
481 -msgid "Keywords"  
482 -msgstr "Palavras chave"  
483 -  
484 -#: search/forms.py:36  
485 -msgid "Collaborators"  
486 -msgstr "Colaboradores"  
487 -  
488 -#: search/forms.py:37  
489 -msgid "Repository"  
490 -msgstr "Repositório"  
491 -  
492 -#: search/forms.py:39  
493 -msgid "Name"  
494 -msgstr "Nome"  
495 -  
496 -#: search/forms.py:40  
497 -msgid "Institution"  
498 -msgstr "Instituição"  
499 -  
500 -#: search/forms.py:41  
501 -msgid "Role"  
502 -msgstr "Papel"  
503 -  
504 -#: search/forms.py:42 search/templates/search/includes/search_filters.html:132  
505 -#: search/templates/search/includes/search_filters.html:134  
506 -#: search/templates/search/includes/search_filters.html:166  
507 -#: search/templates/search/includes/search_filters.html:167  
508 -msgid "Since"  
509 -msgstr "Desde"  
510 -  
511 -#: search/forms.py:43 search/templates/search/includes/search_filters.html:141  
512 -#: search/templates/search/includes/search_filters.html:143  
513 -#: search/templates/search/includes/search_filters.html:170  
514 -#: search/templates/search/includes/search_filters.html:171  
515 -msgid "Until"  
516 -msgstr "Até"  
517 -  
518 -#: search/forms.py:44  
519 -msgid "Filename"  
520 -msgstr "Nome do arquivo"  
521 -  
522 -#: search/forms.py:45  
523 -msgid "Used by"  
524 -msgstr "Usado por"  
525 -  
526 -#: search/forms.py:46  
527 -msgid "File type"  
528 -msgstr "Tipo do arquivo"  
529 -  
530 -#: search/forms.py:47  
531 -msgid "Size"  
532 -msgstr "Tamanho"  
533 -  
534 -#: search/templates/search/includes/search_filters.html:5  
535 -#: search/templates/search/includes/search_filters.html:33  
536 -#: search/templates/search/includes/search_filters.html:51  
537 -#: search/templates/search/includes/search_filters.html:69  
538 -msgid "Remove filter"  
539 -msgstr "Remover filtro"  
540 -  
541 -#: search/templates/search/includes/search_filters.html:88  
542 -#: search/templates/search/includes/search_filters.html:152  
543 -#: search/templates/search/includes/search_filters.html:176  
544 -msgid "Filter"  
545 -msgstr "Filtro"  
546 -  
547 -#: search/templates/search/includes/search_filters.html:94  
548 -msgid "Sort by"  
549 -msgstr "Ordenar por"  
550 -  
551 -#: search/templates/search/includes/search_filters.html:111  
552 -msgid "Types"  
553 -msgstr "Tipos"  
554 -  
555 -#: search/templates/search/includes/search_filters.html:117 search/views.py:18  
556 -msgid "Discussion"  
557 -msgstr "Discussão"  
558 -  
559 -#: search/templates/search/search.html:5  
560 -msgid "search"  
561 -msgstr "busca"  
562 -  
563 -#: search/templates/search/search.html:51  
564 -msgid "documents found"  
565 -msgstr "documentos encontrados"  
566 -  
567 -#: search/templates/search/search.html:62  
568 -msgid "Search here"  
569 -msgstr "Pesquise aqui"  
570 -  
571 -#: search/templates/search/search.html:74  
572 -#: search/templates/search/search.html:84  
573 -msgid "Filters"  
574 -msgstr "Filtros"  
575 -  
576 -#: search/templates/search/search.html:105  
577 -msgid "No results for your search."  
578 -msgstr "Não há resultados para sua busca."  
579 -  
580 -#: search/templates/search/search.html:107  
581 -msgid "You are searching for"  
582 -msgstr "Você está procurando por"  
583 -  
584 -#: settings.py:113  
585 -msgid "English"  
586 -msgstr "Inglês"  
587 -  
588 -#: settings.py:114  
589 -msgid "Portuguese"  
590 -msgstr "Português"  
591 -  
592 -#: settings.py:115  
593 -msgid "Spanish"  
594 -msgstr "Espanhol"  
595 -  
596 -#: settings.py:138  
597 -msgid "Recent activity"  
598 -msgstr "Atividade recente"  
599 -  
600 -#: settings.py:142  
601 -msgid "Relevance"  
602 -msgstr "Relevância"  
603 -  
604 -#: settings.py:151  
605 -msgid "Document"  
606 -msgstr "Documento"  
607 -  
608 -#: settings.py:153  
609 -msgid "Presentation"  
610 -msgstr "Apresentação"  
611 -  
612 -#: settings.py:154  
613 -msgid "Text"  
614 -msgstr "Texto"  
615 -  
616 -#: settings.py:155  
617 -msgid "Code"  
618 -msgstr "Código" 181 +#~ msgid "Password (again)"
  182 +#~ msgstr "Senha (novamente)"
619 183
620 -#: settings.py:157  
621 -msgid "Compressed"  
622 -msgstr "Compactado" 184 +#~ msgid "Enter a valid username."
  185 +#~ msgstr "Insira um nome de usuário válido."
623 186
624 -#: settings.py:158  
625 -msgid "Image"  
626 -msgstr "Imagem" 187 +#~ msgid "Group Subscriptions"
  188 +#~ msgstr "Inscrições em grupos"
627 189
628 -#: settings.py:160  
629 -msgid "Spreadsheet"  
630 -msgstr "Planilha" 190 +#~ msgid "Update subscriptions"
  191 +#~ msgstr "Atualizar inscrições"
631 192
632 -#: templates/404.html:5  
633 -msgid "Not found. Keep searching! :)"  
634 -msgstr "Não encontrado. Continue procurando! :)" 193 +#~ msgid "Sign up"
  194 +#~ msgstr "Cadastrar"
635 195
636 -#: templates/500.html:2  
637 -msgid "Ooopz... something went wrong!"  
638 -msgstr "Ooopa... algo saiu errado!" 196 +#~ msgid "Please correct the errors below and try again."
  197 +#~ msgstr "Por favor corrija os erros abaixo e tente novamente."
639 198
640 -#: templates/base.html:83 templates/header.html:21  
641 -msgid "Groups"  
642 -msgstr "Grupos" 199 +#~ msgid "Required fields"
  200 +#~ msgstr "Campos obrigatórios"
643 201
644 -#: templates/base.html:119 templates/header.html:59  
645 -msgid "My Profile"  
646 -msgstr "Meu Perfil" 202 +#~ msgid "Personal Information"
  203 +#~ msgstr "Informações pessoais"
  204 +
  205 +#~ msgid "Subscribe to groups"
  206 +#~ msgstr "Inscreva-se nos grupos"
  207 +
  208 +#~ msgid "Register"
  209 +#~ msgstr "Cadastre-se"
  210 +
  211 +#~ msgid "Messages"
  212 +#~ msgstr "Mensagens"
  213 +
  214 +#~ msgid "Contributions"
  215 +#~ msgstr "Contribuições"
  216 +
  217 +#~ msgid "edit profile"
  218 +#~ msgstr "editar perfil"
  219 +
  220 +#~ msgid "group membership"
  221 +#~ msgstr "Inscrições nos grupos"
  222 +
  223 +#~ msgid "Twitter account"
  224 +#~ msgstr "Conta Twitter"
  225 +
  226 +#~ msgid "Facebook account"
  227 +#~ msgstr "Conta Facebook"
  228 +
  229 +#~ msgid "Google talk account"
  230 +#~ msgstr "Conta Google talk"
  231 +
  232 +#~ msgid "Github account"
  233 +#~ msgstr "Conta Github"
  234 +
  235 +#~ msgid "Personal webpage"
  236 +#~ msgstr "Página web pessoal"
  237 +
  238 +#~ msgid "Groups: "
  239 +#~ msgstr "Grupos: "
  240 +
  241 +#~ msgid "Collaborations by Type"
  242 +#~ msgstr "Colaborações por tipo"
  243 +
  244 +#~ msgid "Participation by Group"
  245 +#~ msgstr "Participação por grupo"
  246 +
  247 +#~ msgid "Latest posted"
  248 +#~ msgstr "Últimas postagens"
  249 +
  250 +#~ msgid "There are no posts by this user so far."
  251 +#~ msgstr "Não há posts deste usuário até agora."
  252 +
  253 +#~ msgid "View more posts..."
  254 +#~ msgstr "Ver mais postagens..."
  255 +
  256 +#~ msgid "Latest contributions"
  257 +#~ msgstr "Últimas colaborações"
  258 +
  259 +#~ msgid "No contributions of this user so far."
  260 +#~ msgstr "Não há contribuições deste usuário até agora."
  261 +
  262 +#~ msgid "View more contributions..."
  263 +#~ msgstr "Ver mais colaborações..."
  264 +
  265 +#~ msgid "We sent a verification email to "
  266 +#~ msgstr "Enviamos um email de verificação para "
  267 +
  268 +#~ msgid "Please follow the instructions in it."
  269 +#~ msgstr "Por favor, siga as instruções."
  270 +
  271 +#~ msgid "profile information"
  272 +#~ msgstr "informações do perfil"
  273 +
  274 +#~ msgid "Change your avatar at Gravatar.com"
  275 +#~ msgstr "Troque seu avatar em Gravatar.com"
  276 +
  277 +#~ msgid "Emails"
  278 +#~ msgstr "Emails"
  279 +
  280 +#~ msgid "Primary"
  281 +#~ msgstr "Primário"
  282 +
  283 +#~ msgid "Setting..."
  284 +#~ msgstr "Definindo..."
  285 +
  286 +#~ msgid "Set as Primary"
  287 +#~ msgstr "Definir como Primário"
  288 +
  289 +#~ msgid "Deleting..."
  290 +#~ msgstr "Apagando..."
  291 +
  292 +#~ msgid "Delete"
  293 +#~ msgstr "Apagar"
  294 +
  295 +#~ msgid "Sending verification..."
  296 +#~ msgstr "Enviando verificação..."
  297 +
  298 +#~ msgid "Verify"
  299 +#~ msgstr "Verificar"
  300 +
  301 +#~ msgid "Add another email address:"
  302 +#~ msgstr "Adicionar outro endereço de email"
  303 +
  304 +#~ msgid "Add"
  305 +#~ msgstr "Adicionar"
  306 +
  307 +#~ msgid "Change Password"
  308 +#~ msgstr "Trocar senha"
  309 +
  310 +#~ msgid "Update"
  311 +#~ msgstr "Atualizar"
  312 +
  313 +#~ msgid "Please correct the error below and try again."
  314 +#~ msgstr "Por favor corrija o erro abaixo e tente novamente."
  315 +
  316 +#~ msgid "Login"
  317 +#~ msgstr "Entrar"
  318 +
  319 +#~ msgid "Forgot Password?"
  320 +#~ msgstr "Esqueci minha Senha?"
  321 +
  322 +#~ msgid "Change my password"
  323 +#~ msgstr "Alterar minha senha"
  324 +
  325 +#~ msgid "Setting New password"
  326 +#~ msgstr "Definir Nova Senha"
  327 +
  328 +#~ msgid ""
  329 +#~ "Forgotten your password? Enter your email address below, and we'll email "
  330 +#~ "instructions for setting a new one."
  331 +#~ msgstr ""
  332 +#~ "Esqueceu sua senha? Digite seu email abaixo, e enviaremos instruções para "
  333 +#~ "redefinir sua senha."
  334 +
  335 +#~ msgid "Email address:"
  336 +#~ msgstr "Endereço de email: "
  337 +
  338 +#~ msgid "Reset password"
  339 +#~ msgstr "Redefinir senha"
  340 +
  341 +#~ msgid "Your profile has been created!"
  342 +#~ msgstr "Seu perfil foi criado!"
  343 +
  344 +#~ msgid "Your password was changed."
  345 +#~ msgstr "Sua senha foi modificada."
  346 +
  347 +#~ msgid "Your password has been set. You may go ahead and log in now."
  348 +#~ msgstr "Sua senha foi modificada. Você já pode efetuar o login agora."
  349 +
  350 +#~ msgid "Fork me!"
  351 +#~ msgstr "Fork me!"
  352 +
  353 +#~ msgid "Gitlab Group"
  354 +#~ msgstr "Grupo no Gitlab"
  355 +
  356 +#~ msgid "Gitlab Groups"
  357 +#~ msgstr "Grupos no Gitlab"
  358 +
  359 +#~ msgid "Gitlab Merge Request"
  360 +#~ msgstr "Envio de Contribuição no Gitlab"
  361 +
  362 +#~ msgid "Gitlab Issue"
  363 +#~ msgstr "Tíquete no Gitlab"
  364 +
  365 +#~ msgid "Gitlab Comments"
  366 +#~ msgstr "Comentários no Gitlab"
  367 +
  368 +#~ msgid "Community"
  369 +#~ msgstr "Comunidade"
  370 +
  371 +#~ msgid "Article"
  372 +#~ msgstr "Artigo"
  373 +
  374 +#~ msgid "Articles"
  375 +#~ msgstr "Artigos"
  376 +
  377 +#~ msgid "Latest Discussions"
  378 +#~ msgstr "Últimas discussões"
  379 +
  380 +#~ msgid "Discussions Most Relevance"
  381 +#~ msgstr "Discussões Mais Relevantes"
  382 +
  383 +#~ msgid "Latest collaborations"
  384 +#~ msgstr "Últimas colaborações"
  385 +
  386 +#~ msgid "Search"
  387 +#~ msgstr "Busca"
  388 +
  389 +#~ msgid "Type"
  390 +#~ msgstr "Tipo"
  391 +
  392 +#~ msgid "Author"
  393 +#~ msgstr "Autor"
  394 +
  395 +#~ msgid "Modified by"
  396 +#~ msgstr "Modificado por"
  397 +
  398 +#~ msgid "Status"
  399 +#~ msgstr "Status"
  400 +
  401 +#~ msgid "Mailinglist"
  402 +#~ msgstr "Lista de discussão"
  403 +
  404 +#~ msgid "Milestone"
  405 +#~ msgstr "Marco"
  406 +
  407 +#~ msgid "Priority"
  408 +#~ msgstr "Prioridade"
  409 +
  410 +#~ msgid "Component"
  411 +#~ msgstr "Componente"
  412 +
  413 +#~ msgid "Severity"
  414 +#~ msgstr "Severidade"
  415 +
  416 +#~ msgid "Reporter"
  417 +#~ msgstr "Relator"
  418 +
  419 +#~ msgid "Keywords"
  420 +#~ msgstr "Palavras chave"
  421 +
  422 +#~ msgid "Collaborators"
  423 +#~ msgstr "Colaboradores"
  424 +
  425 +#~ msgid "Repository"
  426 +#~ msgstr "Repositório"
  427 +
  428 +#~ msgid "Name"
  429 +#~ msgstr "Nome"
  430 +
  431 +#~ msgid "Institution"
  432 +#~ msgstr "Instituição"
  433 +
  434 +#~ msgid "Role"
  435 +#~ msgstr "Papel"
  436 +
  437 +#~ msgid "Since"
  438 +#~ msgstr "Desde"
  439 +
  440 +#~ msgid "Until"
  441 +#~ msgstr "Até"
  442 +
  443 +#~ msgid "Filename"
  444 +#~ msgstr "Nome do arquivo"
  445 +
  446 +#~ msgid "Used by"
  447 +#~ msgstr "Usado por"
  448 +
  449 +#~ msgid "File type"
  450 +#~ msgstr "Tipo do arquivo"
  451 +
  452 +#~ msgid "Size"
  453 +#~ msgstr "Tamanho"
  454 +
  455 +#~ msgid "Remove filter"
  456 +#~ msgstr "Remover filtro"
  457 +
  458 +#~ msgid "Filter"
  459 +#~ msgstr "Filtro"
  460 +
  461 +#~ msgid "Sort by"
  462 +#~ msgstr "Ordenar por"
  463 +
  464 +#~ msgid "Types"
  465 +#~ msgstr "Tipos"
  466 +
  467 +#~ msgid "Discussion"
  468 +#~ msgstr "Discussão"
  469 +
  470 +#~ msgid "search"
  471 +#~ msgstr "busca"
  472 +
  473 +#~ msgid "documents found"
  474 +#~ msgstr "documentos encontrados"
  475 +
  476 +#~ msgid "Search here"
  477 +#~ msgstr "Pesquise aqui"
  478 +
  479 +#~ msgid "Filters"
  480 +#~ msgstr "Filtros"
  481 +
  482 +#~ msgid "No results for your search."
  483 +#~ msgstr "Não há resultados para sua busca."
  484 +
  485 +#~ msgid "You are searching for"
  486 +#~ msgstr "Você está procurando por"
  487 +
  488 +#~ msgid "English"
  489 +#~ msgstr "Inglês"
  490 +
  491 +#~ msgid "Portuguese"
  492 +#~ msgstr "Português"
  493 +
  494 +#~ msgid "Spanish"
  495 +#~ msgstr "Espanhol"
  496 +
  497 +#~ msgid "Recent activity"
  498 +#~ msgstr "Atividade recente"
  499 +
  500 +#~ msgid "Relevance"
  501 +#~ msgstr "Relevância"
  502 +
  503 +#~ msgid "Document"
  504 +#~ msgstr "Documento"
  505 +
  506 +#~ msgid "Presentation"
  507 +#~ msgstr "Apresentação"
  508 +
  509 +#~ msgid "Text"
  510 +#~ msgstr "Texto"
  511 +
  512 +#~ msgid "Compressed"
  513 +#~ msgstr "Compactado"
  514 +
  515 +#~ msgid "Image"
  516 +#~ msgstr "Imagem"
  517 +
  518 +#~ msgid "Spreadsheet"
  519 +#~ msgstr "Planilha"
  520 +
  521 +#~ msgid "Not found. Keep searching! :)"
  522 +#~ msgstr "Não encontrado. Continue procurando! :)"
  523 +
  524 +#~ msgid "Ooopz... something went wrong!"
  525 +#~ msgstr "Ooopa... algo saiu errado!"
647 526
648 -#: templates/base.html:120 templates/base.html.py:121 templates/header.html:60  
649 -#: templates/header.html.py:61  
650 -msgid "Logout"  
651 -msgstr "Sair" 527 +#~ msgid "Logout"
  528 +#~ msgstr "Sair"
652 529
653 -#: templates/base.html:132 templates/base.html.py:135 templates/header.html:72  
654 -#: templates/header.html.py:75  
655 -msgid "Search here..."  
656 -msgstr "Pesquise aqui..." 530 +#~ msgid "Search here..."
  531 +#~ msgstr "Pesquise aqui..."
657 532
658 -#: templates/base.html:149  
659 -msgid "The login has failed. Please, try again."  
660 -msgstr "O login falhou. Por favor, tente novamente." 533 +#~ msgid "The login has failed. Please, try again."
  534 +#~ msgstr "O login falhou. Por favor, tente novamente."
661 535
662 -#: templates/footer.html:6  
663 -msgid "Last email imported at"  
664 -msgstr "Último email importado em" 536 +#~ msgid "Last email imported at"
  537 +#~ msgstr "Último email importado em"
665 538
666 -#: templates/footer.html:12  
667 -msgid "The contents of this site is published under license"  
668 -msgstr "O conteúdo deste site está publicado sob a licença" 539 +#~ msgid "The contents of this site is published under license"
  540 +#~ msgstr "O conteúdo deste site está publicado sob a licença"
669 541
670 -#: templates/footer.html:15  
671 -msgid "Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual"  
672 -msgstr "Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual" 542 +#~ msgid "Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual"
  543 +#~ msgstr "Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual"
673 544
674 -#: templates/header.html:26  
675 -msgid "Paste"  
676 -msgstr "Cole aqui" 545 +#~ msgid "Paste"
  546 +#~ msgstr "Cole aqui"
677 547
678 -#: templates/home.html:17  
679 -msgid "Latest Collaborations"  
680 -msgstr "Últimas Colaborações" 548 +#~ msgid "Latest Collaborations"
  549 +#~ msgstr "Últimas Colaborações"
681 550
682 -#: templates/home.html:21  
683 -msgid "RSS - Latest collaborations"  
684 -msgstr "RSS - Últimas Colaborações" 551 +#~ msgid "RSS - Latest collaborations"
  552 +#~ msgstr "RSS - Últimas Colaborações"
685 553
686 -#: templates/home.html:30  
687 -msgid "View more collaborations..."  
688 -msgstr "Ver mais colaborações..." 554 +#~ msgid "View more collaborations..."
  555 +#~ msgstr "Ver mais colaborações..."
689 556
690 -#: templates/home.html:37  
691 -msgid "Collaboration Graph"  
692 -msgstr "Gráfico de Colaborações" 557 +#~ msgid "Collaboration Graph"
  558 +#~ msgstr "Gráfico de Colaborações"
693 559
694 -#: templates/home.html:48  
695 -msgid "Most Relevant Threads"  
696 -msgstr "Discussões Mais Relevantes" 560 +#~ msgid "Most Relevant Threads"
  561 +#~ msgstr "Discussões Mais Relevantes"
697 562
698 -#: templates/home.html:52  
699 -msgid "RSS - Most Relevant Threads"  
700 -msgstr "RSS - Discussões Mais Relevantes" 563 +#~ msgid "RSS - Most Relevant Threads"
  564 +#~ msgstr "RSS - Discussões Mais Relevantes"
701 565
702 -#: templates/home.html:60 templates/home.html.py:79  
703 -msgid "View more discussions..."  
704 -msgstr "Ver mais discussões..." 566 +#~ msgid "View more discussions..."
  567 +#~ msgstr "Ver mais discussões..."
705 568
706 -#: templates/home.html:67  
707 -msgid "Latest Threads"  
708 -msgstr "Últimas Discussões" 569 +#~ msgid "Latest Threads"
  570 +#~ msgstr "Últimas Discussões"
709 571
710 -#: templates/home.html:71  
711 -msgid "RSS - Latest Threads"  
712 -msgstr "RSS - Últimas Discussões" 572 +#~ msgid "RSS - Latest Threads"
  573 +#~ msgstr "RSS - Últimas Discussões"
colab/search/templates/dashboard-message-preview.html 0 → 100644
@@ -0,0 +1,3 @@ @@ -0,0 +1,3 @@
  1 +{% load i18n tz highlight search_preview_templates %}
  2 +{% get_dashboard_search_preview_templates result as template_target %}
  3 +{% include template_target %}
colab/search/templates/message-preview.html 0 → 100644
@@ -0,0 +1,3 @@ @@ -0,0 +1,3 @@
  1 +{% load i18n tz highlight search_preview_templates %}
  2 +{% get_search_preview_templates result as template_target %}
  3 +{% include template_target %}
colab/search/templatetags/__init__.py 0 → 100644
colab/search/templatetags/search_preview_templates.py 0 → 100644
@@ -0,0 +1,18 @@ @@ -0,0 +1,18 @@
  1 +from django import template
  2 +
  3 +
  4 +register = template.Library()
  5 +
  6 +
  7 +@register.assignment_tag
  8 +def get_search_preview_templates(model_indexed):
  9 + app_type = model_indexed.type
  10 +
  11 + return "search/{}_search_preview.html".format(app_type)
  12 +
  13 +
  14 +@register.assignment_tag
  15 +def get_dashboard_search_preview_templates(model_indexed):
  16 + app_type = model_indexed.type
  17 +
  18 + return "dashboard/{}_search_preview.html".format(app_type)
colab/search/tests.py
@@ -1,130 +0,0 @@ @@ -1,130 +0,0 @@
1 -# -*- coding:utf-8 -*-  
2 -  
3 -import mock  
4 -  
5 -from colab.plugins.utils import filters_importer  
6 -from django.test import TestCase, Client  
7 -from django.core.management import call_command  
8 -from colab.search.forms import ColabSearchForm  
9 -  
10 -  
11 -class SearchViewTest(TestCase):  
12 -  
13 - fixtures = ['test_data.json']  
14 -  
15 - def setUp(self):  
16 - call_command('rebuild_index', interactive=False, verbosity=0)  
17 - self.client = Client()  
18 -  
19 - def tearDown(self):  
20 - call_command('clear_index', interactive=False, verbosity=0)  
21 -  
22 - def test_search_thread(self):  
23 - request = self.client.get('/search/?q=thread')  
24 - thread_list = request.context['page'].object_list  
25 -  
26 - self.assertEqual(3, len(thread_list))  
27 -  
28 - condition = any('This is a repply to Thread 1 on list A' in  
29 - t.description for t in thread_list)  
30 - self.assertTrue(condition)  
31 - condition = any('This is a repply to Thread 1 on list B' in  
32 - t.description for t in thread_list)  
33 - self.assertTrue(condition)  
34 - condition = any('This is a repply to Thread 1 on list C' in  
35 - t.description for t in thread_list)  
36 - self.assertTrue(condition)  
37 -  
38 - def test_search_account_by_firstName(self):  
39 - request = self.client.get('/search/?q=Chuck')  
40 - user_list = request.context['page'].object_list  
41 -  
42 - self.assertEqual(1, len(user_list))  
43 -  
44 - self.assertIn('chucknorris@mail.com', user_list[0].object.email)  
45 - self.assertIn('Chuck', user_list[0].object.first_name)  
46 - self.assertIn('Norris', user_list[0].object.last_name)  
47 - self.assertIn('chucknorris', user_list[0].object.username)  
48 -  
49 - def test_search_account_by_lastName(self):  
50 - request = self.client.get('/search/?q=Norris')  
51 - user_list = request.context['page'].object_list  
52 -  
53 - self.assertEqual(2, len(user_list))  
54 -  
55 - self.assertIn('heisenberg@mail.com', user_list[1].object.email)  
56 - self.assertIn('Heisenberg', user_list[1].object.first_name)  
57 - self.assertIn('Norris', user_list[1].object.last_name)  
58 - self.assertIn('heisenbergnorris', user_list[1].object.username)  
59 -  
60 - self.assertIn('chucknorris@mail.com', user_list[0].object.email)  
61 - self.assertIn('Chuck', user_list[0].object.first_name)  
62 - self.assertIn('Norris', user_list[0].object.last_name)  
63 - self.assertIn('chucknorris', user_list[0].object.username)  
64 -  
65 - def test_search_plugin_filters(self):  
66 - plugin_filter = {  
67 - 'plugin_name': {  
68 - 'name': 'PluginData',  
69 - 'icon': 'plugin_icon',  
70 - 'fields': (  
71 - ('field_1', 'Field1', ''),  
72 - ('field_2', 'Field2', ''),  
73 - ),  
74 - },  
75 - }  
76 - filters_importer.import_plugin_filters = mock.Mock(  
77 - return_value=plugin_filter)  
78 -  
79 - request = self.client.get('/search/?q=')  
80 -  
81 - value = [('plugin_name', 'PluginData', 'plugin_icon')]  
82 -  
83 - self.assertEqual(request.context['filters_options'], value)  
84 -  
85 - def test_search_dynamic_form_fields(self):  
86 - plugin_filter = {  
87 - 'plugin_name': {  
88 - 'name': 'PluginData',  
89 - 'icon': 'plugin_icon',  
90 - 'fields': (  
91 - ('field_1', 'Field1', ''),  
92 - ('field_2', 'Field2', ''),  
93 - ),  
94 - },  
95 - }  
96 - filters_importer.import_plugin_filters = mock.Mock(  
97 - return_value=plugin_filter)  
98 -  
99 - form = ColabSearchForm()  
100 -  
101 - self.assertIn('field_1', form.fields.keys())  
102 - self.assertIn('field_2', form.fields.keys())  
103 -  
104 - def test_search_multiple_filters(self):  
105 - request = self.client.get('/search/?q=&type=thread+user')  
106 - user_list = request.context['page'].object_list  
107 -  
108 - self.assertEqual(6, len(user_list))  
109 -  
110 - self.assertIn('admin@mail.com', user_list[0].object.email)  
111 - self.assertIn('admin', user_list[0].object.username)  
112 -  
113 - self.assertIn('chucknorris@mail.com', user_list[1].object.email)  
114 - self.assertIn('Chuck', user_list[1].object.first_name)  
115 - self.assertIn('Norris', user_list[1].object.last_name)  
116 - self.assertIn('chucknorris', user_list[1].object.username)  
117 -  
118 - self.assertIn('heisenberg@mail.com', user_list[2].object.email)  
119 - self.assertIn('Heisenberg', user_list[2].object.first_name)  
120 - self.assertIn('Norris', user_list[2].object.last_name)  
121 - self.assertIn('heisenbergnorris', user_list[2].object.username)  
122 -  
123 - self.assertIn('Admin Administrator', user_list[3].author)  
124 - self.assertIn('Response to Thread 1A', user_list[3].title)  
125 -  
126 - self.assertIn('Admin Administrator', user_list[4].author)  
127 - self.assertIn('Message 1 on Thread 1B', user_list[4].title)  
128 -  
129 - self.assertIn('Admin Administrator', user_list[5].author)  
130 - self.assertIn('Message 1 on Thread 1C', user_list[5].title)  
colab/search/tests/__init__.py 0 → 100644
colab/search/tests/test_search_view.py 0 → 100644
@@ -0,0 +1,130 @@ @@ -0,0 +1,130 @@
  1 +# -*- coding:utf-8 -*-
  2 +
  3 +import mock
  4 +
  5 +from colab.plugins.utils import filters_importer
  6 +from django.test import TestCase, Client
  7 +from django.core.management import call_command
  8 +from colab.search.forms import ColabSearchForm
  9 +
  10 +
  11 +class SearchViewTest(TestCase):
  12 +
  13 + fixtures = ['test_data.json']
  14 +
  15 + def setUp(self):
  16 + call_command('rebuild_index', interactive=False, verbosity=0)
  17 + self.client = Client()
  18 +
  19 + def tearDown(self):
  20 + call_command('clear_index', interactive=False, verbosity=0)
  21 +
  22 + def test_search_thread(self):
  23 + request = self.client.get('/search/?q=thread')
  24 + thread_list = request.context['page'].object_list
  25 +
  26 + self.assertEqual(3, len(thread_list))
  27 +
  28 + condition = any('This is a repply to Thread 1 on list A' in
  29 + t.description for t in thread_list)
  30 + self.assertTrue(condition)
  31 + condition = any('This is a repply to Thread 1 on list B' in
  32 + t.description for t in thread_list)
  33 + self.assertTrue(condition)
  34 + condition = any('This is a repply to Thread 1 on list C' in
  35 + t.description for t in thread_list)
  36 + self.assertTrue(condition)
  37 +
  38 + def test_search_account_by_firstName(self):
  39 + request = self.client.get('/search/?q=Chuck')
  40 + user_list = request.context['page'].object_list
  41 +
  42 + self.assertEqual(1, len(user_list))
  43 +
  44 + self.assertIn('chucknorris@mail.com', user_list[0].object.email)
  45 + self.assertIn('Chuck', user_list[0].object.first_name)
  46 + self.assertIn('Norris', user_list[0].object.last_name)
  47 + self.assertIn('chucknorris', user_list[0].object.username)
  48 +
  49 + def test_search_account_by_lastName(self):
  50 + request = self.client.get('/search/?q=Norris')
  51 + user_list = request.context['page'].object_list
  52 +
  53 + self.assertEqual(2, len(user_list))
  54 +
  55 + self.assertIn('heisenberg@mail.com', user_list[1].object.email)
  56 + self.assertIn('Heisenberg', user_list[1].object.first_name)
  57 + self.assertIn('Norris', user_list[1].object.last_name)
  58 + self.assertIn('heisenbergnorris', user_list[1].object.username)
  59 +
  60 + self.assertIn('chucknorris@mail.com', user_list[0].object.email)
  61 + self.assertIn('Chuck', user_list[0].object.first_name)
  62 + self.assertIn('Norris', user_list[0].object.last_name)
  63 + self.assertIn('chucknorris', user_list[0].object.username)
  64 +
  65 + def test_search_plugin_filters(self):
  66 + plugin_filter = {
  67 + 'plugin_name': {
  68 + 'name': 'PluginData',
  69 + 'icon': 'plugin_icon',
  70 + 'fields': (
  71 + ('field_1', 'Field1', ''),
  72 + ('field_2', 'Field2', ''),
  73 + ),
  74 + },
  75 + }
  76 + filters_importer.import_plugin_filters = mock.Mock(
  77 + return_value=plugin_filter)
  78 +
  79 + request = self.client.get('/search/?q=')
  80 +
  81 + value = [('plugin_name', 'PluginData', 'plugin_icon')]
  82 +
  83 + self.assertEqual(request.context['filters_options'], value)
  84 +
  85 + def test_search_dynamic_form_fields(self):
  86 + plugin_filter = {
  87 + 'plugin_name': {
  88 + 'name': 'PluginData',
  89 + 'icon': 'plugin_icon',
  90 + 'fields': (
  91 + ('field_1', 'Field1', ''),
  92 + ('field_2', 'Field2', ''),
  93 + ),
  94 + },
  95 + }
  96 + filters_importer.import_plugin_filters = mock.Mock(
  97 + return_value=plugin_filter)
  98 +
  99 + form = ColabSearchForm()
  100 +
  101 + self.assertIn('field_1', form.fields.keys())
  102 + self.assertIn('field_2', form.fields.keys())
  103 +
  104 + def test_search_multiple_filters(self):
  105 + request = self.client.get('/search/?q=&type=thread+user')
  106 + user_list = request.context['page'].object_list
  107 +
  108 + self.assertEqual(6, len(user_list))
  109 +
  110 + self.assertIn('admin@mail.com', user_list[0].object.email)
  111 + self.assertIn('admin', user_list[0].object.username)
  112 +
  113 + self.assertIn('chucknorris@mail.com', user_list[1].object.email)
  114 + self.assertIn('Chuck', user_list[1].object.first_name)
  115 + self.assertIn('Norris', user_list[1].object.last_name)
  116 + self.assertIn('chucknorris', user_list[1].object.username)
  117 +
  118 + self.assertIn('heisenberg@mail.com', user_list[2].object.email)
  119 + self.assertIn('Heisenberg', user_list[2].object.first_name)
  120 + self.assertIn('Norris', user_list[2].object.last_name)
  121 + self.assertIn('heisenbergnorris', user_list[2].object.username)
  122 +
  123 + self.assertIn('Admin Administrator', user_list[3].author)
  124 + self.assertIn('Response to Thread 1A', user_list[3].title)
  125 +
  126 + self.assertIn('Admin Administrator', user_list[4].author)
  127 + self.assertIn('Message 1 on Thread 1B', user_list[4].title)
  128 +
  129 + self.assertIn('Admin Administrator', user_list[5].author)
  130 + self.assertIn('Message 1 on Thread 1C', user_list[5].title)
colab/search/tests/test_templatetags.py 0 → 100644
@@ -0,0 +1,34 @@ @@ -0,0 +1,34 @@
  1 +# -*- coding:utf-8 -*-
  2 +
  3 +from django.test import TestCase
  4 +from colab.search.templatetags.search_preview_templates import (
  5 + get_search_preview_templates)
  6 +from mock import MagicMock, PropertyMock
  7 +
  8 +
  9 +class SearchTemplateTagsTest(TestCase):
  10 +
  11 + def setUp(self):
  12 + self.model_indexed_mock = MagicMock()
  13 + self.template_path = "{}/{}_search_preview.html"
  14 +
  15 + def set_mock_value(self, value):
  16 + type(self.model_indexed_mock).type = PropertyMock(return_value=value)
  17 +
  18 + def test_get_search_preview_templates_with_user(self):
  19 + self.set_mock_value("user")
  20 + include_path = get_search_preview_templates(self.model_indexed_mock)
  21 + self.assertEqual(include_path, self.template_path.format("search",
  22 + "user"))
  23 +
  24 + def test_get_search_preview_templates_with_thread(self):
  25 + self.set_mock_value("thread")
  26 + include_path = get_search_preview_templates(self.model_indexed_mock)
  27 + self.assertEqual(include_path,
  28 + self.template_path.format("search", "thread"))
  29 +
  30 + def test_get_search_preview_templates_with_plugin(self):
  31 + self.set_mock_value("plugin_model")
  32 + include_path = get_search_preview_templates(self.model_indexed_mock)
  33 + self.assertEqual(include_path,
  34 + self.template_path.format("search", "plugin_model"))
colab/super_archives/templates/dashboard/thread_search_preview.html 0 → 100644
@@ -0,0 +1,69 @@ @@ -0,0 +1,69 @@
  1 +{% load i18n tz highlight %}
  2 +
  3 +<li class="preview-message">
  4 +<span class="glyphicon glyphicon-{{ result.icon_name }}" title="{{ result.type }}"></span>
  5 +
  6 +{% if result.tag %}
  7 +<a href="{% firstof result.mailinglist_url result.mailinglist.get_absolute_url result.url %}">
  8 + <span class="label label-primary">{{ result.tag }}</span>
  9 +</a>
  10 +{% endif %}
  11 +
  12 +{% if result.title %}
  13 + <a href="{{ result.url }}{% if result.type == 'thread' and result.latest_message_pk %}#msg-{{ result.latest_message_pk }}{% elif result.type == 'thread' and result.pk %}#msg-{{ result.pk }}{% endif %}" {% if result.latest_description %}title="{{ result.latest_description|escape|truncatechars:150 }}"{% elif result.description %}title="{{ result.description|escape|truncatechars:150 }}"{% endif %}>
  14 + <span class="subject">
  15 + <!-- a striptags filter was raising an error here because using with highlight -->
  16 + {% if query %}
  17 + {% highlight result.title with query max_length "1000" %}
  18 + {% else %}
  19 + {{ result.title }}
  20 + {% endif %}
  21 + </span>
  22 + </a>
  23 +{% endif %}
  24 +
  25 +{% if result.description %}
  26 + <!-- a striptags filter was raising an error here because using with highlight -->
  27 + <span class="quiet">- {% if query %}
  28 + {% highlight result.description with query max_length "150" %}
  29 + {% else %}
  30 + {% if result.latest_description %}
  31 + {{ result.latest_description|striptags|escape|truncatechars:150 }}
  32 + {% elif result.description %}
  33 + {{ result.description|striptags|escape|truncatechars:150 }}
  34 + {% endif %}
  35 + {% endif %}
  36 + </span>
  37 +{% endif %}
  38 +
  39 +{% if result.fullname or result.modified or result.modified_by %}
  40 + <div class="quiet">
  41 + {% if result.modified_by %}
  42 + <span class="pull-left">{% trans "by" %}
  43 + {% if result.modified_by_url %}
  44 + <a href="{{ result.modified_by_url }}">
  45 + {% else %}
  46 + <span>
  47 + {% endif %}
  48 +
  49 + {% if query %}
  50 + {% highlight result.modified_by with query %}
  51 + {% else %}
  52 + {{ result.modified_by }}
  53 + {% endif %}
  54 +
  55 + {% if result.modified_by_url %}
  56 + </a>
  57 + {% else %}
  58 + </span>
  59 + {% endif %}
  60 + </span>
  61 + {% else %}
  62 + <span class="pull-left">{% trans "by" %} {% trans "Anonymous" %}</span>
  63 + {% endif %}
  64 + {% if result.modified %}
  65 + <span class="pull-right">{{ result.modified|localtime|timesince }} {% trans "ago" %}</span>
  66 + {% endif %}
  67 + </div>
  68 +{% endif %}
  69 +</li>
0 \ No newline at end of file 70 \ No newline at end of file
colab/super_archives/templates/message-preview.html
@@ -1,69 +0,0 @@ @@ -1,69 +0,0 @@
1 -{% load i18n tz highlight %}  
2 -  
3 -<li class="preview-message">  
4 -<span class="glyphicon glyphicon-{{ result.icon_name }}" title="{{ result.type }}"></span>  
5 -  
6 -{% if result.tag %}  
7 -<a href="{% firstof result.mailinglist_url result.mailinglist.get_absolute_url result.url %}">  
8 - <span class="label label-primary">{{ result.tag }}</span>  
9 -</a>  
10 -{% endif %}  
11 -  
12 -{% if result.title %}  
13 - <a href="{{ result.url }}{% if result.type == 'thread' and result.latest_message_pk %}#msg-{{ result.latest_message_pk }}{% elif result.type == 'thread' and result.pk %}#msg-{{ result.pk }}{% endif %}" {% if result.latest_description %}title="{{ result.latest_description|escape|truncatechars:150 }}"{% elif result.description %}title="{{ result.description|escape|truncatechars:150 }}"{% endif %}>  
14 - <span class="subject">  
15 - <!-- a striptags filter was raising an error here because using with highlight -->  
16 - {% if query %}  
17 - {% highlight result.title with query max_length "1000" %}  
18 - {% else %}  
19 - {{ result.title }}  
20 - {% endif %}  
21 - </span>  
22 - </a>  
23 -{% endif %}  
24 -  
25 -{% if result.description %}  
26 - <!-- a striptags filter was raising an error here because using with highlight -->  
27 - <span class="quiet">- {% if query %}  
28 - {% highlight result.description with query max_length "150" %}  
29 - {% else %}  
30 - {% if result.latest_description %}  
31 - {{ result.latest_description|striptags|escape|truncatechars:150 }}  
32 - {% elif result.description %}  
33 - {{ result.description|striptags|escape|truncatechars:150 }}  
34 - {% endif %}  
35 - {% endif %}  
36 - </span>  
37 -{% endif %}  
38 -  
39 -{% if result.fullname or result.modified or result.modified_by %}  
40 - <div class="quiet">  
41 - {% if result.modified_by %}  
42 - <span class="pull-left">{% trans "by" %}  
43 - {% if result.modified_by_url %}  
44 - <a href="{{ result.modified_by_url }}">  
45 - {% else %}  
46 - <span>  
47 - {% endif %}  
48 -  
49 - {% if query %}  
50 - {% highlight result.modified_by with query %}  
51 - {% else %}  
52 - {{ result.modified_by }}  
53 - {% endif %}  
54 -  
55 - {% if result.modified_by_url %}  
56 - </a>  
57 - {% else %}  
58 - </span>  
59 - {% endif %}  
60 - </span>  
61 - {% else %}  
62 - <span class="pull-left">{% trans "by" %} {% trans "Anonymous" %}</span>  
63 - {% endif %}  
64 - {% if result.modified %}  
65 - <span class="pull-right">{{ result.modified|localtime|timesince }} {% trans "ago" %}</span>  
66 - {% endif %}  
67 - </div>  
68 -{% endif %}  
69 -</li>  
colab/super_archives/templates/search/thread_search_preview.html 0 → 100644
@@ -0,0 +1,13 @@ @@ -0,0 +1,13 @@
  1 +{% load i18n tz highlight date_format %}
  2 +
  3 +<div class="row">
  4 + <div class="col-md-12">
  5 + <small>{% datetime_format result.modified %} - <a href="{{result.modified_by_url}}">{{ result.modified_by }}</a></small><br>
  6 + <h4><a href="{{result.url}}">{{ result.title }}</a></h4>
  7 + {% with result.latest_description|truncatewords:"85" as description %}
  8 + {{description | default_if_none:"a"}}<br>
  9 + {% endwith %}
  10 + <small>{% trans "Registred in" %}: <strong>{% trans "Discussion" %}</strong></small>
  11 + </div>
  12 + <hr>
  13 +</div>
colab/templates/home.html
@@ -22,7 +22,7 @@ @@ -22,7 +22,7 @@
22 </a> 22 </a>
23 <ul class="message-list"> 23 <ul class="message-list">
24 {% for result in latest_results %} 24 {% for result in latest_results %}
25 - {% include "message-preview.html" %} 25 + {% include "dashboard-message-preview.html" %}
26 {% endfor %} 26 {% endfor %}
27 </ul> 27 </ul>
28 <a class="column-align" 28 <a class="column-align"
@@ -53,7 +53,7 @@ @@ -53,7 +53,7 @@
53 </a> 53 </a>
54 <ul class="message-list"> 54 <ul class="message-list">
55 {% for thread in hottest_threads %} 55 {% for thread in hottest_threads %}
56 - {% include "message-preview.html" with result=thread %} 56 + {% include "dashboard-message-preview.html" with result=thread %}
57 {% endfor %} 57 {% endfor %}
58 </ul> 58 </ul>
59 <a href="{% url 'haystack_search' %}?type=thread"> 59 <a href="{% url 'haystack_search' %}?type=thread">
@@ -72,7 +72,7 @@ @@ -72,7 +72,7 @@
72 </a> 72 </a>
73 <ul class="message-list"> 73 <ul class="message-list">
74 {% for thread in latest_threads %} 74 {% for thread in latest_threads %}
75 - {% include "message-preview.html" with result=thread.latest_message %} 75 + {% include "dashboard-message-preview.html" with result=thread.latest_message %}
76 {% endfor %} 76 {% endfor %}
77 </ul> 77 </ul>
78 <a href="{% url 'haystack_search' %}?type=thread&amp;order=latest"> 78 <a href="{% url 'haystack_search' %}?type=thread&amp;order=latest">