Compare View
Commits (27)
-
Signed-off-by: Sergio Oliveira <sergio@tracy.com.br>
-
Would be nice that `private_token` gets deprecated and that the plugins to use it through the . Signed off by: Diego Araújo <diegoamc90@gmail.com>
-
Plugin extra configurations
-
Signed-off-by: Sergio Oliveira <sergio@tracy.com.br>
-
Signed-off-by: Sergio Oliveira <sergio@tracy.com.br>
-
Update development environment stuff in README
-
Signed-off-by: Carlos Oliveira <carlospecter@gmail.com> Signed-off-by: Peter Lima <peterlima@gmail.com>
-
Cleaned up HTML and extracted header
-
Signed-off-by: Carlos Oliveira <carlospecter@gmail.com>
-
Add requests as dep in setup.py
-
Signed-off-by: Sérgio Oliveira <sergio@tracy.com.br>
-
Signed-off-by: Sergio Oliveira <sergio@tracy.com.br>
-
Signed-off-by: Sergio Oliveira <sergio@tracy.com.br> Signed-off-by: Lucas Kanashiro <kanashiro.duarte@gmail.com>
-
Signed-off-by: Macartur Sousa <macartur.sc@gmail.com> Signed-off-by: Matheus Fernandes <matheus.souza.fernandes@gmail.com>
-
Signed-off-by: Lucas Kanashiro <kanashiro.duarte@gmail.com> Signed-off-by: Lucas Moura <lucas.moura128@gmail.com>
-
Update translations
-
Signed-off-by: Charles Oliveira <18oliveira.charles@gmail.com> Signed-off-by: Gustavo Jaruga <darksshades@gmail.com>
Showing
38 changed files
Show diff stats
README.rst
| @@ -50,8 +50,18 @@ First install the dependencies and than the project it self: | @@ -50,8 +50,18 @@ First install the dependencies and than the project it self: | ||
| 50 | 50 | ||
| 51 | .. code-block:: | 51 | .. code-block:: |
| 52 | 52 | ||
| 53 | - pip install -r requirements.txt | ||
| 54 | - pip install . | 53 | + pip install -e . |
| 54 | + | ||
| 55 | +Development environment | ||
| 56 | +----------------------- | ||
| 57 | + | ||
| 58 | +You must install vagrant to set up the development environment. With vagrant available you should run: | ||
| 59 | + | ||
| 60 | +.. code-block:: | ||
| 61 | + | ||
| 62 | + vagrant up | ||
| 63 | + | ||
| 64 | +During the process you should choose the vagrant box that you want to use. In the end you should have a virtual machine with development environment set up. | ||
| 55 | 65 | ||
| 56 | 66 | ||
| 57 | 67 | ||
| @@ -60,13 +70,17 @@ Running Colab | @@ -60,13 +70,17 @@ Running Colab | ||
| 60 | 70 | ||
| 61 | To run Colab with development server you will have to: | 71 | To run Colab with development server you will have to: |
| 62 | 72 | ||
| 63 | -1- Create the example configuration file: | 73 | +1- Log in virtual machine: |
| 64 | 74 | ||
| 65 | .. code-block:: | 75 | .. code-block:: |
| 66 | 76 | ||
| 67 | - colab-admin initconfig > /etc/colab/settings.py | 77 | + vagrant ssh |
| 68 | 78 | ||
| 69 | -2- Edit the configuration file. Make sure you set everything you need including **database** credentials. | 79 | +2- Use colab virtualenv: |
| 80 | + | ||
| 81 | +.. code-block:: | ||
| 82 | + | ||
| 83 | + workon colab | ||
| 70 | 84 | ||
| 71 | 3- Run the development server: | 85 | 3- Run the development server: |
| 72 | 86 | ||
| @@ -74,6 +88,7 @@ To run Colab with development server you will have to: | @@ -74,6 +88,7 @@ To run Colab with development server you will have to: | ||
| 74 | 88 | ||
| 75 | colab-admin runserver 0.0.0.0:8000 | 89 | colab-admin runserver 0.0.0.0:8000 |
| 76 | 90 | ||
| 91 | +Now you can access colab in your browser via http://localhost:8000 | ||
| 77 | 92 | ||
| 78 | **NOTE**: In case you want to keep the configuration file else where just set the | 93 | **NOTE**: In case you want to keep the configuration file else where just set the |
| 79 | desired location in environment variable **COLAB_SETTINGS**. | 94 | desired location in environment variable **COLAB_SETTINGS**. |
| @@ -84,12 +99,33 @@ About test | @@ -84,12 +99,33 @@ About test | ||
| 84 | How to write a test | 99 | How to write a test |
| 85 | -------------------- | 100 | -------------------- |
| 86 | Inside of each folder on /vagrant/colab/<folder> you can create a folder called | 101 | Inside of each folder on /vagrant/colab/<folder> you can create a folder called |
| 87 | -"tests", and inside of it implements the code for test each file. | 102 | +"tests" and inside of it implements the code for test each file. Remember that you should create __init__.py file. |
| 88 | 103 | ||
| 89 | How to run the tests | 104 | How to run the tests |
| 90 | -------------------- | 105 | -------------------- |
| 91 | 106 | ||
| 92 | Follow the steps below: | 107 | Follow the steps below: |
| 93 | 108 | ||
| 94 | -* Go to vagrant/colab/ | ||
| 95 | -* run: ./runtests.sh | 109 | +1- Log in virtual machine: |
| 110 | + | ||
| 111 | +.. code-block:: | ||
| 112 | + | ||
| 113 | + vagrant ssh | ||
| 114 | + | ||
| 115 | +2- Use colab virtualenv: | ||
| 116 | + | ||
| 117 | +.. code-block:: | ||
| 118 | + | ||
| 119 | + workon colab | ||
| 120 | + | ||
| 121 | +3- Enter into colab source code directory: | ||
| 122 | + | ||
| 123 | +.. code-block:: | ||
| 124 | + | ||
| 125 | + cd /vagrant | ||
| 126 | + | ||
| 127 | +4- Run tests with setup.py: | ||
| 128 | + | ||
| 129 | +.. code-block:: | ||
| 130 | + | ||
| 131 | + python setup.py test |
colab/accounts/forms.py
| @@ -237,6 +237,7 @@ class UserChangeForm(forms.ModelForm): | @@ -237,6 +237,7 @@ class UserChangeForm(forms.ModelForm): | ||
| 237 | help_text=_("Required. 30 characters or fewer. Letters and digits."), | 237 | help_text=_("Required. 30 characters or fewer. Letters and digits."), |
| 238 | error_messages={ | 238 | error_messages={ |
| 239 | 'invalid': _("This value may contain only letters and numbers.")}) | 239 | 'invalid': _("This value may contain only letters and numbers.")}) |
| 240 | + # TODO: remove this hardcoded URL from here | ||
| 240 | password = ReadOnlyPasswordHashField(label=_("Password"), | 241 | password = ReadOnlyPasswordHashField(label=_("Password"), |
| 241 | help_text=_("Raw passwords are not" | 242 | help_text=_("Raw passwords are not" |
| 242 | " stored, so there is no" | 243 | " stored, so there is no" |
colab/accounts/templates/accounts/user_update_form.html
| 1 | {% extends "base.html" %} | 1 | {% extends "base.html" %} |
| 2 | -{% load i18n gravatar %} | 2 | +{% load i18n gravatar plugins %} |
| 3 | 3 | ||
| 4 | {% block head_js %} | 4 | {% block head_js %} |
| 5 | <script> | 5 | <script> |
| @@ -102,6 +102,14 @@ $(function() { | @@ -102,6 +102,14 @@ $(function() { | ||
| 102 | </script> | 102 | </script> |
| 103 | {% endblock %} | 103 | {% endblock %} |
| 104 | 104 | ||
| 105 | +{% block head %} | ||
| 106 | + {{ block.super }} | ||
| 107 | + | ||
| 108 | + {% for widget in widgets %} | ||
| 109 | + {{ widget.get_header }} | ||
| 110 | + {% endfor %} | ||
| 111 | + | ||
| 112 | +{% endblock %} | ||
| 105 | 113 | ||
| 106 | {% block main-content %} | 114 | {% block main-content %} |
| 107 | 115 | ||
| @@ -118,83 +126,115 @@ $(function() { | @@ -118,83 +126,115 @@ $(function() { | ||
| 118 | <br> | 126 | <br> |
| 119 | <br> | 127 | <br> |
| 120 | 128 | ||
| 121 | - <form method="post"> | ||
| 122 | - {% csrf_token %} | ||
| 123 | - | ||
| 124 | - <div class="row"> | ||
| 125 | - <div class="col-lg-8 col-md-7 col-sm-12 col-xm-12"> | ||
| 126 | - {% for field in form %} | ||
| 127 | - <div class="col-lg-6 col-md-6 col-sm-12 col-xm-12"> | ||
| 128 | - <div class="form-group{% if field.field.required %} required{% endif %}{% if field.errors %} alert alert-danger has-error{% endif %}"> | ||
| 129 | - <label for="{{ field.name }}" class="control-label"> | ||
| 130 | - {{ field.label }} | ||
| 131 | - </label> | ||
| 132 | - {{ field }} | ||
| 133 | - {{ field.errors }} | ||
| 134 | - </div> | ||
| 135 | - </div> | ||
| 136 | - {% endfor %} | ||
| 137 | - </div> | 129 | + <!-- Start of navs --> |
| 130 | + <ul class="nav nav-tabs"> | ||
| 131 | + <li class="active"><a data-toggle="pill" href="#profile">Profile</a></li> | ||
| 132 | + {% for widget in widgets %} | ||
| 133 | + <li> | ||
| 134 | + <a data-toggle="pill" href="#{{ widget.identifier }}">{{ widget.name }}</a> | ||
| 135 | + </li> | ||
| 136 | + {% endfor %} | ||
| 137 | + </ul> | ||
| 138 | + <!-- End of navs --> | ||
| 139 | + <style type="text/css"> | ||
| 140 | + .tab-pane{ | ||
| 141 | + border: 1px solid #DDD; | ||
| 142 | + border-top: none; | ||
| 143 | + padding: 10px; | ||
| 144 | + } | ||
| 138 | 145 | ||
| 139 | - <div class="col-lg-4 col-md-5 col-sm-12 col-xm-12"> | ||
| 140 | - <div class="panel panel-default"> | ||
| 141 | - <div class="panel-heading"> | ||
| 142 | - <h3 class="panel-title">{% trans "Emails" %}</h3> | ||
| 143 | - </div> | ||
| 144 | - <div class="panel-body"> | ||
| 145 | - <ul class="unstyled-list emails"> | ||
| 146 | - {% for email in user_.emails.iterator %} | ||
| 147 | - <li> | ||
| 148 | - {% gravatar user_.email 30 %} | ||
| 149 | - <span class="email-address">{{ email.address }}</span> | ||
| 150 | - {% if email.address == user_.email %} | ||
| 151 | - <span class="label label-success">{% trans "Primary" %}</span> | ||
| 152 | - {% else %} | ||
| 153 | - <div class="text-right"> | ||
| 154 | - <button class="btn btn-default set-primary" data-loading-text="{% trans 'Setting...' %}">{% trans "Set as Primary" %}</button> | ||
| 155 | - <button class="btn btn-danger delete-email" data-loading-text="{% trans 'Deleting...' %}">{% trans "Delete" %}</button> | ||
| 156 | - </div> | ||
| 157 | - {% endif %} | ||
| 158 | - <hr /> | ||
| 159 | - </li> | 146 | + .nav-tabs a:focus { |
| 147 | + outline: none; | ||
| 148 | + } | ||
| 149 | + </style> | ||
| 150 | + <div class="tab-content"> | ||
| 151 | + <div id="profile" class="tab-pane fade in active"> | ||
| 152 | + <form method="post"> | ||
| 153 | + {% csrf_token %} | ||
| 154 | + | ||
| 155 | + <div class="row"> | ||
| 156 | + <div class="col-lg-8 col-md-7 col-sm-12 col-xm-12"> | ||
| 157 | + {% for field in form %} | ||
| 158 | + <div class="col-lg-6 col-md-6 col-sm-12 col-xm-12"> | ||
| 159 | + <div class="form-group{% if field.field.required %} required{% endif %}{% if field.errors %} alert alert-danger has-error{% endif %}"> | ||
| 160 | + <label for="{{ field.name }}" class="control-label"> | ||
| 161 | + {{ field.label }} | ||
| 162 | + </label> | ||
| 163 | + {{ field }} | ||
| 164 | + {{ field.errors }} | ||
| 165 | + </div> | ||
| 166 | + </div> | ||
| 160 | {% endfor %} | 167 | {% endfor %} |
| 161 | - {% for email in user_.emails_not_validated.iterator %} | ||
| 162 | - <li> | ||
| 163 | - {% gravatar user_.email 30 %} | ||
| 164 | - <span class="email-address">{{ email.address }}</span> | ||
| 165 | - <div class="text-right"> | ||
| 166 | - <button class="btn btn-default verify-email" data-loading-text="{% trans 'Sending verification...' %}"><span class="icon-warning-sign"></span> {% trans "Verify" %}</button> | ||
| 167 | - <button class="btn btn-danger delete-email">{% trans "Delete" %}</button> | 168 | + </div> |
| 169 | + | ||
| 170 | + <div class="col-lg-4 col-md-5 col-sm-12 col-xm-12"> | ||
| 171 | + <div class="panel panel-default"> | ||
| 172 | + <div class="panel-heading"> | ||
| 173 | + <h3 class="panel-title">{% trans "Emails" %}</h3> | ||
| 174 | + </div> | ||
| 175 | + <div class="panel-body"> | ||
| 176 | + <ul class="unstyled-list emails"> | ||
| 177 | + {% for email in user_.emails.iterator %} | ||
| 178 | + <li> | ||
| 179 | + {% gravatar user_.email 30 %} | ||
| 180 | + <span class="email-address">{{ email.address }}</span> | ||
| 181 | + {% if email.address == user_.email %} | ||
| 182 | + <span class="label label-success">{% trans "Primary" %}</span> | ||
| 183 | + {% else %} | ||
| 184 | + <div class="text-right"> | ||
| 185 | + <button class="btn btn-default set-primary" data-loading-text="{% trans 'Setting...' %}">{% trans "Set as Primary" %}</button> | ||
| 186 | + <button class="btn btn-danger delete-email" data-loading-text="{% trans 'Deleting...' %}">{% trans "Delete" %}</button> | ||
| 187 | + </div> | ||
| 188 | + {% endif %} | ||
| 189 | + <hr /> | ||
| 190 | + </li> | ||
| 191 | + {% endfor %} | ||
| 192 | + {% for email in user_.emails_not_validated.iterator %} | ||
| 193 | + <li> | ||
| 194 | + {% gravatar user_.email 30 %} | ||
| 195 | + <span class="email-address">{{ email.address }}</span> | ||
| 196 | + <div class="text-right"> | ||
| 197 | + <button class="btn btn-default verify-email" data-loading-text="{% trans 'Sending verification...' %}"><span class="icon-warning-sign"></span> {% trans "Verify" %}</button> | ||
| 198 | + <button class="btn btn-danger delete-email">{% trans "Delete" %}</button> | ||
| 199 | + </div> | ||
| 200 | + <hr /> | ||
| 201 | + </li> | ||
| 202 | + {% endfor %} | ||
| 203 | + </ul> | ||
| 204 | + <div class="form-group"> | ||
| 205 | + <label for="new_email">{% trans "Add another email address:" %}</label> | ||
| 206 | + <input id="new_email" name="new_email" class="form-control" autocomplete="off" /> | ||
| 168 | </div> | 207 | </div> |
| 169 | - <hr /> | ||
| 170 | - </li> | ||
| 171 | - {% endfor %} | ||
| 172 | - </ul> | ||
| 173 | - <div class="form-group"> | ||
| 174 | - <label for="new_email">{% trans "Add another email address:" %}</label> | ||
| 175 | - <input id="new_email" name="new_email" class="form-control" autocomplete="off" /> | 208 | + <button class="btn btn-primary pull-right" id="add-email">{% trans "Add" %}</button> |
| 209 | + </div> | ||
| 176 | </div> | 210 | </div> |
| 177 | - <button class="btn btn-primary pull-right" id="add-email">{% trans "Add" %}</button> | ||
| 178 | </div> | 211 | </div> |
| 179 | - </div> | ||
| 180 | - </div> | ||
| 181 | - <div class="col-lg-4 col-md-5 col-sm-12 col-xm-12"> | ||
| 182 | - <div class="panel panel-default"> | ||
| 183 | - <div class="panel-heading"> | ||
| 184 | - <h3 class="panel-title"> | ||
| 185 | - {% trans 'Change Password' %} | ||
| 186 | - </h3> | 212 | + <div class="col-lg-4 col-md-5 col-sm-12 col-xm-12"> |
| 213 | + <div class="panel panel-default"> | ||
| 214 | + <div class="panel-heading"> | ||
| 215 | + <h3 class="panel-title"> | ||
| 216 | + {% trans 'Change Password' %} | ||
| 217 | + </h3> | ||
| 218 | + </div> | ||
| 219 | + <div class="panel-body"> | ||
| 220 | + <a href="{% url 'password_change' %}" class="btn btn-default btn-primary pull-right btn-block">{% trans "Change Password" %}</a> | ||
| 221 | + </div> | ||
| 222 | + </div> | ||
| 187 | </div> | 223 | </div> |
| 188 | - <div class="panel-body"> | ||
| 189 | - <a href="{% url 'password_change' %}" class="btn btn-default btn-primary pull-right btn-block">{% trans "Change Password" %}</a> | 224 | + </div> |
| 225 | + <div class="row"> | ||
| 226 | + <div class="submit"> | ||
| 227 | + <button type="submit" class="btn btn-primary btn-lg btn-block">{% trans "Update" %}</button> | ||
| 190 | </div> | 228 | </div> |
| 191 | </div> | 229 | </div> |
| 192 | - </div> | 230 | + </form> |
| 193 | </div> | 231 | </div> |
| 194 | - <div class="row"> | ||
| 195 | - <div class="submit"> | ||
| 196 | - <button type="submit" class="btn btn-primary btn-lg btn-block">{% trans "Update" %}</button> | 232 | + {% for widget in widgets %} |
| 233 | + <div id="{{ widget.identifier }}" class="tab-pane fade"> | ||
| 234 | + <h2>{{ widget.name }}</h2> | ||
| 235 | + {{ widget.get_body }} | ||
| 197 | </div> | 236 | </div> |
| 198 | - </div> | ||
| 199 | - </form> | 237 | + {% endfor %} |
| 238 | + </div> | ||
| 239 | + | ||
| 200 | {% endblock %} | 240 | {% endblock %} |
colab/accounts/views.py
| @@ -15,6 +15,7 @@ from colab.super_archives.models import (EmailAddress, | @@ -15,6 +15,7 @@ from colab.super_archives.models import (EmailAddress, | ||
| 15 | EmailAddressValidation) | 15 | EmailAddressValidation) |
| 16 | from colab.search.utils import get_collaboration_data, get_visible_threads | 16 | from colab.search.utils import get_collaboration_data, get_visible_threads |
| 17 | from colab.accounts.models import User | 17 | from colab.accounts.models import User |
| 18 | +from colab.widgets.widget_manager import WidgetManager | ||
| 18 | 19 | ||
| 19 | from .forms import (UserCreationForm, ListsForm, UserUpdateForm) | 20 | from .forms import (UserCreationForm, ListsForm, UserUpdateForm) |
| 20 | from .utils import mailman | 21 | from .utils import mailman |
| @@ -42,6 +43,12 @@ class UserProfileUpdateView(UserProfileBaseMixin, UpdateView): | @@ -42,6 +43,12 @@ class UserProfileUpdateView(UserProfileBaseMixin, UpdateView): | ||
| 42 | 43 | ||
| 43 | return obj | 44 | return obj |
| 44 | 45 | ||
| 46 | + def get_context_data(self, **kwargs): | ||
| 47 | + context = {} | ||
| 48 | + context['widgets'] = WidgetManager.get_widgets('profile', self.request) | ||
| 49 | + context.update(kwargs) | ||
| 50 | + return super(UserProfileUpdateView, self).get_context_data(**context) | ||
| 51 | + | ||
| 45 | 52 | ||
| 46 | class UserProfileDetailView(UserProfileBaseMixin, DetailView): | 53 | class UserProfileDetailView(UserProfileBaseMixin, DetailView): |
| 47 | template_name = 'accounts/user_detail.html' | 54 | template_name = 'accounts/user_detail.html' |
colab/locale/en/LC_MESSAGES/django.mo
No preview for this file type
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 | -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. | ||
| 5 | -# | ||
| 6 | -#, fuzzy | 4 | +# |
| 5 | +# Translators: | ||
| 7 | msgid "" | 6 | msgid "" |
| 8 | msgstr "" | 7 | msgstr "" |
| 9 | -"Project-Id-Version: PACKAGE VERSION\n" | 8 | +"Project-Id-Version: colab\n" |
| 10 | "Report-Msgid-Bugs-To: \n" | 9 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2014-11-21 17:05+0000\n" | ||
| 12 | -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" | ||
| 13 | -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" | ||
| 14 | -"Language-Team: LANGUAGE <LL@li.org>\n" | ||
| 15 | -"Language: \n" | 10 | +"POT-Creation-Date: 2015-09-01 13:15+0000\n" |
| 11 | +"PO-Revision-Date: 2015-09-04 19:21+0000\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" | ||
| 16 | "MIME-Version: 1.0\n" | 14 | "MIME-Version: 1.0\n" |
| 17 | "Content-Type: text/plain; charset=UTF-8\n" | 15 | "Content-Type: text/plain; charset=UTF-8\n" |
| 18 | "Content-Transfer-Encoding: 8bit\n" | 16 | "Content-Transfer-Encoding: 8bit\n" |
| 17 | +"Language: en\n" | ||
| 18 | +"Plural-Forms: nplurals=2; plural=(n != 1);\n" | ||
| 19 | 19 | ||
| 20 | -#: accounts/admin.py:40 | 20 | +#: accounts/admin.py:18 |
| 21 | msgid "Personal info" | 21 | msgid "Personal info" |
| 22 | -msgstr "" | 22 | +msgstr "Personal info" |
| 23 | 23 | ||
| 24 | -#: accounts/admin.py:43 | 24 | +#: accounts/admin.py:24 |
| 25 | msgid "Permissions" | 25 | msgid "Permissions" |
| 26 | -msgstr "" | 26 | +msgstr "Permissions" |
| 27 | 27 | ||
| 28 | -#: accounts/admin.py:45 | 28 | +#: accounts/admin.py:28 |
| 29 | msgid "Important dates" | 29 | msgid "Important dates" |
| 30 | -msgstr "" | 30 | +msgstr "Important dates" |
| 31 | 31 | ||
| 32 | -#: accounts/forms.py:25 | 32 | +#: accounts/forms.py:37 |
| 33 | msgid "Social account does not exist" | 33 | msgid "Social account does not exist" |
| 34 | -msgstr "" | 34 | +msgstr "Social account does not exist" |
| 35 | 35 | ||
| 36 | -#: accounts/forms.py:61 accounts/templates/accounts/user_detail.html:38 | 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." | ||
| 39 | + | ||
| 40 | +#: accounts/forms.py:118 accounts/templates/accounts/user_detail.html:38 | ||
| 37 | msgid "Bio" | 41 | msgid "Bio" |
| 38 | -msgstr "" | 42 | +msgstr "Bio" |
| 39 | 43 | ||
| 40 | -#: accounts/forms.py:62 | 44 | +#: accounts/forms.py:119 |
| 41 | msgid "Write something about you in 200 characters or less." | 45 | msgid "Write something about you in 200 characters or less." |
| 42 | -msgstr "" | 46 | +msgstr "Write something about you in 200 characters or less." |
| 43 | 47 | ||
| 44 | -#: accounts/forms.py:81 | 48 | +#: accounts/forms.py:148 |
| 45 | msgid "Mailing lists" | 49 | msgid "Mailing lists" |
| 46 | -msgstr "" | 50 | +msgstr "Mailing lists" |
| 51 | + | ||
| 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>" | ||
| 56 | + | ||
| 57 | +#: accounts/forms.py:163 | ||
| 58 | +msgid "A user with that username already exists." | ||
| 59 | +msgstr "A user with that username already exists." | ||
| 60 | + | ||
| 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." | ||
| 64 | + | ||
| 65 | +#: accounts/forms.py:166 accounts/forms.py:236 search/forms.py:38 | ||
| 66 | +msgid "Username" | ||
| 67 | +msgstr "Username" | ||
| 47 | 68 | ||
| 48 | -#: accounts/forms.py:88 | 69 | +#: accounts/forms.py:173 accounts/forms.py:240 accounts/forms.py:277 |
| 70 | +#: accounts/forms.py:467 | ||
| 49 | msgid "Password" | 71 | msgid "Password" |
| 50 | -msgstr "" | 72 | +msgstr "Password" |
| 51 | 73 | ||
| 52 | -#: accounts/forms.py:90 | 74 | +#: accounts/forms.py:175 |
| 53 | msgid "Password confirmation" | 75 | msgid "Password confirmation" |
| 54 | -msgstr "" | 76 | +msgstr "Password confirmation" |
| 55 | 77 | ||
| 56 | -#: accounts/forms.py:92 | ||
| 57 | -msgid "Enter the same password as above, for verification." | ||
| 58 | -msgstr "" | 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." | ||
| 59 | 81 | ||
| 60 | -#: accounts/forms.py:110 | ||
| 61 | -msgid "Password mismatch" | ||
| 62 | -msgstr "" | 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." | ||
| 85 | + | ||
| 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>." | ||
| 63 | 92 | ||
| 64 | -#: accounts/management/commands/delete_invalid.py:42 | 93 | +#: accounts/forms.py:280 |
| 65 | #, python-format | 94 | #, python-format |
| 66 | -msgid "%(count)s users deleted." | ||
| 67 | -msgstr "" | 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." | ||
| 68 | 99 | ||
| 69 | -#: accounts/models.py:65 | ||
| 70 | -msgid "Required. 30 characters or fewer. Letters, digits and ./+/-/_ only." | ||
| 71 | -msgstr "" | 100 | +#: accounts/forms.py:282 |
| 101 | +msgid "This account is inactive." | ||
| 102 | +msgstr "This account is inactive." | ||
| 72 | 103 | ||
| 73 | -#: accounts/models.py:70 | ||
| 74 | -msgid "Enter a valid username." | ||
| 75 | -msgstr "" | 104 | +#: accounts/forms.py:345 |
| 105 | +msgid "Email" | ||
| 106 | +msgstr "Email" | ||
| 76 | 107 | ||
| 77 | -#: accounts/templates/accounts/change_password.html:8 | ||
| 78 | -msgid "Change XMPP Client and SVN Password" | ||
| 79 | -msgstr "" | 108 | +#: accounts/forms.py:403 |
| 109 | +msgid "New password" | ||
| 110 | +msgstr "New password" | ||
| 80 | 111 | ||
| 81 | -#: accounts/templates/accounts/change_password.html:17 | ||
| 82 | -#: accounts/templates/accounts/user_update_form.html:188 | ||
| 83 | -#: accounts/templates/accounts/user_update_form.html:195 | ||
| 84 | -msgid "Change Password" | ||
| 85 | -msgstr "" | 112 | +#: accounts/forms.py:405 |
| 113 | +msgid "New password confirmation" | ||
| 114 | +msgstr "New password confirmation" | ||
| 86 | 115 | ||
| 87 | -#: accounts/templates/accounts/login.html:7 | ||
| 88 | -msgid "To login please click in the link below:" | ||
| 89 | -msgstr "" | 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." | ||
| 90 | 119 | ||
| 91 | -#: accounts/templates/accounts/login.html:8 templates/base.html:182 | ||
| 92 | -#: templates/base.html.py:187 | ||
| 93 | -msgid "Login" | ||
| 94 | -msgstr "" | 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." | ||
| 95 | 131 | ||
| 96 | #: accounts/templates/accounts/manage_subscriptions.html:6 | 132 | #: accounts/templates/accounts/manage_subscriptions.html:6 |
| 97 | msgid "Group Subscriptions" | 133 | msgid "Group Subscriptions" |
| 98 | -msgstr "" | 134 | +msgstr "Group Subscriptions" |
| 99 | 135 | ||
| 100 | #: accounts/templates/accounts/manage_subscriptions.html:36 | 136 | #: accounts/templates/accounts/manage_subscriptions.html:36 |
| 101 | msgid "Update subscriptions" | 137 | msgid "Update subscriptions" |
| 102 | -msgstr "" | 138 | +msgstr "Update subscriptions" |
| 103 | 139 | ||
| 104 | #: accounts/templates/accounts/user_create_form.html:5 | 140 | #: accounts/templates/accounts/user_create_form.html:5 |
| 105 | msgid "Sign up" | 141 | msgid "Sign up" |
| 106 | -msgstr "" | 142 | +msgstr "Sign up" |
| 107 | 143 | ||
| 108 | #: accounts/templates/accounts/user_create_form.html:10 | 144 | #: accounts/templates/accounts/user_create_form.html:10 |
| 109 | -msgid "Please correct the errors below and try again" | ||
| 110 | -msgstr "" | 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." | ||
| 111 | 151 | ||
| 112 | #: accounts/templates/accounts/user_create_form.html:17 | 152 | #: accounts/templates/accounts/user_create_form.html:17 |
| 113 | msgid "Required fields" | 153 | msgid "Required fields" |
| 114 | -msgstr "" | 154 | +msgstr "Required fields" |
| 115 | 155 | ||
| 116 | #: accounts/templates/accounts/user_create_form.html:29 | 156 | #: accounts/templates/accounts/user_create_form.html:29 |
| 117 | msgid "Personal Information" | 157 | msgid "Personal Information" |
| 118 | -msgstr "" | 158 | +msgstr "Personal Information" |
| 119 | 159 | ||
| 120 | #: accounts/templates/accounts/user_create_form.html:46 | 160 | #: accounts/templates/accounts/user_create_form.html:46 |
| 121 | msgid "Subscribe to groups" | 161 | msgid "Subscribe to groups" |
| 122 | -msgstr "" | 162 | +msgstr "Subscribe to groups" |
| 123 | 163 | ||
| 124 | #: accounts/templates/accounts/user_create_form.html:60 | 164 | #: accounts/templates/accounts/user_create_form.html:60 |
| 125 | -#: templates/base.html:181 templates/base.html.py:186 | 165 | +#: templates/base.html:100 templates/base.html.py:105 templates/header.html:40 |
| 166 | +#: templates/header.html.py:45 | ||
| 126 | msgid "Register" | 167 | msgid "Register" |
| 127 | -msgstr "" | 168 | +msgstr "Register" |
| 128 | 169 | ||
| 129 | #: accounts/templates/accounts/user_detail.html:8 | 170 | #: accounts/templates/accounts/user_detail.html:8 |
| 130 | msgid "Messages" | 171 | msgid "Messages" |
| 131 | -msgstr "" | 172 | +msgstr "Messages" |
| 132 | 173 | ||
| 133 | -#: accounts/templates/accounts/user_detail.html:9 | 174 | +#: accounts/templates/accounts/user_detail.html:9 templates/home.html:7 |
| 134 | msgid "Contributions" | 175 | msgid "Contributions" |
| 135 | -msgstr "" | 176 | +msgstr "Contributions" |
| 136 | 177 | ||
| 137 | #: accounts/templates/accounts/user_detail.html:29 | 178 | #: accounts/templates/accounts/user_detail.html:29 |
| 138 | msgid "edit profile" | 179 | msgid "edit profile" |
| 139 | -msgstr "" | 180 | +msgstr "edit profile" |
| 140 | 181 | ||
| 141 | #: accounts/templates/accounts/user_detail.html:30 | 182 | #: accounts/templates/accounts/user_detail.html:30 |
| 142 | msgid "group membership" | 183 | msgid "group membership" |
| 143 | -msgstr "" | 184 | +msgstr "group membership" |
| 144 | 185 | ||
| 145 | -#: accounts/templates/accounts/user_detail.html:65 | 186 | +#: accounts/templates/accounts/user_detail.html:66 |
| 146 | msgid "Twitter account" | 187 | msgid "Twitter account" |
| 147 | -msgstr "" | 188 | +msgstr "Twitter account" |
| 148 | 189 | ||
| 149 | -#: accounts/templates/accounts/user_detail.html:68 | 190 | +#: accounts/templates/accounts/user_detail.html:69 |
| 150 | msgid "Facebook account" | 191 | msgid "Facebook account" |
| 151 | -msgstr "" | 192 | +msgstr "Facebook account" |
| 152 | 193 | ||
| 153 | -#: accounts/templates/accounts/user_detail.html:73 | 194 | +#: accounts/templates/accounts/user_detail.html:74 |
| 154 | msgid "Google talk account" | 195 | msgid "Google talk account" |
| 155 | -msgstr "" | 196 | +msgstr "Google talk account" |
| 156 | 197 | ||
| 157 | -#: accounts/templates/accounts/user_detail.html:77 | 198 | +#: accounts/templates/accounts/user_detail.html:78 |
| 158 | msgid "Github account" | 199 | msgid "Github account" |
| 159 | -msgstr "" | 200 | +msgstr "Github account" |
| 160 | 201 | ||
| 161 | -#: accounts/templates/accounts/user_detail.html:81 | 202 | +#: accounts/templates/accounts/user_detail.html:82 |
| 162 | msgid "Personal webpage" | 203 | msgid "Personal webpage" |
| 163 | -msgstr "" | 204 | +msgstr "Personal webpage" |
| 164 | 205 | ||
| 165 | -#: accounts/templates/accounts/user_detail.html:87 | 206 | +#: accounts/templates/accounts/user_detail.html:88 |
| 166 | msgid "Groups: " | 207 | msgid "Groups: " |
| 167 | -msgstr "" | 208 | +msgstr "Groups: " |
| 168 | 209 | ||
| 169 | -#: accounts/templates/accounts/user_detail.html:100 | 210 | +#: accounts/templates/accounts/user_detail.html:101 |
| 170 | msgid "Collaborations by Type" | 211 | msgid "Collaborations by Type" |
| 171 | -msgstr "" | 212 | +msgstr "Collaborations by Type" |
| 172 | 213 | ||
| 173 | -#: accounts/templates/accounts/user_detail.html:116 | 214 | +#: accounts/templates/accounts/user_detail.html:117 |
| 174 | msgid "Participation by Group" | 215 | msgid "Participation by Group" |
| 175 | -msgstr "" | ||
| 176 | - | ||
| 177 | -#: accounts/templates/accounts/user_detail.html:132 | ||
| 178 | -msgid "Badges" | ||
| 179 | -msgstr "" | 216 | +msgstr "Participation by Group" |
| 180 | 217 | ||
| 181 | -#: accounts/templates/accounts/user_detail.html:151 | 218 | +#: accounts/templates/accounts/user_detail.html:133 |
| 182 | msgid "Latest posted" | 219 | msgid "Latest posted" |
| 183 | -msgstr "" | 220 | +msgstr "Latest posted" |
| 184 | 221 | ||
| 185 | -#: accounts/templates/accounts/user_detail.html:156 | 222 | +#: accounts/templates/accounts/user_detail.html:138 |
| 186 | msgid "There are no posts by this user so far." | 223 | msgid "There are no posts by this user so far." |
| 187 | -msgstr "" | 224 | +msgstr "There are no posts by this user so far." |
| 188 | 225 | ||
| 189 | -#: accounts/templates/accounts/user_detail.html:160 | 226 | +#: accounts/templates/accounts/user_detail.html:142 |
| 190 | msgid "View more posts..." | 227 | msgid "View more posts..." |
| 191 | -msgstr "" | 228 | +msgstr "View more posts..." |
| 192 | 229 | ||
| 193 | -#: accounts/templates/accounts/user_detail.html:166 | 230 | +#: accounts/templates/accounts/user_detail.html:148 |
| 194 | msgid "Latest contributions" | 231 | msgid "Latest contributions" |
| 195 | -msgstr "" | 232 | +msgstr "Latest contributions" |
| 196 | 233 | ||
| 197 | -#: accounts/templates/accounts/user_detail.html:171 | 234 | +#: accounts/templates/accounts/user_detail.html:153 |
| 198 | msgid "No contributions of this user so far." | 235 | msgid "No contributions of this user so far." |
| 199 | -msgstr "" | 236 | +msgstr "No contributions of this user so far." |
| 200 | 237 | ||
| 201 | -#: accounts/templates/accounts/user_detail.html:175 | 238 | +#: accounts/templates/accounts/user_detail.html:157 |
| 202 | msgid "View more contributions..." | 239 | msgid "View more contributions..." |
| 203 | -msgstr "" | 240 | +msgstr "View more contributions..." |
| 204 | 241 | ||
| 205 | #: accounts/templates/accounts/user_update_form.html:65 | 242 | #: accounts/templates/accounts/user_update_form.html:65 |
| 206 | msgid "We sent a verification email to " | 243 | msgid "We sent a verification email to " |
| 207 | -msgstr "" | 244 | +msgstr "We sent a verification email to " |
| 208 | 245 | ||
| 209 | #: accounts/templates/accounts/user_update_form.html:66 | 246 | #: accounts/templates/accounts/user_update_form.html:66 |
| 210 | msgid "Please follow the instructions in it." | 247 | msgid "Please follow the instructions in it." |
| 211 | -msgstr "" | 248 | +msgstr "Please follow the instructions in it." |
| 212 | 249 | ||
| 213 | #: accounts/templates/accounts/user_update_form.html:110 | 250 | #: accounts/templates/accounts/user_update_form.html:110 |
| 214 | msgid "profile information" | 251 | msgid "profile information" |
| 215 | -msgstr "" | 252 | +msgstr "profile information" |
| 216 | 253 | ||
| 217 | #: accounts/templates/accounts/user_update_form.html:115 | 254 | #: accounts/templates/accounts/user_update_form.html:115 |
| 218 | msgid "Change your avatar at Gravatar.com" | 255 | msgid "Change your avatar at Gravatar.com" |
| 219 | -msgstr "" | 256 | +msgstr "Change your avatar at Gravatar.com" |
| 220 | 257 | ||
| 221 | -#: accounts/templates/accounts/user_update_form.html:142 search/utils.py:8 | 258 | +#: accounts/templates/accounts/user_update_form.html:142 search/utils.py:56 |
| 222 | msgid "Emails" | 259 | msgid "Emails" |
| 223 | -msgstr "" | 260 | +msgstr "Emails" |
| 224 | 261 | ||
| 225 | #: accounts/templates/accounts/user_update_form.html:151 | 262 | #: accounts/templates/accounts/user_update_form.html:151 |
| 226 | msgid "Primary" | 263 | msgid "Primary" |
| 227 | -msgstr "" | 264 | +msgstr "Primary" |
| 228 | 265 | ||
| 229 | #: accounts/templates/accounts/user_update_form.html:154 | 266 | #: accounts/templates/accounts/user_update_form.html:154 |
| 230 | msgid "Setting..." | 267 | msgid "Setting..." |
| 231 | -msgstr "" | 268 | +msgstr "Setting..." |
| 232 | 269 | ||
| 233 | #: accounts/templates/accounts/user_update_form.html:154 | 270 | #: accounts/templates/accounts/user_update_form.html:154 |
| 234 | msgid "Set as Primary" | 271 | msgid "Set as Primary" |
| 235 | -msgstr "" | 272 | +msgstr "Set as Primary" |
| 236 | 273 | ||
| 237 | #: accounts/templates/accounts/user_update_form.html:155 | 274 | #: accounts/templates/accounts/user_update_form.html:155 |
| 238 | msgid "Deleting..." | 275 | msgid "Deleting..." |
| 239 | -msgstr "" | 276 | +msgstr "Deleting..." |
| 240 | 277 | ||
| 241 | #: accounts/templates/accounts/user_update_form.html:155 | 278 | #: accounts/templates/accounts/user_update_form.html:155 |
| 242 | #: accounts/templates/accounts/user_update_form.html:167 | 279 | #: accounts/templates/accounts/user_update_form.html:167 |
| 243 | msgid "Delete" | 280 | msgid "Delete" |
| 244 | -msgstr "" | 281 | +msgstr "Delete" |
| 245 | 282 | ||
| 246 | #: accounts/templates/accounts/user_update_form.html:166 | 283 | #: accounts/templates/accounts/user_update_form.html:166 |
| 247 | msgid "Sending verification..." | 284 | msgid "Sending verification..." |
| 248 | -msgstr "" | 285 | +msgstr "Sending verification..." |
| 249 | 286 | ||
| 250 | #: accounts/templates/accounts/user_update_form.html:166 | 287 | #: accounts/templates/accounts/user_update_form.html:166 |
| 251 | msgid "Verify" | 288 | msgid "Verify" |
| 252 | -msgstr "" | 289 | +msgstr "Verify" |
| 253 | 290 | ||
| 254 | #: accounts/templates/accounts/user_update_form.html:174 | 291 | #: accounts/templates/accounts/user_update_form.html:174 |
| 255 | msgid "Add another email address:" | 292 | msgid "Add another email address:" |
| 256 | -msgstr "" | 293 | +msgstr "Add another email address:" |
| 257 | 294 | ||
| 258 | #: accounts/templates/accounts/user_update_form.html:177 | 295 | #: accounts/templates/accounts/user_update_form.html:177 |
| 259 | msgid "Add" | 296 | msgid "Add" |
| 260 | -msgstr "" | 297 | +msgstr "Add" |
| 261 | 298 | ||
| 262 | -#: accounts/templates/accounts/user_update_form.html:193 | ||
| 263 | -msgid "" | ||
| 264 | -"This feature is available only for those who need to change the password for " | ||
| 265 | -"some reason as having an old user with the same username, forgot your " | ||
| 266 | -"password to commit, usage of other XMPP Client for connection. Usually, you " | ||
| 267 | -"won't need to change this password. Only change it if you are sure about " | ||
| 268 | -"what you are doing." | ||
| 269 | -msgstr "" | 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" | ||
| 270 | 305 | ||
| 271 | -#: accounts/templates/accounts/user_update_form.html:203 | 306 | +#: accounts/templates/accounts/user_update_form.html:196 |
| 272 | msgid "Update" | 307 | msgid "Update" |
| 273 | -msgstr "" | 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" | ||
| 274 | 324 | ||
| 275 | -#: accounts/views.py:148 | ||
| 276 | -msgid "Your profile has been created!" | ||
| 277 | -msgstr "" | 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" | ||
| 278 | 337 | ||
| 279 | -#: accounts/views.py:149 | 338 | +#: accounts/templates/registration/password_reset_form_custom.html:23 |
| 280 | msgid "" | 339 | msgid "" |
| 281 | -"You must login to validated your profile. Profiles not validated are deleted " | ||
| 282 | -"in 24h." | ||
| 283 | -msgstr "" | 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." | ||
| 284 | 343 | ||
| 285 | -#: accounts/views.py:233 | ||
| 286 | -msgid "Could not change your password. Please, try again later." | ||
| 287 | -msgstr "" | 344 | +#: accounts/templates/registration/password_reset_form_custom.html:26 |
| 345 | +msgid "Email address:" | ||
| 346 | +msgstr "Email address:" | ||
| 288 | 347 | ||
| 289 | -#: accounts/views.py:242 | ||
| 290 | -msgid "You've changed your password successfully!" | ||
| 291 | -msgstr "" | 348 | +#: accounts/templates/registration/password_reset_form_custom.html:37 |
| 349 | +msgid "Reset password" | ||
| 350 | +msgstr "Reset password" | ||
| 292 | 351 | ||
| 293 | -#: settings.py:160 | ||
| 294 | -msgid "Image" | ||
| 295 | -msgstr "" | 352 | +#: accounts/views.py:126 |
| 353 | +msgid "Your profile has been created!" | ||
| 354 | +msgstr "Your profile has been created!" | ||
| 296 | 355 | ||
| 297 | -#: search/templates/search/includes/search_filters.html:122 | ||
| 298 | -msgid "Ticket" | ||
| 299 | -msgstr "" | 356 | +#: accounts/views.py:186 |
| 357 | +msgid "Your password was changed." | ||
| 358 | +msgstr "Your password was changed." | ||
| 300 | 359 | ||
| 301 | -#: search/forms.py:18 | ||
| 302 | -msgid "Type" | ||
| 303 | -msgstr "" | 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." | ||
| 304 | 363 | ||
| 305 | -#: home/context_processors.py:15 | 364 | +#: home/context_processors.py:20 |
| 306 | msgid "Fork me!" | 365 | msgid "Fork me!" |
| 307 | -msgstr "" | 366 | +msgstr "Fork me!" |
| 367 | + | ||
| 368 | +#: plugins/gitlab/models.py:27 | ||
| 369 | +msgid "Gitlab Project" | ||
| 370 | +msgstr "Gitlab Project" | ||
| 371 | + | ||
| 372 | +#: plugins/gitlab/models.py:28 | ||
| 373 | +msgid "Gitlab Projects" | ||
| 374 | +msgstr "Gitlab Projects" | ||
| 375 | + | ||
| 376 | +#: plugins/gitlab/models.py:54 | ||
| 377 | +msgid "Gitlab Group" | ||
| 378 | +msgstr "Gitlab Group" | ||
| 379 | + | ||
| 380 | +#: plugins/gitlab/models.py:55 | ||
| 381 | +msgid "Gitlab Groups" | ||
| 382 | +msgstr "Gitlab Groups" | ||
| 383 | + | ||
| 384 | +#: plugins/gitlab/models.py:91 | ||
| 385 | +msgid "Gitlab Merge Request" | ||
| 386 | +msgstr "Gitlab Merge Request" | ||
| 387 | + | ||
| 388 | +#: plugins/gitlab/models.py:92 | ||
| 389 | +msgid "Gitlab Merge Requests" | ||
| 390 | +msgstr "Gitlab Merge Requests" | ||
| 391 | + | ||
| 392 | +#: plugins/gitlab/models.py:120 | ||
| 393 | +msgid "Gitlab Issue" | ||
| 394 | +msgstr "Gitlab Issue" | ||
| 395 | + | ||
| 396 | +#: plugins/gitlab/models.py:121 | ||
| 397 | +msgid "Gitlab Issues" | ||
| 398 | +msgstr "Gitlab Issues" | ||
| 399 | + | ||
| 400 | +#: plugins/gitlab/models.py:176 plugins/gitlab/models.py:177 | ||
| 401 | +msgid "Gitlab Comments" | ||
| 402 | +msgstr "Gitlab Comments" | ||
| 403 | + | ||
| 404 | +#: plugins/noosfero/models.py:39 | ||
| 405 | +msgid "Community" | ||
| 406 | +msgstr "Community" | ||
| 407 | + | ||
| 408 | +#: plugins/noosfero/models.py:40 | ||
| 409 | +msgid "Communities" | ||
| 410 | +msgstr "Communities" | ||
| 411 | + | ||
| 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" | ||
| 308 | 419 | ||
| 309 | #: rss/feeds.py:13 | 420 | #: rss/feeds.py:13 |
| 310 | msgid "Latest Discussions" | 421 | msgid "Latest Discussions" |
| 311 | -msgstr "" | 422 | +msgstr "Latest Discussions" |
| 312 | 423 | ||
| 313 | #: rss/feeds.py:32 | 424 | #: rss/feeds.py:32 |
| 314 | msgid "Discussions Most Relevance" | 425 | msgid "Discussions Most Relevance" |
| 315 | -msgstr "" | 426 | +msgstr "Discussions Most Relevance" |
| 316 | 427 | ||
| 317 | #: rss/feeds.py:51 | 428 | #: rss/feeds.py:51 |
| 318 | msgid "Latest collaborations" | 429 | msgid "Latest collaborations" |
| 319 | -msgstr "" | 430 | +msgstr "Latest collaborations" |
| 320 | 431 | ||
| 321 | #: search/forms.py:16 search/templates/search/search.html:46 | 432 | #: search/forms.py:16 search/templates/search/search.html:46 |
| 322 | -#: templates/base.html:171 | 433 | +#: templates/base.html:89 templates/header.html:29 |
| 323 | msgid "Search" | 434 | msgid "Search" |
| 324 | -msgstr "" | 435 | +msgstr "Search" |
| 436 | + | ||
| 437 | +#: search/forms.py:18 | ||
| 438 | +msgid "Type" | ||
| 439 | +msgstr "Type" | ||
| 325 | 440 | ||
| 326 | -#: search/forms.py:19 search/views.py:22 | 441 | +#: search/forms.py:19 search/views.py:20 |
| 327 | msgid "Author" | 442 | msgid "Author" |
| 328 | -msgstr "" | 443 | +msgstr "Author" |
| 329 | 444 | ||
| 330 | #: search/forms.py:20 | 445 | #: search/forms.py:20 |
| 331 | msgid "Modified by" | 446 | msgid "Modified by" |
| 332 | -msgstr "" | 447 | +msgstr "Modified by" |
| 333 | 448 | ||
| 334 | #: search/forms.py:22 | 449 | #: search/forms.py:22 |
| 335 | msgid "Status" | 450 | msgid "Status" |
| 336 | -msgstr "" | 451 | +msgstr "Status" |
| 337 | 452 | ||
| 338 | -#: search/forms.py:26 search/views.py:25 | 453 | +#: search/forms.py:26 search/views.py:23 |
| 339 | msgid "Mailinglist" | 454 | msgid "Mailinglist" |
| 340 | -msgstr "" | 455 | +msgstr "Mailinglist" |
| 341 | 456 | ||
| 342 | #: search/forms.py:30 | 457 | #: search/forms.py:30 |
| 343 | msgid "Milestone" | 458 | msgid "Milestone" |
| 344 | -msgstr "" | 459 | +msgstr "Milestone" |
| 345 | 460 | ||
| 346 | #: search/forms.py:31 | 461 | #: search/forms.py:31 |
| 347 | msgid "Priority" | 462 | msgid "Priority" |
| 348 | -msgstr "" | 463 | +msgstr "Priority" |
| 349 | 464 | ||
| 350 | #: search/forms.py:32 | 465 | #: search/forms.py:32 |
| 351 | msgid "Component" | 466 | msgid "Component" |
| 352 | -msgstr "" | 467 | +msgstr "Component" |
| 353 | 468 | ||
| 354 | #: search/forms.py:33 | 469 | #: search/forms.py:33 |
| 355 | msgid "Severity" | 470 | msgid "Severity" |
| 356 | -msgstr "" | 471 | +msgstr "Severity" |
| 357 | 472 | ||
| 358 | #: search/forms.py:34 | 473 | #: search/forms.py:34 |
| 359 | msgid "Reporter" | 474 | msgid "Reporter" |
| 360 | -msgstr "" | 475 | +msgstr "Reporter" |
| 361 | 476 | ||
| 362 | #: search/forms.py:35 | 477 | #: search/forms.py:35 |
| 363 | msgid "Keywords" | 478 | msgid "Keywords" |
| 364 | -msgstr "" | 479 | +msgstr "Keywords" |
| 365 | 480 | ||
| 366 | #: search/forms.py:36 | 481 | #: search/forms.py:36 |
| 367 | msgid "Collaborators" | 482 | msgid "Collaborators" |
| 368 | -msgstr "" | 483 | +msgstr "Collaborators" |
| 369 | 484 | ||
| 370 | -#: search/forms.py:37 templates/base.html:103 | 485 | +#: search/forms.py:37 |
| 371 | msgid "Repository" | 486 | msgid "Repository" |
| 372 | -msgstr "" | ||
| 373 | - | ||
| 374 | -#: search/forms.py:38 | ||
| 375 | -msgid "Username" | ||
| 376 | -msgstr "" | 487 | +msgstr "Repository" |
| 377 | 488 | ||
| 378 | #: search/forms.py:39 | 489 | #: search/forms.py:39 |
| 379 | msgid "Name" | 490 | msgid "Name" |
| 380 | -msgstr "" | 491 | +msgstr "Name" |
| 381 | 492 | ||
| 382 | #: search/forms.py:40 | 493 | #: search/forms.py:40 |
| 383 | msgid "Institution" | 494 | msgid "Institution" |
| 384 | -msgstr "" | 495 | +msgstr "Institution" |
| 385 | 496 | ||
| 386 | #: search/forms.py:41 | 497 | #: search/forms.py:41 |
| 387 | msgid "Role" | 498 | msgid "Role" |
| 388 | -msgstr "" | 499 | +msgstr "Role" |
| 389 | 500 | ||
| 390 | -#: search/forms.py:42 search/templates/search/includes/search_filters.html:154 | ||
| 391 | -#: search/templates/search/includes/search_filters.html:156 | ||
| 392 | -#: search/templates/search/includes/search_filters.html:188 | ||
| 393 | -#: search/templates/search/includes/search_filters.html:189 | 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 | ||
| 394 | msgid "Since" | 505 | msgid "Since" |
| 395 | -msgstr "" | 506 | +msgstr "Since" |
| 396 | 507 | ||
| 397 | -#: search/forms.py:43 search/templates/search/includes/search_filters.html:163 | ||
| 398 | -#: search/templates/search/includes/search_filters.html:165 | ||
| 399 | -#: search/templates/search/includes/search_filters.html:192 | ||
| 400 | -#: search/templates/search/includes/search_filters.html:193 | 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 | ||
| 401 | msgid "Until" | 512 | msgid "Until" |
| 402 | -msgstr "" | 513 | +msgstr "Until" |
| 403 | 514 | ||
| 404 | #: search/forms.py:44 | 515 | #: search/forms.py:44 |
| 405 | msgid "Filename" | 516 | msgid "Filename" |
| 406 | -msgstr "" | 517 | +msgstr "Filename" |
| 407 | 518 | ||
| 408 | #: search/forms.py:45 | 519 | #: search/forms.py:45 |
| 409 | msgid "Used by" | 520 | msgid "Used by" |
| 410 | -msgstr "" | 521 | +msgstr "Used by" |
| 411 | 522 | ||
| 412 | #: search/forms.py:46 | 523 | #: search/forms.py:46 |
| 413 | msgid "File type" | 524 | msgid "File type" |
| 414 | -msgstr "" | 525 | +msgstr "File type" |
| 415 | 526 | ||
| 416 | #: search/forms.py:47 | 527 | #: search/forms.py:47 |
| 417 | msgid "Size" | 528 | msgid "Size" |
| 418 | -msgstr "" | 529 | +msgstr "Size" |
| 419 | 530 | ||
| 420 | #: search/templates/search/includes/search_filters.html:5 | 531 | #: search/templates/search/includes/search_filters.html:5 |
| 421 | #: search/templates/search/includes/search_filters.html:33 | 532 | #: search/templates/search/includes/search_filters.html:33 |
| 422 | #: search/templates/search/includes/search_filters.html:51 | 533 | #: search/templates/search/includes/search_filters.html:51 |
| 423 | #: search/templates/search/includes/search_filters.html:69 | 534 | #: search/templates/search/includes/search_filters.html:69 |
| 424 | msgid "Remove filter" | 535 | msgid "Remove filter" |
| 425 | -msgstr "" | 536 | +msgstr "Remove filter" |
| 426 | 537 | ||
| 427 | #: search/templates/search/includes/search_filters.html:88 | 538 | #: search/templates/search/includes/search_filters.html:88 |
| 428 | -#: search/templates/search/includes/search_filters.html:174 | ||
| 429 | -#: search/templates/search/includes/search_filters.html:198 | 539 | +#: search/templates/search/includes/search_filters.html:152 |
| 540 | +#: search/templates/search/includes/search_filters.html:176 | ||
| 430 | msgid "Filter" | 541 | msgid "Filter" |
| 431 | -msgstr "" | 542 | +msgstr "Filter" |
| 432 | 543 | ||
| 433 | #: search/templates/search/includes/search_filters.html:94 | 544 | #: search/templates/search/includes/search_filters.html:94 |
| 434 | msgid "Sort by" | 545 | msgid "Sort by" |
| 435 | -msgstr "" | 546 | +msgstr "Sort by" |
| 436 | 547 | ||
| 437 | #: search/templates/search/includes/search_filters.html:111 | 548 | #: search/templates/search/includes/search_filters.html:111 |
| 438 | msgid "Types" | 549 | msgid "Types" |
| 439 | -msgstr "" | ||
| 440 | - | ||
| 441 | -#: search/templates/search/includes/search_filters.html:118 search/utils.py:7 | ||
| 442 | -#: templates/open-data.html:130 | ||
| 443 | -msgid "Wiki" | ||
| 444 | -msgstr "" | ||
| 445 | - | ||
| 446 | -#: search/templates/search/includes/search_filters.html:126 | ||
| 447 | -msgid "Changeset" | ||
| 448 | -msgstr "" | ||
| 449 | - | ||
| 450 | -#: search/templates/search/includes/search_filters.html:130 | ||
| 451 | -msgid "User" | ||
| 452 | -msgstr "" | ||
| 453 | - | ||
| 454 | -#: search/templates/search/includes/search_filters.html:134 | ||
| 455 | -msgid "Attachment" | ||
| 456 | -msgstr "" | 550 | +msgstr "Types" |
| 457 | 551 | ||
| 458 | -#: search/templates/search/includes/search_filters.html:139 search/views.py:20 | 552 | +#: search/templates/search/includes/search_filters.html:117 search/views.py:18 |
| 459 | msgid "Discussion" | 553 | msgid "Discussion" |
| 460 | -msgstr "" | 554 | +msgstr "Discussion" |
| 461 | 555 | ||
| 462 | #: search/templates/search/search.html:5 | 556 | #: search/templates/search/search.html:5 |
| 463 | msgid "search" | 557 | msgid "search" |
| 464 | -msgstr "" | 558 | +msgstr "search" |
| 465 | 559 | ||
| 466 | #: search/templates/search/search.html:51 | 560 | #: search/templates/search/search.html:51 |
| 467 | msgid "documents found" | 561 | msgid "documents found" |
| 468 | -msgstr "" | 562 | +msgstr "documents found" |
| 469 | 563 | ||
| 470 | #: search/templates/search/search.html:62 | 564 | #: search/templates/search/search.html:62 |
| 471 | msgid "Search here" | 565 | msgid "Search here" |
| 472 | -msgstr "" | 566 | +msgstr "Search here" |
| 473 | 567 | ||
| 474 | #: search/templates/search/search.html:74 | 568 | #: search/templates/search/search.html:74 |
| 475 | #: search/templates/search/search.html:84 | 569 | #: search/templates/search/search.html:84 |
| 476 | msgid "Filters" | 570 | msgid "Filters" |
| 477 | -msgstr "" | 571 | +msgstr "Filters" |
| 478 | 572 | ||
| 479 | #: search/templates/search/search.html:105 | 573 | #: search/templates/search/search.html:105 |
| 480 | msgid "No results for your search." | 574 | msgid "No results for your search." |
| 481 | -msgstr "" | 575 | +msgstr "No results for your search." |
| 482 | 576 | ||
| 483 | #: search/templates/search/search.html:107 | 577 | #: search/templates/search/search.html:107 |
| 484 | msgid "You are searching for" | 578 | msgid "You are searching for" |
| 485 | -msgstr "" | ||
| 486 | - | ||
| 487 | -#: search/utils.py:9 settings.py:157 | ||
| 488 | -msgid "Code" | ||
| 489 | -msgstr "" | ||
| 490 | - | ||
| 491 | -#: search/utils.py:10 | ||
| 492 | -msgid "Tickets" | ||
| 493 | -msgstr "" | ||
| 494 | - | ||
| 495 | -#: search/utils.py:11 | ||
| 496 | -msgid "Attachments" | ||
| 497 | -msgstr "" | 579 | +msgstr "You are searching for" |
| 498 | 580 | ||
| 499 | -#: settings.py:115 | 581 | +#: settings.py:113 |
| 500 | msgid "English" | 582 | msgid "English" |
| 501 | -msgstr "" | 583 | +msgstr "English" |
| 502 | 584 | ||
| 503 | -#: settings.py:116 | 585 | +#: settings.py:114 |
| 504 | msgid "Portuguese" | 586 | msgid "Portuguese" |
| 505 | -msgstr "" | 587 | +msgstr "Portuguese" |
| 506 | 588 | ||
| 507 | -#: settings.py:117 | 589 | +#: settings.py:115 |
| 508 | msgid "Spanish" | 590 | msgid "Spanish" |
| 509 | -msgstr "" | 591 | +msgstr "Spanish" |
| 510 | 592 | ||
| 511 | -#: settings.py:140 | 593 | +#: settings.py:138 |
| 512 | msgid "Recent activity" | 594 | msgid "Recent activity" |
| 513 | -msgstr "" | 595 | +msgstr "Recent activity" |
| 514 | 596 | ||
| 515 | -#: settings.py:144 | 597 | +#: settings.py:142 |
| 516 | msgid "Relevance" | 598 | msgid "Relevance" |
| 517 | -msgstr "" | 599 | +msgstr "Relevance" |
| 518 | 600 | ||
| 519 | -#: settings.py:153 | 601 | +#: settings.py:151 |
| 520 | msgid "Document" | 602 | msgid "Document" |
| 521 | -msgstr "" | 603 | +msgstr "Document" |
| 522 | 604 | ||
| 523 | -#: settings.py:155 | 605 | +#: settings.py:153 |
| 524 | msgid "Presentation" | 606 | msgid "Presentation" |
| 525 | -msgstr "" | 607 | +msgstr "Presentation" |
| 526 | 608 | ||
| 527 | -#: settings.py:156 | 609 | +#: settings.py:154 |
| 528 | msgid "Text" | 610 | msgid "Text" |
| 529 | -msgstr "" | ||
| 530 | - | ||
| 531 | -#: settings.py:159 | ||
| 532 | -msgid "Compressed" | ||
| 533 | -msgstr "" | ||
| 534 | - | ||
| 535 | -#: settings.py:162 | ||
| 536 | -msgid "Spreadsheet" | ||
| 537 | -msgstr "" | ||
| 538 | - | ||
| 539 | -#: settings.py:254 | ||
| 540 | -msgid "Planet Colab" | ||
| 541 | -msgstr "" | ||
| 542 | - | ||
| 543 | -#: settings.py:255 | ||
| 544 | -msgid "Colab blog aggregator" | ||
| 545 | -msgstr "" | ||
| 546 | - | ||
| 547 | -#: settings.py:288 | ||
| 548 | -msgid "One Time Snippet" | ||
| 549 | -msgstr "" | 611 | +msgstr "Text" |
| 550 | 612 | ||
| 551 | -#: settings.py:289 | ||
| 552 | -msgid "In one hour" | ||
| 553 | -msgstr "" | 613 | +#: settings.py:155 |
| 614 | +msgid "Code" | ||
| 615 | +msgstr "Code" | ||
| 554 | 616 | ||
| 555 | -#: settings.py:290 | ||
| 556 | -msgid "In one week" | ||
| 557 | -msgstr "" | 617 | +#: settings.py:157 |
| 618 | +msgid "Compressed" | ||
| 619 | +msgstr "Compressed" | ||
| 558 | 620 | ||
| 559 | -#: settings.py:291 | ||
| 560 | -msgid "In one month" | ||
| 561 | -msgstr "" | 621 | +#: settings.py:158 |
| 622 | +msgid "Image" | ||
| 623 | +msgstr "Image" | ||
| 562 | 624 | ||
| 563 | -#: settings.py:292 | ||
| 564 | -msgid "Never" | ||
| 565 | -msgstr "" | 625 | +#: settings.py:160 |
| 626 | +msgid "Spreadsheet" | ||
| 627 | +msgstr "Spreadsheet" | ||
| 566 | 628 | ||
| 567 | #: templates/404.html:5 | 629 | #: templates/404.html:5 |
| 568 | msgid "Not found. Keep searching! :)" | 630 | msgid "Not found. Keep searching! :)" |
| 569 | -msgstr "" | 631 | +msgstr "Not found. Keep searching! :)" |
| 570 | 632 | ||
| 571 | #: templates/500.html:2 | 633 | #: templates/500.html:2 |
| 572 | msgid "Ooopz... something went wrong!" | 634 | msgid "Ooopz... something went wrong!" |
| 573 | -msgstr "" | 635 | +msgstr "Ooopz... something went wrong!" |
| 574 | 636 | ||
| 575 | -#: templates/base.html:87 | ||
| 576 | -msgid "Timeline" | ||
| 577 | -msgstr "" | ||
| 578 | - | ||
| 579 | -#: templates/base.html:92 templates/base.html.py:110 | 637 | +#: templates/base.html:83 templates/header.html:21 |
| 580 | msgid "Groups" | 638 | msgid "Groups" |
| 581 | -msgstr "" | ||
| 582 | - | ||
| 583 | -#: templates/base.html:97 | ||
| 584 | -msgid "Blogs" | ||
| 585 | -msgstr "" | ||
| 586 | - | ||
| 587 | -#: templates/base.html:105 | ||
| 588 | -msgid "Public Projects" | ||
| 589 | -msgstr "" | ||
| 590 | - | ||
| 591 | -#: templates/base.html:107 templates/base.html.py:136 | ||
| 592 | -msgid "Profile" | ||
| 593 | -msgstr "" | ||
| 594 | - | ||
| 595 | -#: templates/base.html:108 | ||
| 596 | -msgid "New Project" | ||
| 597 | -msgstr "" | ||
| 598 | - | ||
| 599 | -#: templates/base.html:109 | ||
| 600 | -msgid "Projects" | ||
| 601 | -msgstr "" | ||
| 602 | - | ||
| 603 | -#: templates/base.html:111 | ||
| 604 | -msgid "Issues" | ||
| 605 | -msgstr "" | ||
| 606 | - | ||
| 607 | -#: templates/base.html:112 | ||
| 608 | -msgid "Merge Requests" | ||
| 609 | -msgstr "" | ||
| 610 | - | ||
| 611 | -#: templates/base.html:120 | ||
| 612 | -msgid "Social" | ||
| 613 | -msgstr "" | ||
| 614 | - | ||
| 615 | -#: templates/base.html:125 | ||
| 616 | -msgid "Users" | ||
| 617 | -msgstr "" | ||
| 618 | - | ||
| 619 | -#: templates/base.html:130 | ||
| 620 | -msgid "Communities" | ||
| 621 | -msgstr "" | ||
| 622 | - | ||
| 623 | -#: templates/base.html:141 | ||
| 624 | -msgid "Control panel" | ||
| 625 | -msgstr "" | 639 | +msgstr "Groups" |
| 626 | 640 | ||
| 627 | -#: templates/base.html:150 | ||
| 628 | -msgid "Contribute" | ||
| 629 | -msgstr "" | ||
| 630 | - | ||
| 631 | -#: templates/base.html:154 | ||
| 632 | -msgid "New Wiki Page" | ||
| 633 | -msgstr "" | ||
| 634 | - | ||
| 635 | -#: templates/base.html:156 | ||
| 636 | -msgid "View Tickets" | ||
| 637 | -msgstr "" | ||
| 638 | - | ||
| 639 | -#: templates/base.html:158 | ||
| 640 | -msgid "New Ticket" | ||
| 641 | -msgstr "" | ||
| 642 | - | ||
| 643 | -#: templates/base.html:160 | ||
| 644 | -msgid "Roadmap" | ||
| 645 | -msgstr "" | ||
| 646 | - | ||
| 647 | -#: templates/base.html:163 | ||
| 648 | -msgid "Browse Source" | ||
| 649 | -msgstr "" | ||
| 650 | - | ||
| 651 | -#: templates/base.html:165 | ||
| 652 | -msgid "Continuous Integration" | ||
| 653 | -msgstr "" | ||
| 654 | - | ||
| 655 | -#: templates/base.html:201 | 641 | +#: templates/base.html:119 templates/header.html:59 |
| 656 | msgid "My Profile" | 642 | msgid "My Profile" |
| 657 | -msgstr "" | 643 | +msgstr "My Profile" |
| 658 | 644 | ||
| 659 | -#: templates/base.html:202 | 645 | +#: templates/base.html:120 templates/base.html.py:121 templates/header.html:60 |
| 646 | +#: templates/header.html.py:61 | ||
| 660 | msgid "Logout" | 647 | msgid "Logout" |
| 661 | -msgstr "" | 648 | +msgstr "Logout" |
| 662 | 649 | ||
| 663 | -#: templates/base.html:214 templates/base.html.py:217 | 650 | +#: templates/base.html:132 templates/base.html.py:135 templates/header.html:72 |
| 651 | +#: templates/header.html.py:75 | ||
| 664 | msgid "Search here..." | 652 | msgid "Search here..." |
| 665 | -msgstr "" | 653 | +msgstr "Search here..." |
| 666 | 654 | ||
| 667 | -#: templates/base.html:231 | 655 | +#: templates/base.html:149 |
| 668 | msgid "The login has failed. Please, try again." | 656 | msgid "The login has failed. Please, try again." |
| 669 | -msgstr "" | 657 | +msgstr "The login has failed. Please, try again." |
| 670 | 658 | ||
| 671 | -#: templates/base.html:256 | 659 | +#: templates/footer.html:6 |
| 672 | msgid "Last email imported at" | 660 | msgid "Last email imported at" |
| 673 | -msgstr "" | 661 | +msgstr "Last email imported at" |
| 674 | 662 | ||
| 675 | -#: templates/base.html:263 | 663 | +#: templates/footer.html:12 |
| 676 | msgid "The contents of this site is published under license" | 664 | msgid "The contents of this site is published under license" |
| 677 | -msgstr "" | 665 | +msgstr "The contents of this site is published under license" |
| 678 | 666 | ||
| 679 | -#: templates/base.html:266 | 667 | +#: templates/footer.html:15 |
| 680 | msgid "Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual" | 668 | msgid "Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual" |
| 681 | -msgstr "" | 669 | +msgstr "Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual" |
| 670 | + | ||
| 671 | +#: templates/header.html:26 | ||
| 672 | +msgid "Paste" | ||
| 673 | +msgstr "Paste" | ||
| 682 | 674 | ||
| 683 | #: templates/home.html:17 | 675 | #: templates/home.html:17 |
| 684 | msgid "Latest Collaborations" | 676 | msgid "Latest Collaborations" |
| 685 | -msgstr "" | 677 | +msgstr "Latest Collaborations" |
| 686 | 678 | ||
| 687 | #: templates/home.html:21 | 679 | #: templates/home.html:21 |
| 688 | msgid "RSS - Latest collaborations" | 680 | msgid "RSS - Latest collaborations" |
| 689 | -msgstr "" | 681 | +msgstr "RSS - Latest collaborations" |
| 690 | 682 | ||
| 691 | #: templates/home.html:30 | 683 | #: templates/home.html:30 |
| 692 | msgid "View more collaborations..." | 684 | msgid "View more collaborations..." |
| 693 | -msgstr "" | 685 | +msgstr "View more collaborations..." |
| 694 | 686 | ||
| 695 | #: templates/home.html:37 | 687 | #: templates/home.html:37 |
| 696 | msgid "Collaboration Graph" | 688 | msgid "Collaboration Graph" |
| 697 | -msgstr "" | 689 | +msgstr "Collaboration Graph" |
| 698 | 690 | ||
| 699 | #: templates/home.html:48 | 691 | #: templates/home.html:48 |
| 700 | msgid "Most Relevant Threads" | 692 | msgid "Most Relevant Threads" |
| 701 | -msgstr "" | 693 | +msgstr "Most Relevant Threads" |
| 702 | 694 | ||
| 703 | #: templates/home.html:52 | 695 | #: templates/home.html:52 |
| 704 | msgid "RSS - Most Relevant Threads" | 696 | msgid "RSS - Most Relevant Threads" |
| 705 | -msgstr "" | 697 | +msgstr "RSS - Most Relevant Threads" |
| 706 | 698 | ||
| 707 | #: templates/home.html:60 templates/home.html.py:79 | 699 | #: templates/home.html:60 templates/home.html.py:79 |
| 708 | msgid "View more discussions..." | 700 | msgid "View more discussions..." |
| 709 | -msgstr "" | 701 | +msgstr "View more discussions..." |
| 710 | 702 | ||
| 711 | #: templates/home.html:67 | 703 | #: templates/home.html:67 |
| 712 | msgid "Latest Threads" | 704 | msgid "Latest Threads" |
| 713 | -msgstr "" | 705 | +msgstr "Latest Threads" |
| 714 | 706 | ||
| 715 | #: templates/home.html:71 | 707 | #: templates/home.html:71 |
| 716 | msgid "RSS - Latest Threads" | 708 | msgid "RSS - Latest Threads" |
| 717 | -msgstr "" | ||
| 718 | - | ||
| 719 | -#: templates/open-data.html:6 | ||
| 720 | -msgid "OpenData - Communities" | ||
| 721 | -msgstr "" | ||
| 722 | - | ||
| 723 | -#: templates/open-data.html:7 | ||
| 724 | -msgid "" | ||
| 725 | -"If you are interested in any other data that is not provided by this API, " | ||
| 726 | -"please contact us via the ticketing system (you must be registered in order " | ||
| 727 | -"to create a ticket)." | ||
| 728 | -msgstr "" | ||
| 729 | - | ||
| 730 | -#: templates/open-data.html:9 | ||
| 731 | -msgid "Retrieving data via API" | ||
| 732 | -msgstr "" | ||
| 733 | - | ||
| 734 | -#: templates/open-data.html:10 | ||
| 735 | -msgid "Colab API works through HTTP/REST, always returning JSON objects." | ||
| 736 | -msgstr "" | ||
| 737 | - | ||
| 738 | -#: templates/open-data.html:12 | ||
| 739 | -msgid "The base API URL is" | ||
| 740 | -msgstr "" | ||
| 741 | - | ||
| 742 | -#: templates/open-data.html:19 | ||
| 743 | -msgid "" | ||
| 744 | -"Each model listed below has a resource_uri field available, which is the " | ||
| 745 | -"object's data URI." | ||
| 746 | -msgstr "" | ||
| 747 | - | ||
| 748 | -#: templates/open-data.html:20 | ||
| 749 | -msgid "" | ||
| 750 | -"The following list contains the available models to retrieve data and its " | ||
| 751 | -"fields available for filtering" | ||
| 752 | -msgstr "" | ||
| 753 | - | ||
| 754 | -#: templates/open-data.html:24 templates/open-data.html.py:39 | ||
| 755 | -#: templates/open-data.html:50 templates/open-data.html.py:62 | ||
| 756 | -#: templates/open-data.html:74 templates/open-data.html.py:95 | ||
| 757 | -msgid "Fields" | ||
| 758 | -msgstr "" | ||
| 759 | - | ||
| 760 | -#: templates/open-data.html:25 | ||
| 761 | -msgid "" | ||
| 762 | -"The email field is not shown for user's privacy, but you can use it to filter" | ||
| 763 | -msgstr "" | ||
| 764 | - | ||
| 765 | -#: templates/open-data.html:27 | ||
| 766 | -msgid "The user's username" | ||
| 767 | -msgstr "" | ||
| 768 | - | ||
| 769 | -#: templates/open-data.html:28 | ||
| 770 | -msgid "The user's email address" | ||
| 771 | -msgstr "" | ||
| 772 | - | ||
| 773 | -#: templates/open-data.html:29 | ||
| 774 | -msgid "What is the user's institution" | ||
| 775 | -msgstr "" | ||
| 776 | - | ||
| 777 | -#: templates/open-data.html:30 | ||
| 778 | -msgid "What is the user's role" | ||
| 779 | -msgstr "" | ||
| 780 | - | ||
| 781 | -#: templates/open-data.html:31 | ||
| 782 | -msgid "The user's first name" | ||
| 783 | -msgstr "" | ||
| 784 | - | ||
| 785 | -#: templates/open-data.html:32 | ||
| 786 | -msgid "The user's last name" | ||
| 787 | -msgstr "" | ||
| 788 | - | ||
| 789 | -#: templates/open-data.html:33 | ||
| 790 | -msgid "A mini bio of the user" | ||
| 791 | -msgstr "" | ||
| 792 | - | ||
| 793 | -#: templates/open-data.html:40 | ||
| 794 | -msgid "" | ||
| 795 | -"The address field is not shown for user's privacy, but you can use it to " | ||
| 796 | -"filter" | ||
| 797 | -msgstr "" | ||
| 798 | - | ||
| 799 | -#: templates/open-data.html:42 | ||
| 800 | -msgid "It has a relationshop with the user described above" | ||
| 801 | -msgstr "" | ||
| 802 | - | ||
| 803 | -#: templates/open-data.html:43 | ||
| 804 | -msgid "An email address" | ||
| 805 | -msgstr "" | ||
| 806 | - | ||
| 807 | -#: templates/open-data.html:44 | ||
| 808 | -msgid "The user's real name" | ||
| 809 | -msgstr "" | ||
| 810 | - | ||
| 811 | -#: templates/open-data.html:52 | ||
| 812 | -msgid "It has a relationship with the emailaddress described above" | ||
| 813 | -msgstr "" | ||
| 814 | - | ||
| 815 | -#: templates/open-data.html:53 | ||
| 816 | -msgid "The message's body" | ||
| 817 | -msgstr "" | ||
| 818 | - | ||
| 819 | -#: templates/open-data.html:54 | ||
| 820 | -msgid "The message's subject" | ||
| 821 | -msgstr "" | ||
| 822 | - | ||
| 823 | -#: templates/open-data.html:55 | ||
| 824 | -msgid "The message's id" | ||
| 825 | -msgstr "" | ||
| 826 | - | ||
| 827 | -#: templates/open-data.html:56 | ||
| 828 | -msgid "The message's received time" | ||
| 829 | -msgstr "" | ||
| 830 | - | ||
| 831 | -#: templates/open-data.html:64 | ||
| 832 | -msgid "The revision's author username" | ||
| 833 | -msgstr "" | ||
| 834 | - | ||
| 835 | -#: templates/open-data.html:65 | ||
| 836 | -msgid "When the revision's were created" | ||
| 837 | -msgstr "" | ||
| 838 | - | ||
| 839 | -#: templates/open-data.html:66 | ||
| 840 | -msgid "The revision's key" | ||
| 841 | -msgstr "" | ||
| 842 | - | ||
| 843 | -#: templates/open-data.html:67 | ||
| 844 | -msgid "The revision's message" | ||
| 845 | -msgstr "" | ||
| 846 | - | ||
| 847 | -#: templates/open-data.html:68 | ||
| 848 | -msgid "The revision's repository name" | ||
| 849 | -msgstr "" | ||
| 850 | - | ||
| 851 | -#: templates/open-data.html:76 | ||
| 852 | -msgid "The ticket's author username" | ||
| 853 | -msgstr "" | ||
| 854 | - | ||
| 855 | -#: templates/open-data.html:77 | ||
| 856 | -msgid "The ticket's component" | ||
| 857 | -msgstr "" | ||
| 858 | - | ||
| 859 | -#: templates/open-data.html:78 | ||
| 860 | -msgid "When the ticket's were created" | ||
| 861 | -msgstr "" | ||
| 862 | - | ||
| 863 | -#: templates/open-data.html:79 | ||
| 864 | -msgid "The ticket's description" | ||
| 865 | -msgstr "" | ||
| 866 | - | ||
| 867 | -#: templates/open-data.html:80 | ||
| 868 | -msgid "The ticket's id" | ||
| 869 | -msgstr "" | ||
| 870 | - | ||
| 871 | -#: templates/open-data.html:81 | ||
| 872 | -msgid "The ticket's keywords" | ||
| 873 | -msgstr "" | ||
| 874 | - | ||
| 875 | -#: templates/open-data.html:82 | ||
| 876 | -msgid "The ticket's milestone" | ||
| 877 | -msgstr "" | ||
| 878 | - | ||
| 879 | -#: templates/open-data.html:83 templates/open-data.html.py:99 | ||
| 880 | -msgid "The time of the last modification" | ||
| 881 | -msgstr "" | ||
| 882 | - | ||
| 883 | -#: templates/open-data.html:84 | ||
| 884 | -msgid "The username of the last user who modified the ticket" | ||
| 885 | -msgstr "" | ||
| 886 | - | ||
| 887 | -#: templates/open-data.html:85 | ||
| 888 | -msgid "The ticket's priority" | ||
| 889 | -msgstr "" | ||
| 890 | - | ||
| 891 | -#: templates/open-data.html:86 | ||
| 892 | -msgid "The ticket's severity" | ||
| 893 | -msgstr "" | ||
| 894 | - | ||
| 895 | -#: templates/open-data.html:87 | ||
| 896 | -msgid "The ticket's status" | ||
| 897 | -msgstr "" | ||
| 898 | - | ||
| 899 | -#: templates/open-data.html:88 | ||
| 900 | -msgid "The ticket's summary" | ||
| 901 | -msgstr "" | ||
| 902 | - | ||
| 903 | -#: templates/open-data.html:89 | ||
| 904 | -msgid "The ticket's version" | ||
| 905 | -msgstr "" | ||
| 906 | - | ||
| 907 | -#: templates/open-data.html:97 | ||
| 908 | -msgid "The wiki's author username" | ||
| 909 | -msgstr "" | ||
| 910 | - | ||
| 911 | -#: templates/open-data.html:98 | ||
| 912 | -msgid "When the wiki's were created" | ||
| 913 | -msgstr "" | ||
| 914 | - | ||
| 915 | -#: templates/open-data.html:100 | ||
| 916 | -msgid "The username of the last user who modified the wiki" | ||
| 917 | -msgstr "" | ||
| 918 | - | ||
| 919 | -#: templates/open-data.html:101 | ||
| 920 | -msgid "The wiki's name" | ||
| 921 | -msgstr "" | ||
| 922 | - | ||
| 923 | -#: templates/open-data.html:102 | ||
| 924 | -msgid "the wiki's content" | ||
| 925 | -msgstr "" | ||
| 926 | - | ||
| 927 | -#: templates/open-data.html:109 | ||
| 928 | -msgid "Parameters" | ||
| 929 | -msgstr "" | ||
| 930 | - | ||
| 931 | -#: templates/open-data.html:112 | ||
| 932 | -msgid "Results per page" | ||
| 933 | -msgstr "" | ||
| 934 | - | ||
| 935 | -#: templates/open-data.html:113 | ||
| 936 | -msgid "Number of results to be displayed per page." | ||
| 937 | -msgstr "" | ||
| 938 | - | ||
| 939 | -#: templates/open-data.html:114 | ||
| 940 | -msgid "Default: 20" | ||
| 941 | -msgstr "" | ||
| 942 | - | ||
| 943 | -#: templates/open-data.html:118 | ||
| 944 | -msgid "Starts of n element" | ||
| 945 | -msgstr "" | ||
| 946 | - | ||
| 947 | -#: templates/open-data.html:119 | ||
| 948 | -msgid "Where n is the index of the first result to appear in the page." | ||
| 949 | -msgstr "" | ||
| 950 | - | ||
| 951 | -#: templates/open-data.html:120 | ||
| 952 | -msgid "Default: 0" | ||
| 953 | -msgstr "" | ||
| 954 | - | ||
| 955 | -#: templates/open-data.html:122 | ||
| 956 | -msgid "Filtering" | ||
| 957 | -msgstr "" | ||
| 958 | - | ||
| 959 | -#: templates/open-data.html:124 | ||
| 960 | -msgid "The field name" | ||
| 961 | -msgstr "" | ||
| 962 | - | ||
| 963 | -#: templates/open-data.html:125 | ||
| 964 | -msgid "" | ||
| 965 | -"If you are looking for a specific wiki, and you know the wiki's name, you " | ||
| 966 | -"can filter it as below" | ||
| 967 | -msgstr "" | ||
| 968 | - | ||
| 969 | -#: templates/open-data.html:126 | ||
| 970 | -msgid "WikiName" | ||
| 971 | -msgstr "" | ||
| 972 | - | ||
| 973 | -#: templates/open-data.html:127 | ||
| 974 | -msgid "" | ||
| 975 | -"Where "name" is the fieldname and "WikiName" is the " | ||
| 976 | -"value you want to filter." | ||
| 977 | -msgstr "" | ||
| 978 | - | ||
| 979 | -#: templates/open-data.html:128 | ||
| 980 | -msgid "Usage" | ||
| 981 | -msgstr "" | ||
| 982 | - | ||
| 983 | -#: templates/open-data.html:129 | ||
| 984 | -msgid "" | ||
| 985 | -"You can also filter using Django lookup fields with the double underscores, " | ||
| 986 | -"just as below" | ||
| 987 | -msgstr "" | ||
| 988 | - | ||
| 989 | -#: templates/open-data.html:131 templates/open-data.html.py:132 | ||
| 990 | -msgid "test" | ||
| 991 | -msgstr "" | ||
| 992 | - | ||
| 993 | -#: templates/open-data.html:133 | ||
| 994 | -msgid "Usage with relationships" | ||
| 995 | -msgstr "" | ||
| 996 | - | ||
| 997 | -#: templates/open-data.html:134 | ||
| 998 | -msgid "" | ||
| 999 | -"You can use related fields to filter too. So, you can filter by any field of " | ||
| 1000 | -"emailaddress using the 'from_address' field of message, which has a relation " | ||
| 1001 | -"to emailaddress. You will achieve the related fields by using double " | ||
| 1002 | -"underscore and the field's name. See the example below" | ||
| 1003 | -msgstr "" | ||
| 1004 | - | ||
| 1005 | -#: templates/open-data.html:136 | ||
| 1006 | -msgid "" | ||
| 1007 | -"So, real_name is a field of emailaddress, and you had access to this field " | ||
| 1008 | -"by a message field called from_address and using double underscore to say " | ||
| 1009 | -"you want to use a field of that relationship" | ||
| 1010 | -msgstr "" | ||
| 1011 | - | ||
| 1012 | -#: templates/open-data.html:137 | ||
| 1013 | -msgid "" | ||
| 1014 | -"Note: email filters must be exact. Which means that __contains, " | ||
| 1015 | -"__startswith, __endswith and others won't work" | ||
| 1016 | -msgstr "" | ||
| 1017 | - | ||
| 1018 | -#: templates/open-data.html:138 | ||
| 1019 | -msgid "" | ||
| 1020 | -"Another example of usage with relations. Used to retrieve all messages of a " | ||
| 1021 | -"given user, using the username or the email field" | ||
| 1022 | -msgstr "" | 709 | +msgstr "RSS - Latest Threads" |
colab/locale/pt_BR/LC_MESSAGES/django.mo
No preview for this file type
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 | ||
| 7 | +# macártur de sousa carvalho <macartur.sc@gmail.com>, 2015 | ||
| 6 | # Sergio Oliveira <seocam@seocam.com>, 2014 | 8 | # Sergio Oliveira <seocam@seocam.com>, 2014 |
| 7 | msgid "" | 9 | msgid "" |
| 8 | msgstr "" | 10 | msgstr "" |
| 9 | "Project-Id-Version: colab\n" | 11 | "Project-Id-Version: colab\n" |
| 10 | "Report-Msgid-Bugs-To: \n" | 12 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2015-01-21 13:55+0000\n" | ||
| 12 | -"PO-Revision-Date: 2014-11-21 17:31+0000\n" | ||
| 13 | -"Last-Translator: Sergio Oliveira <seocam@seocam.com>\n" | ||
| 14 | -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/" | ||
| 15 | -"colab/language/pt_BR/)\n" | ||
| 16 | -"Language: pt_BR\n" | 13 | +"POT-Creation-Date: 2015-09-01 13:15+0000\n" |
| 14 | +"PO-Revision-Date: 2015-09-07 19:13+0000\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" | ||
| 17 | "MIME-Version: 1.0\n" | 17 | "MIME-Version: 1.0\n" |
| 18 | "Content-Type: text/plain; charset=UTF-8\n" | 18 | "Content-Type: text/plain; charset=UTF-8\n" |
| 19 | "Content-Transfer-Encoding: 8bit\n" | 19 | "Content-Transfer-Encoding: 8bit\n" |
| 20 | +"Language: pt_BR\n" | ||
| 20 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" | 21 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" |
| 21 | 22 | ||
| 22 | -#: colab/accounts/admin.py:40 | 23 | +#: accounts/admin.py:18 |
| 23 | msgid "Personal info" | 24 | msgid "Personal info" |
| 24 | msgstr "Informações Pessoais" | 25 | msgstr "Informações Pessoais" |
| 25 | 26 | ||
| 26 | -#: colab/accounts/admin.py:43 | 27 | +#: accounts/admin.py:24 |
| 27 | msgid "Permissions" | 28 | msgid "Permissions" |
| 28 | msgstr "Permissões" | 29 | msgstr "Permissões" |
| 29 | 30 | ||
| 30 | -#: colab/accounts/admin.py:45 | 31 | +#: accounts/admin.py:28 |
| 31 | msgid "Important dates" | 32 | msgid "Important dates" |
| 32 | msgstr "Datas importantes" | 33 | msgstr "Datas importantes" |
| 33 | 34 | ||
| 34 | -#: colab/accounts/forms.py:25 | 35 | +#: accounts/forms.py:37 |
| 35 | msgid "Social account does not exist" | 36 | msgid "Social account does not exist" |
| 36 | msgstr "Conta social não existe" | 37 | msgstr "Conta social não existe" |
| 37 | 38 | ||
| 38 | -#: colab/accounts/forms.py:61 | 39 | +#: accounts/forms.py:65 accounts/forms.py:71 accounts/forms.py:77 |
| 39 | msgid "This field cannot be blank." | 40 | msgid "This field cannot be blank." |
| 40 | -msgstr "" | ||
| 41 | - | ||
| 42 | -#: colab/accounts/forms.py:67 colab/accounts/forms.py:128 | ||
| 43 | -msgid "Password" | ||
| 44 | -msgstr "Senha" | 41 | +msgstr "Este campo não pode ficar em branco." |
| 45 | 42 | ||
| 46 | -#: colab/accounts/forms.py:68 | ||
| 47 | -msgid "Confirm Password " | ||
| 48 | -msgstr "Confirmar senha" | ||
| 49 | - | ||
| 50 | -#: colab/accounts/forms.py:79 | ||
| 51 | -msgid "The two password fields didn't match." | ||
| 52 | -msgstr "" | ||
| 53 | - | ||
| 54 | -#: colab/accounts/forms.py:96 | ||
| 55 | -#: colab/accounts/templates/accounts/user_detail.html:38 | 43 | +#: accounts/forms.py:118 accounts/templates/accounts/user_detail.html:38 |
| 56 | msgid "Bio" | 44 | msgid "Bio" |
| 57 | msgstr "Bio" | 45 | msgstr "Bio" |
| 58 | 46 | ||
| 59 | -#: colab/accounts/forms.py:97 | 47 | +#: accounts/forms.py:119 |
| 60 | msgid "Write something about you in 200 characters or less." | 48 | msgid "Write something about you in 200 characters or less." |
| 61 | msgstr "Escreva algo sobre você em 200 caracteres ou menos." | 49 | msgstr "Escreva algo sobre você em 200 caracteres ou menos." |
| 62 | 50 | ||
| 63 | -#: colab/accounts/forms.py:121 | 51 | +#: accounts/forms.py:148 |
| 64 | msgid "Mailing lists" | 52 | msgid "Mailing lists" |
| 65 | msgstr "Listas de e-mail" | 53 | msgstr "Listas de e-mail" |
| 66 | 54 | ||
| 67 | -#: colab/accounts/forms.py:130 | 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>" | ||
| 59 | + | ||
| 60 | +#: accounts/forms.py:163 | ||
| 61 | +msgid "A user with that username already exists." | ||
| 62 | +msgstr "Já existe um usuário com este nome." | ||
| 63 | + | ||
| 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." | ||
| 67 | + | ||
| 68 | +#: accounts/forms.py:166 accounts/forms.py:236 search/forms.py:38 | ||
| 69 | +msgid "Username" | ||
| 70 | +msgstr "Usuário" | ||
| 71 | + | ||
| 72 | +#: accounts/forms.py:173 accounts/forms.py:240 accounts/forms.py:277 | ||
| 73 | +#: accounts/forms.py:467 | ||
| 74 | +msgid "Password" | ||
| 75 | +msgstr "Senha" | ||
| 76 | + | ||
| 77 | +#: accounts/forms.py:175 | ||
| 68 | msgid "Password confirmation" | 78 | msgid "Password confirmation" |
| 69 | msgstr "Confirmação de senha" | 79 | msgstr "Confirmação de senha" |
| 70 | 80 | ||
| 71 | -#: colab/accounts/forms.py:132 | ||
| 72 | -msgid "Enter the same password as above, for verification." | ||
| 73 | -msgstr "Digite a mesma senha que acima, para verificação." | 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." | ||
| 74 | 84 | ||
| 75 | -#: colab/accounts/forms.py:150 | ||
| 76 | -msgid "Password mismatch" | ||
| 77 | -msgstr "Senhas diferentes" | 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." | ||
| 78 | 88 | ||
| 79 | -#: colab/accounts/models.py:66 | ||
| 80 | -msgid "Required. 30 characters or fewer. Letters, digits and ./+/-/_ only." | ||
| 81 | -msgstr "" | ||
| 82 | -"Obrigatório. 30 caracteres ou menos. Letras, números e ./+/-/_ somente." | 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>." | ||
| 83 | 95 | ||
| 84 | -#: colab/accounts/models.py:71 | ||
| 85 | -msgid "Enter a valid username." | ||
| 86 | -msgstr "Insira um nome de usuário válido." | 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" | ||
| 87 | 102 | ||
| 88 | -#: colab/accounts/templates/accounts/change_password.html:8 | ||
| 89 | -msgid "Change XMPP Client and SVN Password" | ||
| 90 | -msgstr "Trocar senha do Repositório e do Mensageiro" | ||
| 91 | - | ||
| 92 | -#: colab/accounts/templates/accounts/change_password.html:17 | ||
| 93 | -#: colab/accounts/templates/accounts/user_update_form.html:186 | ||
| 94 | -#: colab/accounts/templates/accounts/user_update_form.html:190 | ||
| 95 | -#: colab/accounts/templates/accounts/user_update_form.html:202 | ||
| 96 | -#: colab/accounts/templates/accounts/user_update_form.html:209 | ||
| 97 | -#: colab/accounts/templates/registration/password_change_form_custom.html:27 | ||
| 98 | -#: colab/accounts/templates/registration/password_reset_confirm_custom.html:29 | ||
| 99 | -msgid "Change Password" | ||
| 100 | -msgstr "Trocar senha" | 103 | +#: accounts/forms.py:282 |
| 104 | +msgid "This account is inactive." | ||
| 105 | +msgstr "Esta conta está inativa." | ||
| 101 | 106 | ||
| 102 | -#: colab/accounts/templates/accounts/login.html:7 | ||
| 103 | -msgid "To login please click in the link below:" | ||
| 104 | -msgstr "Para acessar por favor clique no link abaixo:" | 107 | +#: accounts/forms.py:345 |
| 108 | +msgid "Email" | ||
| 109 | +msgstr "Email" | ||
| 105 | 110 | ||
| 106 | -#: colab/accounts/templates/accounts/login.html:8 | ||
| 107 | -#: colab/accounts/templates/registration/login.html:34 | ||
| 108 | -#: colab/accounts/templates/registration/login.html:54 | ||
| 109 | -#: colab/templates/base.html:185 colab/templates/base.html.py:190 | ||
| 110 | -#: colab/templates/base.html:194 colab/templates/base.html.py:199 | ||
| 111 | -msgid "Login" | ||
| 112 | -msgstr "Entrar" | 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." | ||
| 113 | 122 | ||
| 114 | -#: colab/accounts/templates/accounts/manage_subscriptions.html:6 | 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 | ||
| 115 | msgid "Group Subscriptions" | 136 | msgid "Group Subscriptions" |
| 116 | msgstr "Inscrições em grupos" | 137 | msgstr "Inscrições em grupos" |
| 117 | 138 | ||
| 118 | -#: colab/accounts/templates/accounts/manage_subscriptions.html:36 | 139 | +#: accounts/templates/accounts/manage_subscriptions.html:36 |
| 119 | msgid "Update subscriptions" | 140 | msgid "Update subscriptions" |
| 120 | msgstr "Atualizar inscrições" | 141 | msgstr "Atualizar inscrições" |
| 121 | 142 | ||
| 122 | -#: colab/accounts/templates/accounts/user_create_form.html:5 | 143 | +#: accounts/templates/accounts/user_create_form.html:5 |
| 123 | msgid "Sign up" | 144 | msgid "Sign up" |
| 124 | msgstr "Cadastrar" | 145 | msgstr "Cadastrar" |
| 125 | 146 | ||
| 126 | -#: colab/accounts/templates/accounts/user_create_form.html:10 | ||
| 127 | -#: colab/accounts/templates/registration/login.html:14 | ||
| 128 | -#: colab/accounts/templates/registration/password_change_form_custom.html:13 | ||
| 129 | -#: colab/accounts/templates/registration/password_reset_confirm_custom.html:15 | ||
| 130 | -#: colab/accounts/templates/registration/password_reset_form_custom.html:9 | 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 | ||
| 131 | msgid "Please correct the errors below and try again." | 152 | msgid "Please correct the errors below and try again." |
| 132 | -msgstr "Por favor, corrija os erros abaixo e tente novamente." | 153 | +msgstr "Por favor corrija os erros abaixo e tente novamente." |
| 133 | 154 | ||
| 134 | -#: colab/accounts/templates/accounts/user_create_form.html:17 | 155 | +#: accounts/templates/accounts/user_create_form.html:17 |
| 135 | msgid "Required fields" | 156 | msgid "Required fields" |
| 136 | msgstr "Campos obrigatórios" | 157 | msgstr "Campos obrigatórios" |
| 137 | 158 | ||
| 138 | -#: colab/accounts/templates/accounts/user_create_form.html:29 | 159 | +#: accounts/templates/accounts/user_create_form.html:29 |
| 139 | msgid "Personal Information" | 160 | msgid "Personal Information" |
| 140 | msgstr "Informações pessoais" | 161 | msgstr "Informações pessoais" |
| 141 | 162 | ||
| 142 | -#: colab/accounts/templates/accounts/user_create_form.html:46 | 163 | +#: accounts/templates/accounts/user_create_form.html:46 |
| 143 | msgid "Subscribe to groups" | 164 | msgid "Subscribe to groups" |
| 144 | msgstr "Inscreva-se nos grupos" | 165 | msgstr "Inscreva-se nos grupos" |
| 145 | 166 | ||
| 146 | -#: colab/accounts/templates/accounts/user_create_form.html:60 | ||
| 147 | -#: colab/templates/base.html:189 colab/templates/base.html.py:198 | 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 | ||
| 148 | msgid "Register" | 170 | msgid "Register" |
| 149 | msgstr "Cadastre-se" | 171 | msgstr "Cadastre-se" |
| 150 | 172 | ||
| 151 | -#: colab/accounts/templates/accounts/user_detail.html:8 | 173 | +#: accounts/templates/accounts/user_detail.html:8 |
| 152 | msgid "Messages" | 174 | msgid "Messages" |
| 153 | msgstr "Mensagens" | 175 | msgstr "Mensagens" |
| 154 | 176 | ||
| 155 | -#: colab/accounts/templates/accounts/user_detail.html:9 | ||
| 156 | -#: colab/templates/home.html:7 | 177 | +#: accounts/templates/accounts/user_detail.html:9 templates/home.html:7 |
| 157 | msgid "Contributions" | 178 | msgid "Contributions" |
| 158 | msgstr "Contribuições" | 179 | msgstr "Contribuições" |
| 159 | 180 | ||
| 160 | -#: colab/accounts/templates/accounts/user_detail.html:29 | 181 | +#: accounts/templates/accounts/user_detail.html:29 |
| 161 | msgid "edit profile" | 182 | msgid "edit profile" |
| 162 | msgstr "editar perfil" | 183 | msgstr "editar perfil" |
| 163 | 184 | ||
| 164 | -#: colab/accounts/templates/accounts/user_detail.html:30 | 185 | +#: accounts/templates/accounts/user_detail.html:30 |
| 165 | msgid "group membership" | 186 | msgid "group membership" |
| 166 | msgstr "Inscrições nos grupos" | 187 | msgstr "Inscrições nos grupos" |
| 167 | 188 | ||
| 168 | -#: colab/accounts/templates/accounts/user_detail.html:65 | 189 | +#: accounts/templates/accounts/user_detail.html:66 |
| 169 | msgid "Twitter account" | 190 | msgid "Twitter account" |
| 170 | msgstr "Conta Twitter" | 191 | msgstr "Conta Twitter" |
| 171 | 192 | ||
| 172 | -#: colab/accounts/templates/accounts/user_detail.html:68 | 193 | +#: accounts/templates/accounts/user_detail.html:69 |
| 173 | msgid "Facebook account" | 194 | msgid "Facebook account" |
| 174 | msgstr "Conta Facebook" | 195 | msgstr "Conta Facebook" |
| 175 | 196 | ||
| 176 | -#: colab/accounts/templates/accounts/user_detail.html:73 | 197 | +#: accounts/templates/accounts/user_detail.html:74 |
| 177 | msgid "Google talk account" | 198 | msgid "Google talk account" |
| 178 | -msgstr "Conta Google" | 199 | +msgstr "Conta Google talk" |
| 179 | 200 | ||
| 180 | -#: colab/accounts/templates/accounts/user_detail.html:77 | 201 | +#: accounts/templates/accounts/user_detail.html:78 |
| 181 | msgid "Github account" | 202 | msgid "Github account" |
| 182 | msgstr "Conta Github" | 203 | msgstr "Conta Github" |
| 183 | 204 | ||
| 184 | -#: colab/accounts/templates/accounts/user_detail.html:81 | 205 | +#: accounts/templates/accounts/user_detail.html:82 |
| 185 | msgid "Personal webpage" | 206 | msgid "Personal webpage" |
| 186 | msgstr "Página web pessoal" | 207 | msgstr "Página web pessoal" |
| 187 | 208 | ||
| 188 | -#: colab/accounts/templates/accounts/user_detail.html:87 | 209 | +#: accounts/templates/accounts/user_detail.html:88 |
| 189 | msgid "Groups: " | 210 | msgid "Groups: " |
| 190 | msgstr "Grupos: " | 211 | msgstr "Grupos: " |
| 191 | 212 | ||
| 192 | -#: colab/accounts/templates/accounts/user_detail.html:100 | 213 | +#: accounts/templates/accounts/user_detail.html:101 |
| 193 | msgid "Collaborations by Type" | 214 | msgid "Collaborations by Type" |
| 194 | msgstr "Colaborações por tipo" | 215 | msgstr "Colaborações por tipo" |
| 195 | 216 | ||
| 196 | -#: colab/accounts/templates/accounts/user_detail.html:116 | 217 | +#: accounts/templates/accounts/user_detail.html:117 |
| 197 | msgid "Participation by Group" | 218 | msgid "Participation by Group" |
| 198 | msgstr "Participação por grupo" | 219 | msgstr "Participação por grupo" |
| 199 | 220 | ||
| 200 | -#: colab/accounts/templates/accounts/user_detail.html:132 | ||
| 201 | -msgid "Badges" | ||
| 202 | -msgstr "Medalhas" | ||
| 203 | - | ||
| 204 | -#: colab/accounts/templates/accounts/user_detail.html:151 | 221 | +#: accounts/templates/accounts/user_detail.html:133 |
| 205 | msgid "Latest posted" | 222 | msgid "Latest posted" |
| 206 | msgstr "Últimas postagens" | 223 | msgstr "Últimas postagens" |
| 207 | 224 | ||
| 208 | -#: colab/accounts/templates/accounts/user_detail.html:156 | 225 | +#: accounts/templates/accounts/user_detail.html:138 |
| 209 | msgid "There are no posts by this user so far." | 226 | msgid "There are no posts by this user so far." |
| 210 | msgstr "Não há posts deste usuário até agora." | 227 | msgstr "Não há posts deste usuário até agora." |
| 211 | 228 | ||
| 212 | -#: colab/accounts/templates/accounts/user_detail.html:160 | 229 | +#: accounts/templates/accounts/user_detail.html:142 |
| 213 | msgid "View more posts..." | 230 | msgid "View more posts..." |
| 214 | msgstr "Ver mais postagens..." | 231 | msgstr "Ver mais postagens..." |
| 215 | 232 | ||
| 216 | -#: colab/accounts/templates/accounts/user_detail.html:166 | 233 | +#: accounts/templates/accounts/user_detail.html:148 |
| 217 | msgid "Latest contributions" | 234 | msgid "Latest contributions" |
| 218 | msgstr "Últimas colaborações" | 235 | msgstr "Últimas colaborações" |
| 219 | 236 | ||
| 220 | -#: colab/accounts/templates/accounts/user_detail.html:171 | 237 | +#: accounts/templates/accounts/user_detail.html:153 |
| 221 | msgid "No contributions of this user so far." | 238 | msgid "No contributions of this user so far." |
| 222 | -msgstr "Não há posts deste usuário até agora." | 239 | +msgstr "Não há contribuições deste usuário até agora." |
| 223 | 240 | ||
| 224 | -#: colab/accounts/templates/accounts/user_detail.html:175 | 241 | +#: accounts/templates/accounts/user_detail.html:157 |
| 225 | msgid "View more contributions..." | 242 | msgid "View more contributions..." |
| 226 | msgstr "Ver mais colaborações..." | 243 | msgstr "Ver mais colaborações..." |
| 227 | 244 | ||
| 228 | -#: colab/accounts/templates/accounts/user_update_form.html:65 | 245 | +#: accounts/templates/accounts/user_update_form.html:65 |
| 229 | msgid "We sent a verification email to " | 246 | msgid "We sent a verification email to " |
| 230 | msgstr "Enviamos um email de verificação para " | 247 | msgstr "Enviamos um email de verificação para " |
| 231 | 248 | ||
| 232 | -#: colab/accounts/templates/accounts/user_update_form.html:66 | 249 | +#: accounts/templates/accounts/user_update_form.html:66 |
| 233 | msgid "Please follow the instructions in it." | 250 | msgid "Please follow the instructions in it." |
| 234 | msgstr "Por favor, siga as instruções." | 251 | msgstr "Por favor, siga as instruções." |
| 235 | 252 | ||
| 236 | -#: colab/accounts/templates/accounts/user_update_form.html:110 | 253 | +#: accounts/templates/accounts/user_update_form.html:110 |
| 237 | msgid "profile information" | 254 | msgid "profile information" |
| 238 | msgstr "informações do perfil" | 255 | msgstr "informações do perfil" |
| 239 | 256 | ||
| 240 | -#: colab/accounts/templates/accounts/user_update_form.html:115 | 257 | +#: accounts/templates/accounts/user_update_form.html:115 |
| 241 | msgid "Change your avatar at Gravatar.com" | 258 | msgid "Change your avatar at Gravatar.com" |
| 242 | msgstr "Troque seu avatar em Gravatar.com" | 259 | msgstr "Troque seu avatar em Gravatar.com" |
| 243 | 260 | ||
| 244 | -#: colab/accounts/templates/accounts/user_update_form.html:142 | ||
| 245 | -#: colab/search/utils.py:8 | 261 | +#: accounts/templates/accounts/user_update_form.html:142 search/utils.py:56 |
| 246 | msgid "Emails" | 262 | msgid "Emails" |
| 247 | -msgstr "E-mails" | 263 | +msgstr "Emails" |
| 248 | 264 | ||
| 249 | -#: colab/accounts/templates/accounts/user_update_form.html:151 | 265 | +#: accounts/templates/accounts/user_update_form.html:151 |
| 250 | msgid "Primary" | 266 | msgid "Primary" |
| 251 | msgstr "Primário" | 267 | msgstr "Primário" |
| 252 | 268 | ||
| 253 | -#: colab/accounts/templates/accounts/user_update_form.html:154 | 269 | +#: accounts/templates/accounts/user_update_form.html:154 |
| 254 | msgid "Setting..." | 270 | msgid "Setting..." |
| 255 | msgstr "Definindo..." | 271 | msgstr "Definindo..." |
| 256 | 272 | ||
| 257 | -#: colab/accounts/templates/accounts/user_update_form.html:154 | 273 | +#: accounts/templates/accounts/user_update_form.html:154 |
| 258 | msgid "Set as Primary" | 274 | msgid "Set as Primary" |
| 259 | msgstr "Definir como Primário" | 275 | msgstr "Definir como Primário" |
| 260 | 276 | ||
| 261 | -#: colab/accounts/templates/accounts/user_update_form.html:155 | 277 | +#: accounts/templates/accounts/user_update_form.html:155 |
| 262 | msgid "Deleting..." | 278 | msgid "Deleting..." |
| 263 | -msgstr "Deletando..." | 279 | +msgstr "Apagando..." |
| 264 | 280 | ||
| 265 | -#: colab/accounts/templates/accounts/user_update_form.html:155 | ||
| 266 | -#: colab/accounts/templates/accounts/user_update_form.html:167 | 281 | +#: accounts/templates/accounts/user_update_form.html:155 |
| 282 | +#: accounts/templates/accounts/user_update_form.html:167 | ||
| 267 | msgid "Delete" | 283 | msgid "Delete" |
| 268 | msgstr "Apagar" | 284 | msgstr "Apagar" |
| 269 | 285 | ||
| 270 | -#: colab/accounts/templates/accounts/user_update_form.html:166 | 286 | +#: accounts/templates/accounts/user_update_form.html:166 |
| 271 | msgid "Sending verification..." | 287 | msgid "Sending verification..." |
| 272 | msgstr "Enviando verificação..." | 288 | msgstr "Enviando verificação..." |
| 273 | 289 | ||
| 274 | -#: colab/accounts/templates/accounts/user_update_form.html:166 | 290 | +#: accounts/templates/accounts/user_update_form.html:166 |
| 275 | msgid "Verify" | 291 | msgid "Verify" |
| 276 | msgstr "Verificar" | 292 | msgstr "Verificar" |
| 277 | 293 | ||
| 278 | -#: colab/accounts/templates/accounts/user_update_form.html:174 | 294 | +#: accounts/templates/accounts/user_update_form.html:174 |
| 279 | msgid "Add another email address:" | 295 | msgid "Add another email address:" |
| 280 | -msgstr "Adicionar outro endereço de e-mail" | 296 | +msgstr "Adicionar outro endereço de email" |
| 281 | 297 | ||
| 282 | -#: colab/accounts/templates/accounts/user_update_form.html:177 | 298 | +#: accounts/templates/accounts/user_update_form.html:177 |
| 283 | msgid "Add" | 299 | msgid "Add" |
| 284 | msgstr "Adicionar" | 300 | msgstr "Adicionar" |
| 285 | 301 | ||
| 286 | -#: colab/accounts/templates/accounts/user_update_form.html:207 | ||
| 287 | -msgid "" | ||
| 288 | -"This feature is available only for those who need to change the password for " | ||
| 289 | -"some reason as having an old user with the same username, forgot your " | ||
| 290 | -"password to commit, usage of other XMPP Client for connection. Usually, you " | ||
| 291 | -"won't need to change this password. Only change it if you are sure about " | ||
| 292 | -"what you are doing." | ||
| 293 | -msgstr "" | ||
| 294 | -"Este recurso está disponível para quem precisa trocar a senha por algum " | ||
| 295 | -"motivo como ter um usuário antigo com mesmo nome de usuário, esqueceu da " | ||
| 296 | -"senha antiga para commit, uso de outro cliente XMPP para conexão. " | ||
| 297 | -"Normalmente, você não terá que trocar essa senha. Somente troque essa senha " | ||
| 298 | -"se tiver certeza do que está fazendo." | 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" | ||
| 299 | 308 | ||
| 300 | -#: colab/accounts/templates/accounts/user_update_form.html:217 | 309 | +#: accounts/templates/accounts/user_update_form.html:196 |
| 301 | msgid "Update" | 310 | msgid "Update" |
| 302 | msgstr "Atualizar" | 311 | msgstr "Atualizar" |
| 303 | 312 | ||
| 304 | -#: colab/accounts/templates/registration/login.html:10 | ||
| 305 | -#: colab/accounts/templates/registration/password_change_form_custom.html:11 | ||
| 306 | -#: colab/accounts/templates/registration/password_reset_confirm_custom.html:12 | 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 | ||
| 307 | msgid "Please correct the error below and try again." | 316 | msgid "Please correct the error below and try again." |
| 308 | -msgstr "Por favor, corrija o erro abaixo e tente novamente." | 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" | ||
| 309 | 327 | ||
| 310 | -#: colab/accounts/templates/registration/login.html:56 | 328 | +#: accounts/templates/registration/login.html:56 |
| 311 | msgid "Forgot Password?" | 329 | msgid "Forgot Password?" |
| 312 | -msgstr "Esqueceu sua senha?" | 330 | +msgstr "Esqueci minha Senha?" |
| 313 | 331 | ||
| 314 | -#: colab/accounts/templates/registration/password_change_form_custom.html:55 | ||
| 315 | -#: colab/accounts/templates/registration/password_reset_confirm_custom.html:52 | ||
| 316 | -#, fuzzy | ||
| 317 | -#| msgid "Change Password" | 332 | +#: accounts/templates/registration/password_change_form_custom.html:54 |
| 333 | +#: accounts/templates/registration/password_reset_confirm_custom.html:51 | ||
| 318 | msgid "Change my password" | 334 | msgid "Change my password" |
| 319 | -msgstr "Trocar senha" | 335 | +msgstr "Alterar minha senha" |
| 320 | 336 | ||
| 321 | -#: colab/accounts/templates/registration/password_reset_confirm_custom.html:3 | ||
| 322 | -#, fuzzy | ||
| 323 | -#| msgid "Change Password" | 337 | +#: accounts/templates/registration/password_reset_confirm_custom.html:3 |
| 324 | msgid "Setting New password" | 338 | msgid "Setting New password" |
| 325 | -msgstr "Trocar senha" | 339 | +msgstr "Definir Nova Senha" |
| 326 | 340 | ||
| 327 | -#: colab/accounts/templates/registration/password_reset_form_custom.html:23 | ||
| 328 | -msgid "Forgotten your password? Enter your email address below, and we'll email " | 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 " | ||
| 329 | "instructions for setting a new one." | 344 | "instructions for setting a new one." |
| 330 | -msgstr "Esqueceu sua senha? Entre com seu endereço de email abaixo e nós iremos lhe enviar instruções para configurar uma nova senha" | 345 | +msgstr "Esqueceu sua senha? Digite seu email abaixo, e enviaremos instruções para redefinir sua senha." |
| 331 | 346 | ||
| 332 | -#: colab/accounts/templates/registration/password_reset_form_custom.html:26 | ||
| 333 | -#, fuzzy | ||
| 334 | -#| msgid "An email address" | 347 | +#: accounts/templates/registration/password_reset_form_custom.html:26 |
| 335 | msgid "Email address:" | 348 | msgid "Email address:" |
| 336 | -msgstr "Um endereço de e-mail" | 349 | +msgstr "Endereço de email: " |
| 337 | 350 | ||
| 338 | -#: colab/accounts/templates/registration/password_reset_form_custom.html:37 | 351 | +#: accounts/templates/registration/password_reset_form_custom.html:37 |
| 339 | msgid "Reset password" | 352 | msgid "Reset password" |
| 340 | msgstr "Redefinir senha" | 353 | msgstr "Redefinir senha" |
| 341 | 354 | ||
| 342 | -#: colab/accounts/views.py:180 | 355 | +#: accounts/views.py:126 |
| 343 | msgid "Your profile has been created!" | 356 | msgid "Your profile has been created!" |
| 344 | msgstr "Seu perfil foi criado!" | 357 | msgstr "Seu perfil foi criado!" |
| 345 | 358 | ||
| 346 | -#: colab/accounts/views.py:264 | ||
| 347 | -msgid "Could not change your password. Please, try again later." | ||
| 348 | -msgstr "Não conseguimos alterar sua senha. Por favor, tente novamente mais tarde." | 359 | +#: accounts/views.py:186 |
| 360 | +msgid "Your password was changed." | ||
| 361 | +msgstr "Sua senha foi modificada." | ||
| 349 | 362 | ||
| 350 | -#: colab/accounts/views.py:273 | ||
| 351 | -msgid "You've changed your password successfully!" | ||
| 352 | -msgstr "Senha alterada com sucesso!" | 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." | ||
| 353 | 366 | ||
| 354 | -#: colab/accounts/views.py:279 | ||
| 355 | -msgid "Your password was changed." | ||
| 356 | -msgstr "Sua senha foi alterada" | 367 | +#: home/context_processors.py:20 |
| 368 | +msgid "Fork me!" | ||
| 369 | +msgstr "Fork me!" | ||
| 357 | 370 | ||
| 358 | -#: colab/accounts/views.py:286 | ||
| 359 | -msgid "We've emailed you instructions for setting your password. You should be receiving them shortly." | ||
| 360 | -msgstr "Nos enviamos o email com as intruções para mudança de senha. Em breve você deve recebê-lo." | 371 | +#: plugins/gitlab/models.py:27 |
| 372 | +msgid "Gitlab Project" | ||
| 373 | +msgstr "Projeto no Gitlab" | ||
| 361 | 374 | ||
| 362 | -#: colab/accounts/views.py:292 | ||
| 363 | -msgid "Your password has been set. You may go ahead and log in now." | ||
| 364 | -msgstr "Sua senha foi redefinida. Você pode prosseguir e autenticar agora." | 375 | +#: plugins/gitlab/models.py:28 |
| 376 | +msgid "Gitlab Projects" | ||
| 377 | +msgstr "Projetos no Gitlab" | ||
| 365 | 378 | ||
| 366 | -#: colab/settings.py:160 | ||
| 367 | -msgid "Image" | ||
| 368 | -msgstr "Imagem" | 379 | +#: plugins/gitlab/models.py:54 |
| 380 | +msgid "Gitlab Group" | ||
| 381 | +msgstr "Grupo no Gitlab" | ||
| 369 | 382 | ||
| 370 | -#: colab/search/templates/search/includes/search_filters.html:122 | ||
| 371 | -msgid "Ticket" | ||
| 372 | -msgstr "Tíquetes" | 383 | +#: plugins/gitlab/models.py:55 |
| 384 | +msgid "Gitlab Groups" | ||
| 385 | +msgstr "Grupos no Gitlab" | ||
| 373 | 386 | ||
| 374 | -#: colab/search/forms.py:18 | ||
| 375 | -msgid "Type" | ||
| 376 | -msgstr "Tipo" | 387 | +#: plugins/gitlab/models.py:91 |
| 388 | +msgid "Gitlab Merge Request" | ||
| 389 | +msgstr "Envio de Contribuição no Gitlab" | ||
| 377 | 390 | ||
| 378 | -#: colab/home/context_processors.py:20 | ||
| 379 | -msgid "Fork me!" | ||
| 380 | -msgstr "Fork me!" | 391 | +#: plugins/gitlab/models.py:92 |
| 392 | +msgid "Gitlab Merge Requests" | ||
| 393 | +msgstr "Envio de Contribuições no Gitlab" | ||
| 394 | + | ||
| 395 | +#: plugins/gitlab/models.py:120 | ||
| 396 | +msgid "Gitlab Issue" | ||
| 397 | +msgstr "Tíquete no Gitlab" | ||
| 398 | + | ||
| 399 | +#: plugins/gitlab/models.py:121 | ||
| 400 | +msgid "Gitlab Issues" | ||
| 401 | +msgstr "Tíquetes no Gitlab" | ||
| 381 | 402 | ||
| 382 | -#: colab/rss/feeds.py:13 | 403 | +#: plugins/gitlab/models.py:176 plugins/gitlab/models.py:177 |
| 404 | +msgid "Gitlab Comments" | ||
| 405 | +msgstr "Comentários no Gitlab" | ||
| 406 | + | ||
| 407 | +#: plugins/noosfero/models.py:39 | ||
| 408 | +msgid "Community" | ||
| 409 | +msgstr "Comunidade" | ||
| 410 | + | ||
| 411 | +#: plugins/noosfero/models.py:40 | ||
| 412 | +msgid "Communities" | ||
| 413 | +msgstr "Comunidades" | ||
| 414 | + | ||
| 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 | ||
| 383 | msgid "Latest Discussions" | 424 | msgid "Latest Discussions" |
| 384 | msgstr "Últimas discussões" | 425 | msgstr "Últimas discussões" |
| 385 | 426 | ||
| 386 | -#: colab/rss/feeds.py:32 | 427 | +#: rss/feeds.py:32 |
| 387 | msgid "Discussions Most Relevance" | 428 | msgid "Discussions Most Relevance" |
| 388 | msgstr "Discussões Mais Relevantes" | 429 | msgstr "Discussões Mais Relevantes" |
| 389 | 430 | ||
| 390 | -#: colab/rss/feeds.py:51 | 431 | +#: rss/feeds.py:51 |
| 391 | msgid "Latest collaborations" | 432 | msgid "Latest collaborations" |
| 392 | msgstr "Últimas colaborações" | 433 | msgstr "Últimas colaborações" |
| 393 | 434 | ||
| 394 | -#: colab/search/forms.py:16 colab/search/templates/search/search.html:46 | ||
| 395 | -#: colab/templates/base.html:175 | 435 | +#: search/forms.py:16 search/templates/search/search.html:46 |
| 436 | +#: templates/base.html:89 templates/header.html:29 | ||
| 396 | msgid "Search" | 437 | msgid "Search" |
| 397 | msgstr "Busca" | 438 | msgstr "Busca" |
| 398 | 439 | ||
| 399 | -#: colab/search/forms.py:19 colab/search/views.py:22 | 440 | +#: search/forms.py:18 |
| 441 | +msgid "Type" | ||
| 442 | +msgstr "Tipo" | ||
| 443 | + | ||
| 444 | +#: search/forms.py:19 search/views.py:20 | ||
| 400 | msgid "Author" | 445 | msgid "Author" |
| 401 | msgstr "Autor" | 446 | msgstr "Autor" |
| 402 | 447 | ||
| 403 | -#: colab/search/forms.py:20 | 448 | +#: search/forms.py:20 |
| 404 | msgid "Modified by" | 449 | msgid "Modified by" |
| 405 | msgstr "Modificado por" | 450 | msgstr "Modificado por" |
| 406 | 451 | ||
| 407 | -#: colab/search/forms.py:22 | 452 | +#: search/forms.py:22 |
| 408 | msgid "Status" | 453 | msgid "Status" |
| 409 | msgstr "Status" | 454 | msgstr "Status" |
| 410 | 455 | ||
| 411 | -#: colab/search/forms.py:26 colab/search/views.py:25 | 456 | +#: search/forms.py:26 search/views.py:23 |
| 412 | msgid "Mailinglist" | 457 | msgid "Mailinglist" |
| 413 | -msgstr "Grupo" | 458 | +msgstr "Lista de discussão" |
| 414 | 459 | ||
| 415 | -#: colab/search/forms.py:30 | 460 | +#: search/forms.py:30 |
| 416 | msgid "Milestone" | 461 | msgid "Milestone" |
| 417 | -msgstr "Etapa" | 462 | +msgstr "Marco" |
| 418 | 463 | ||
| 419 | -#: colab/search/forms.py:31 | 464 | +#: search/forms.py:31 |
| 420 | msgid "Priority" | 465 | msgid "Priority" |
| 421 | msgstr "Prioridade" | 466 | msgstr "Prioridade" |
| 422 | 467 | ||
| 423 | -#: colab/search/forms.py:32 | 468 | +#: search/forms.py:32 |
| 424 | msgid "Component" | 469 | msgid "Component" |
| 425 | msgstr "Componente" | 470 | msgstr "Componente" |
| 426 | 471 | ||
| 427 | -#: colab/search/forms.py:33 | 472 | +#: search/forms.py:33 |
| 428 | msgid "Severity" | 473 | msgid "Severity" |
| 429 | -msgstr "Seriedade" | 474 | +msgstr "Severidade" |
| 430 | 475 | ||
| 431 | -#: colab/search/forms.py:34 | 476 | +#: search/forms.py:34 |
| 432 | msgid "Reporter" | 477 | msgid "Reporter" |
| 433 | msgstr "Relator" | 478 | msgstr "Relator" |
| 434 | 479 | ||
| 435 | -#: colab/search/forms.py:35 | 480 | +#: search/forms.py:35 |
| 436 | msgid "Keywords" | 481 | msgid "Keywords" |
| 437 | -msgstr "Palavras chaves" | 482 | +msgstr "Palavras chave" |
| 438 | 483 | ||
| 439 | -#: colab/search/forms.py:36 | 484 | +#: search/forms.py:36 |
| 440 | msgid "Collaborators" | 485 | msgid "Collaborators" |
| 441 | msgstr "Colaboradores" | 486 | msgstr "Colaboradores" |
| 442 | 487 | ||
| 443 | -#: colab/search/forms.py:37 colab/templates/base.html:107 | 488 | +#: search/forms.py:37 |
| 444 | msgid "Repository" | 489 | msgid "Repository" |
| 445 | msgstr "Repositório" | 490 | msgstr "Repositório" |
| 446 | 491 | ||
| 447 | -#: colab/search/forms.py:38 | ||
| 448 | -msgid "Username" | ||
| 449 | -msgstr "Usuário" | ||
| 450 | - | ||
| 451 | -#: colab/search/forms.py:39 | 492 | +#: search/forms.py:39 |
| 452 | msgid "Name" | 493 | msgid "Name" |
| 453 | msgstr "Nome" | 494 | msgstr "Nome" |
| 454 | 495 | ||
| 455 | -#: colab/search/forms.py:40 | 496 | +#: search/forms.py:40 |
| 456 | msgid "Institution" | 497 | msgid "Institution" |
| 457 | msgstr "Instituição" | 498 | msgstr "Instituição" |
| 458 | 499 | ||
| 459 | -#: colab/search/forms.py:41 | 500 | +#: search/forms.py:41 |
| 460 | msgid "Role" | 501 | msgid "Role" |
| 461 | -msgstr "Cargo" | 502 | +msgstr "Papel" |
| 462 | 503 | ||
| 463 | -#: colab/search/forms.py:42 | ||
| 464 | -#: colab/search/templates/search/includes/search_filters.html:154 | ||
| 465 | -#: colab/search/templates/search/includes/search_filters.html:156 | ||
| 466 | -#: colab/search/templates/search/includes/search_filters.html:188 | ||
| 467 | -#: colab/search/templates/search/includes/search_filters.html:189 | 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 | ||
| 468 | msgid "Since" | 508 | msgid "Since" |
| 469 | msgstr "Desde" | 509 | msgstr "Desde" |
| 470 | 510 | ||
| 471 | -#: colab/search/forms.py:43 | ||
| 472 | -#: colab/search/templates/search/includes/search_filters.html:163 | ||
| 473 | -#: colab/search/templates/search/includes/search_filters.html:165 | ||
| 474 | -#: colab/search/templates/search/includes/search_filters.html:192 | ||
| 475 | -#: colab/search/templates/search/includes/search_filters.html:193 | 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 | ||
| 476 | msgid "Until" | 515 | msgid "Until" |
| 477 | msgstr "Até" | 516 | msgstr "Até" |
| 478 | 517 | ||
| 479 | -#: colab/search/forms.py:44 | 518 | +#: search/forms.py:44 |
| 480 | msgid "Filename" | 519 | msgid "Filename" |
| 481 | msgstr "Nome do arquivo" | 520 | msgstr "Nome do arquivo" |
| 482 | 521 | ||
| 483 | -#: colab/search/forms.py:45 | 522 | +#: search/forms.py:45 |
| 484 | msgid "Used by" | 523 | msgid "Used by" |
| 485 | msgstr "Usado por" | 524 | msgstr "Usado por" |
| 486 | 525 | ||
| 487 | -#: colab/search/forms.py:46 | 526 | +#: search/forms.py:46 |
| 488 | msgid "File type" | 527 | msgid "File type" |
| 489 | msgstr "Tipo do arquivo" | 528 | msgstr "Tipo do arquivo" |
| 490 | 529 | ||
| 491 | -#: colab/search/forms.py:47 | 530 | +#: search/forms.py:47 |
| 492 | msgid "Size" | 531 | msgid "Size" |
| 493 | msgstr "Tamanho" | 532 | msgstr "Tamanho" |
| 494 | 533 | ||
| 495 | -#: colab/search/templates/search/includes/search_filters.html:5 | ||
| 496 | -#: colab/search/templates/search/includes/search_filters.html:33 | ||
| 497 | -#: colab/search/templates/search/includes/search_filters.html:51 | ||
| 498 | -#: colab/search/templates/search/includes/search_filters.html:69 | 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 | ||
| 499 | msgid "Remove filter" | 538 | msgid "Remove filter" |
| 500 | msgstr "Remover filtro" | 539 | msgstr "Remover filtro" |
| 501 | 540 | ||
| 502 | -#: colab/search/templates/search/includes/search_filters.html:88 | ||
| 503 | -#: colab/search/templates/search/includes/search_filters.html:174 | ||
| 504 | -#: colab/search/templates/search/includes/search_filters.html:198 | 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 | ||
| 505 | msgid "Filter" | 544 | msgid "Filter" |
| 506 | msgstr "Filtro" | 545 | msgstr "Filtro" |
| 507 | 546 | ||
| 508 | -#: colab/search/templates/search/includes/search_filters.html:94 | 547 | +#: search/templates/search/includes/search_filters.html:94 |
| 509 | msgid "Sort by" | 548 | msgid "Sort by" |
| 510 | msgstr "Ordenar por" | 549 | msgstr "Ordenar por" |
| 511 | 550 | ||
| 512 | -#: colab/search/templates/search/includes/search_filters.html:111 | 551 | +#: search/templates/search/includes/search_filters.html:111 |
| 513 | msgid "Types" | 552 | msgid "Types" |
| 514 | msgstr "Tipos" | 553 | msgstr "Tipos" |
| 515 | 554 | ||
| 516 | -#: colab/search/templates/search/includes/search_filters.html:118 | ||
| 517 | -#: colab/search/utils.py:7 colab/templates/open-data.html:130 | ||
| 518 | -msgid "Wiki" | ||
| 519 | -msgstr "Wiki" | ||
| 520 | - | ||
| 521 | -#: colab/search/templates/search/includes/search_filters.html:126 | ||
| 522 | -msgid "Changeset" | ||
| 523 | -msgstr "Conjunto de Mudanças" | ||
| 524 | - | ||
| 525 | -#: colab/search/templates/search/includes/search_filters.html:130 | ||
| 526 | -msgid "User" | ||
| 527 | -msgstr "Usuário" | ||
| 528 | - | ||
| 529 | -#: colab/search/templates/search/includes/search_filters.html:134 | ||
| 530 | -msgid "Attachment" | ||
| 531 | -msgstr "Anexo" | ||
| 532 | - | ||
| 533 | -#: colab/search/templates/search/includes/search_filters.html:139 | ||
| 534 | -#: colab/search/views.py:20 | 555 | +#: search/templates/search/includes/search_filters.html:117 search/views.py:18 |
| 535 | msgid "Discussion" | 556 | msgid "Discussion" |
| 536 | -msgstr "Discussões" | 557 | +msgstr "Discussão" |
| 537 | 558 | ||
| 538 | -#: colab/search/templates/search/search.html:5 | 559 | +#: search/templates/search/search.html:5 |
| 539 | msgid "search" | 560 | msgid "search" |
| 540 | msgstr "busca" | 561 | msgstr "busca" |
| 541 | 562 | ||
| 542 | -#: colab/search/templates/search/search.html:51 | 563 | +#: search/templates/search/search.html:51 |
| 543 | msgid "documents found" | 564 | msgid "documents found" |
| 544 | msgstr "documentos encontrados" | 565 | msgstr "documentos encontrados" |
| 545 | 566 | ||
| 546 | -#: colab/search/templates/search/search.html:62 | 567 | +#: search/templates/search/search.html:62 |
| 547 | msgid "Search here" | 568 | msgid "Search here" |
| 548 | msgstr "Pesquise aqui" | 569 | msgstr "Pesquise aqui" |
| 549 | 570 | ||
| 550 | -#: colab/search/templates/search/search.html:74 | ||
| 551 | -#: colab/search/templates/search/search.html:84 | 571 | +#: search/templates/search/search.html:74 |
| 572 | +#: search/templates/search/search.html:84 | ||
| 552 | msgid "Filters" | 573 | msgid "Filters" |
| 553 | msgstr "Filtros" | 574 | msgstr "Filtros" |
| 554 | 575 | ||
| 555 | -#: colab/search/templates/search/search.html:105 | 576 | +#: search/templates/search/search.html:105 |
| 556 | msgid "No results for your search." | 577 | msgid "No results for your search." |
| 557 | msgstr "Não há resultados para sua busca." | 578 | msgstr "Não há resultados para sua busca." |
| 558 | 579 | ||
| 559 | -#: colab/search/templates/search/search.html:107 | 580 | +#: search/templates/search/search.html:107 |
| 560 | msgid "You are searching for" | 581 | msgid "You are searching for" |
| 561 | msgstr "Você está procurando por" | 582 | msgstr "Você está procurando por" |
| 562 | 583 | ||
| 563 | -#: colab/search/utils.py:9 colab/settings.py:157 | ||
| 564 | -msgid "Code" | ||
| 565 | -msgstr "Código" | ||
| 566 | - | ||
| 567 | -#: colab/search/utils.py:10 | ||
| 568 | -msgid "Tickets" | ||
| 569 | -msgstr "Tíquetes" | ||
| 570 | - | ||
| 571 | -#: colab/search/utils.py:11 | ||
| 572 | -msgid "Attachments" | ||
| 573 | -msgstr "Anexos" | ||
| 574 | - | ||
| 575 | -#: colab/settings.py:115 | 584 | +#: settings.py:113 |
| 576 | msgid "English" | 585 | msgid "English" |
| 577 | msgstr "Inglês" | 586 | msgstr "Inglês" |
| 578 | 587 | ||
| 579 | -#: colab/settings.py:116 | 588 | +#: settings.py:114 |
| 580 | msgid "Portuguese" | 589 | msgid "Portuguese" |
| 581 | msgstr "Português" | 590 | msgstr "Português" |
| 582 | 591 | ||
| 583 | -#: colab/settings.py:117 | 592 | +#: settings.py:115 |
| 584 | msgid "Spanish" | 593 | msgid "Spanish" |
| 585 | msgstr "Espanhol" | 594 | msgstr "Espanhol" |
| 586 | 595 | ||
| 587 | -#: colab/settings.py:140 | 596 | +#: settings.py:138 |
| 588 | msgid "Recent activity" | 597 | msgid "Recent activity" |
| 589 | msgstr "Atividade recente" | 598 | msgstr "Atividade recente" |
| 590 | 599 | ||
| 591 | -#: colab/settings.py:144 | 600 | +#: settings.py:142 |
| 592 | msgid "Relevance" | 601 | msgid "Relevance" |
| 593 | msgstr "Relevância" | 602 | msgstr "Relevância" |
| 594 | 603 | ||
| 595 | -#: colab/settings.py:153 | 604 | +#: settings.py:151 |
| 596 | msgid "Document" | 605 | msgid "Document" |
| 597 | msgstr "Documento" | 606 | msgstr "Documento" |
| 598 | 607 | ||
| 599 | -#: colab/settings.py:155 | 608 | +#: settings.py:153 |
| 600 | msgid "Presentation" | 609 | msgid "Presentation" |
| 601 | msgstr "Apresentação" | 610 | msgstr "Apresentação" |
| 602 | 611 | ||
| 603 | -#: colab/settings.py:156 | 612 | +#: settings.py:154 |
| 604 | msgid "Text" | 613 | msgid "Text" |
| 605 | msgstr "Texto" | 614 | msgstr "Texto" |
| 606 | 615 | ||
| 607 | -#: colab/settings.py:159 | 616 | +#: settings.py:155 |
| 617 | +msgid "Code" | ||
| 618 | +msgstr "Código" | ||
| 619 | + | ||
| 620 | +#: settings.py:157 | ||
| 608 | msgid "Compressed" | 621 | msgid "Compressed" |
| 609 | msgstr "Compactado" | 622 | msgstr "Compactado" |
| 610 | 623 | ||
| 611 | -#: colab/settings.py:162 | 624 | +#: settings.py:158 |
| 625 | +msgid "Image" | ||
| 626 | +msgstr "Imagem" | ||
| 627 | + | ||
| 628 | +#: settings.py:160 | ||
| 612 | msgid "Spreadsheet" | 629 | msgid "Spreadsheet" |
| 613 | msgstr "Planilha" | 630 | msgstr "Planilha" |
| 614 | 631 | ||
| 615 | -#: colab/settings.py:260 | ||
| 616 | -msgid "Planet Colab" | ||
| 617 | -msgstr "Planet Colab" | ||
| 618 | - | ||
| 619 | -#: colab/settings.py:261 | ||
| 620 | -msgid "Colab blog aggregator" | ||
| 621 | -msgstr "Agregador de blog Colab" | ||
| 622 | - | ||
| 623 | -#: colab/settings.py:295 | ||
| 624 | -msgid "One Time Snippet" | ||
| 625 | -msgstr "Uma única visualização" | ||
| 626 | - | ||
| 627 | -#: colab/settings.py:296 | ||
| 628 | -msgid "In one hour" | ||
| 629 | -msgstr "Em uma hora" | ||
| 630 | - | ||
| 631 | -#: colab/settings.py:297 | ||
| 632 | -msgid "In one week" | ||
| 633 | -msgstr "Em uma semana" | ||
| 634 | - | ||
| 635 | -#: colab/settings.py:298 | ||
| 636 | -msgid "In one month" | ||
| 637 | -msgstr "Em um mês" | ||
| 638 | - | ||
| 639 | -#: colab/settings.py:299 | ||
| 640 | -msgid "Never" | ||
| 641 | -msgstr "Nunca" | ||
| 642 | - | ||
| 643 | -#: colab/templates/404.html:5 | 632 | +#: templates/404.html:5 |
| 644 | msgid "Not found. Keep searching! :)" | 633 | msgid "Not found. Keep searching! :)" |
| 645 | msgstr "Não encontrado. Continue procurando! :)" | 634 | msgstr "Não encontrado. Continue procurando! :)" |
| 646 | 635 | ||
| 647 | -#: colab/templates/500.html:2 | 636 | +#: templates/500.html:2 |
| 648 | msgid "Ooopz... something went wrong!" | 637 | msgid "Ooopz... something went wrong!" |
| 649 | -msgstr "Opa... algo saiu errado!" | 638 | +msgstr "Ooopa... algo saiu errado!" |
| 650 | 639 | ||
| 651 | -#: colab/templates/base.html:91 | ||
| 652 | -msgid "Timeline" | ||
| 653 | -msgstr "Linha do Tempo" | ||
| 654 | - | ||
| 655 | -#: colab/templates/base.html:96 colab/templates/base.html.py:114 | 640 | +#: templates/base.html:83 templates/header.html:21 |
| 656 | msgid "Groups" | 641 | msgid "Groups" |
| 657 | msgstr "Grupos" | 642 | msgstr "Grupos" |
| 658 | 643 | ||
| 659 | -#: colab/templates/base.html:101 | ||
| 660 | -msgid "Blogs" | ||
| 661 | -msgstr "Blogs" | ||
| 662 | - | ||
| 663 | -#: colab/templates/base.html:109 | ||
| 664 | -msgid "Public Projects" | ||
| 665 | -msgstr "Projetos Públicos" | ||
| 666 | - | ||
| 667 | -#: colab/templates/base.html:111 colab/templates/base.html.py:140 | ||
| 668 | -msgid "Profile" | ||
| 669 | -msgstr "Perfil" | ||
| 670 | - | ||
| 671 | -#: colab/templates/base.html:112 | ||
| 672 | -msgid "New Project" | ||
| 673 | -msgstr "Novo Projeto" | ||
| 674 | - | ||
| 675 | -#: colab/templates/base.html:113 | ||
| 676 | -msgid "Projects" | ||
| 677 | -msgstr "Projetos" | ||
| 678 | - | ||
| 679 | -#: colab/templates/base.html:115 | ||
| 680 | -msgid "Issues" | ||
| 681 | -msgstr "Tiquetes" | ||
| 682 | - | ||
| 683 | -#: colab/templates/base.html:116 | ||
| 684 | -msgid "Merge Requests" | ||
| 685 | -msgstr "Merge Requests" | ||
| 686 | - | ||
| 687 | -#: colab/templates/base.html:124 | ||
| 688 | -msgid "Social" | ||
| 689 | -msgstr "Social" | ||
| 690 | - | ||
| 691 | -#: colab/templates/base.html:129 | ||
| 692 | -msgid "Users" | ||
| 693 | -msgstr "Usuários" | ||
| 694 | - | ||
| 695 | -#: colab/templates/base.html:134 | ||
| 696 | -msgid "Communities" | ||
| 697 | -msgstr "Comunidades" | ||
| 698 | - | ||
| 699 | -#: colab/templates/base.html:145 | ||
| 700 | -msgid "Control panel" | ||
| 701 | -msgstr "Painel de Controle" | ||
| 702 | - | ||
| 703 | -#: colab/templates/base.html:154 | ||
| 704 | -msgid "Contribute" | ||
| 705 | -msgstr "Contribua" | ||
| 706 | - | ||
| 707 | -#: colab/templates/base.html:158 | ||
| 708 | -msgid "New Wiki Page" | ||
| 709 | -msgstr "Nova Página Wiki" | ||
| 710 | - | ||
| 711 | -#: colab/templates/base.html:160 | ||
| 712 | -msgid "View Tickets" | ||
| 713 | -msgstr "Ver Tiquetes" | ||
| 714 | - | ||
| 715 | -#: colab/templates/base.html:162 | ||
| 716 | -msgid "New Ticket" | ||
| 717 | -msgstr "Novo Tíquete" | ||
| 718 | - | ||
| 719 | -#: colab/templates/base.html:164 | ||
| 720 | -msgid "Roadmap" | ||
| 721 | -msgstr "Planejamento" | ||
| 722 | - | ||
| 723 | -#: colab/templates/base.html:167 | ||
| 724 | -msgid "Browse Source" | ||
| 725 | -msgstr "Códigos Fontes" | ||
| 726 | - | ||
| 727 | -#: colab/templates/base.html:169 | ||
| 728 | -msgid "Continuous Integration" | ||
| 729 | -msgstr "Integração Contínua" | ||
| 730 | - | ||
| 731 | -#: colab/templates/base.html:213 | 644 | +#: templates/base.html:119 templates/header.html:59 |
| 732 | msgid "My Profile" | 645 | msgid "My Profile" |
| 733 | msgstr "Meu Perfil" | 646 | msgstr "Meu Perfil" |
| 734 | 647 | ||
| 735 | -#: colab/templates/base.html:214 colab/templates/base.html.py:218 | 648 | +#: templates/base.html:120 templates/base.html.py:121 templates/header.html:60 |
| 649 | +#: templates/header.html.py:61 | ||
| 736 | msgid "Logout" | 650 | msgid "Logout" |
| 737 | msgstr "Sair" | 651 | msgstr "Sair" |
| 738 | 652 | ||
| 739 | -#: colab/templates/base.html:230 colab/templates/base.html.py:233 | 653 | +#: templates/base.html:132 templates/base.html.py:135 templates/header.html:72 |
| 654 | +#: templates/header.html.py:75 | ||
| 740 | msgid "Search here..." | 655 | msgid "Search here..." |
| 741 | msgstr "Pesquise aqui..." | 656 | msgstr "Pesquise aqui..." |
| 742 | 657 | ||
| 743 | -#: colab/templates/base.html:247 | 658 | +#: templates/base.html:149 |
| 744 | msgid "The login has failed. Please, try again." | 659 | msgid "The login has failed. Please, try again." |
| 745 | msgstr "O login falhou. Por favor, tente novamente." | 660 | msgstr "O login falhou. Por favor, tente novamente." |
| 746 | 661 | ||
| 747 | -#: colab/templates/base.html:272 | 662 | +#: templates/footer.html:6 |
| 748 | msgid "Last email imported at" | 663 | msgid "Last email imported at" |
| 749 | -msgstr "Último e-mail importado em" | 664 | +msgstr "Último email importado em" |
| 750 | 665 | ||
| 751 | -#: colab/templates/base.html:279 | 666 | +#: templates/footer.html:12 |
| 752 | msgid "The contents of this site is published under license" | 667 | msgid "The contents of this site is published under license" |
| 753 | msgstr "O conteúdo deste site está publicado sob a licença" | 668 | msgstr "O conteúdo deste site está publicado sob a licença" |
| 754 | 669 | ||
| 755 | -#: colab/templates/base.html:282 | 670 | +#: templates/footer.html:15 |
| 756 | msgid "Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual" | 671 | msgid "Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual" |
| 757 | msgstr "Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual" | 672 | msgstr "Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual" |
| 758 | 673 | ||
| 759 | -#: colab/templates/dpaste/snippet_details.html:37 | ||
| 760 | -#, fuzzy | ||
| 761 | -#| msgid "Comparison" | ||
| 762 | -msgid "Compare" | ||
| 763 | -msgstr "Comparação" | ||
| 764 | - | ||
| 765 | -#: colab/templates/dpaste/snippet_details.html:47 | ||
| 766 | -#, python-format | ||
| 767 | -msgid "Expires in: %(date)s" | ||
| 768 | -msgstr "Expira em: %(date)s" | ||
| 769 | - | ||
| 770 | -#: colab/templates/dpaste/snippet_details.html:49 | ||
| 771 | -msgid "Snippet never expires" | ||
| 772 | -msgstr "Snippet nunca expira" | ||
| 773 | - | ||
| 774 | -#: colab/templates/dpaste/snippet_details.html:51 | ||
| 775 | -#, fuzzy | ||
| 776 | -#| msgid "One Time Snippet" | ||
| 777 | -msgid "One-time snippet" | ||
| 778 | -msgstr "Uma única visualização" | ||
| 779 | - | ||
| 780 | -#: colab/templates/dpaste/snippet_details.html:56 | ||
| 781 | -msgid "Really delete this snippet?" | ||
| 782 | -msgstr "Deseja realmente deletar esse snippet?" | ||
| 783 | - | ||
| 784 | -#: colab/templates/dpaste/snippet_details.html:58 | ||
| 785 | -#, fuzzy | ||
| 786 | -#| msgid "Delete" | ||
| 787 | -msgid "Delete Now" | ||
| 788 | -msgstr "Apagar" | ||
| 789 | - | ||
| 790 | -#: colab/templates/dpaste/snippet_details.html:63 | ||
| 791 | -#: colab/templates/dpaste/snippet_details.html:65 | ||
| 792 | -#, fuzzy | ||
| 793 | -#| msgid "One Time Snippet" | ||
| 794 | -msgid "Compare Snippets" | ||
| 795 | -msgstr "Uma única visualização" | ||
| 796 | - | ||
| 797 | -#: colab/templates/dpaste/snippet_details.html:69 | ||
| 798 | -#: colab/templates/dpaste/snippet_details.html:71 | ||
| 799 | -msgid "View Raw" | ||
| 800 | -msgstr "Ver código" | ||
| 801 | - | ||
| 802 | -#: colab/templates/dpaste/snippet_details.html:75 | ||
| 803 | -msgid "Gist" | ||
| 804 | -msgstr "Gist" | ||
| 805 | - | ||
| 806 | -#: colab/templates/dpaste/snippet_details.html:88 | ||
| 807 | -msgid "This is a one-time snippet." | ||
| 808 | -msgstr "Esste é um snippet que será usado apenas uma vez." | ||
| 809 | - | ||
| 810 | -#: colab/templates/dpaste/snippet_details.html:90 | ||
| 811 | -msgid "It will automatically get deleted after {{ remaining }} further views." | ||
| 812 | -msgstr "Isso será automaticamente deletado depois de {{ remaining }} visualizações." | ||
| 813 | - | ||
| 814 | -#: colab/templates/dpaste/snippet_details.html:92 | ||
| 815 | -msgid "It will automatically get deleted after the next view." | ||
| 816 | -msgstr "Isso será automaticamente deletado após a próxima visualização." | ||
| 817 | - | ||
| 818 | -#: colab/templates/dpaste/snippet_details.html:94 | ||
| 819 | -msgid "It cannot be viewed again." | ||
| 820 | -msgstr "Isso não pode ser visto novamente." | ||
| 821 | - | ||
| 822 | -#: colab/templates/dpaste/snippet_details.html:109 | ||
| 823 | -msgid "Reply to this snippet" | ||
| 824 | -msgstr "Responda esse snippet" | ||
| 825 | - | ||
| 826 | -#: colab/templates/dpaste/snippet_diff.html:5 | ||
| 827 | -#, python-format | ||
| 828 | -msgid "" | ||
| 829 | -"\n" | ||
| 830 | -" Diff between <a href=\"%(filea_url)s\">#%(filea_id)s</a> and <a href=" | ||
| 831 | -"\"%(fileb_url)s\">#%(fileb_id)s</a>\n" | ||
| 832 | -" " | ||
| 833 | -msgstr "" | ||
| 834 | -"\n" | ||
| 835 | - " Diferença entre <a href=\"%(filea_url)s\">#%(filea_id)s</a> e <a href=" | ||
| 836 | - "\"%(fileb_url)s\">#%(fileb_id)s</a>\n" | ||
| 837 | - " " | ||
| 838 | - | ||
| 839 | -#: colab/templates/dpaste/snippet_form.html:28 | ||
| 840 | -msgid "Paste it" | 674 | +#: templates/header.html:26 |
| 675 | +msgid "Paste" | ||
| 841 | msgstr "Cole aqui" | 676 | msgstr "Cole aqui" |
| 842 | 677 | ||
| 843 | -#: colab/templates/home.html:17 | 678 | +#: templates/home.html:17 |
| 844 | msgid "Latest Collaborations" | 679 | msgid "Latest Collaborations" |
| 845 | msgstr "Últimas Colaborações" | 680 | msgstr "Últimas Colaborações" |
| 846 | 681 | ||
| 847 | -#: colab/templates/home.html:21 | 682 | +#: templates/home.html:21 |
| 848 | msgid "RSS - Latest collaborations" | 683 | msgid "RSS - Latest collaborations" |
| 849 | msgstr "RSS - Últimas Colaborações" | 684 | msgstr "RSS - Últimas Colaborações" |
| 850 | 685 | ||
| 851 | -#: colab/templates/home.html:30 | 686 | +#: templates/home.html:30 |
| 852 | msgid "View more collaborations..." | 687 | msgid "View more collaborations..." |
| 853 | msgstr "Ver mais colaborações..." | 688 | msgstr "Ver mais colaborações..." |
| 854 | 689 | ||
| 855 | -#: colab/templates/home.html:37 | 690 | +#: templates/home.html:37 |
| 856 | msgid "Collaboration Graph" | 691 | msgid "Collaboration Graph" |
| 857 | msgstr "Gráfico de Colaborações" | 692 | msgstr "Gráfico de Colaborações" |
| 858 | 693 | ||
| 859 | -#: colab/templates/home.html:48 | 694 | +#: templates/home.html:48 |
| 860 | msgid "Most Relevant Threads" | 695 | msgid "Most Relevant Threads" |
| 861 | msgstr "Discussões Mais Relevantes" | 696 | msgstr "Discussões Mais Relevantes" |
| 862 | 697 | ||
| 863 | -#: colab/templates/home.html:52 | 698 | +#: templates/home.html:52 |
| 864 | msgid "RSS - Most Relevant Threads" | 699 | msgid "RSS - Most Relevant Threads" |
| 865 | msgstr "RSS - Discussões Mais Relevantes" | 700 | msgstr "RSS - Discussões Mais Relevantes" |
| 866 | 701 | ||
| 867 | -#: colab/templates/home.html:60 colab/templates/home.html.py:79 | 702 | +#: templates/home.html:60 templates/home.html.py:79 |
| 868 | msgid "View more discussions..." | 703 | msgid "View more discussions..." |
| 869 | msgstr "Ver mais discussões..." | 704 | msgstr "Ver mais discussões..." |
| 870 | 705 | ||
| 871 | -#: colab/templates/home.html:67 | 706 | +#: templates/home.html:67 |
| 872 | msgid "Latest Threads" | 707 | msgid "Latest Threads" |
| 873 | msgstr "Últimas Discussões" | 708 | msgstr "Últimas Discussões" |
| 874 | 709 | ||
| 875 | -#: colab/templates/home.html:71 | 710 | +#: templates/home.html:71 |
| 876 | msgid "RSS - Latest Threads" | 711 | msgid "RSS - Latest Threads" |
| 877 | msgstr "RSS - Últimas Discussões" | 712 | msgstr "RSS - Últimas Discussões" |
| 878 | - | ||
| 879 | -#: colab/templates/open-data.html:6 | ||
| 880 | -msgid "OpenData - Communities" | ||
| 881 | -msgstr "OpenData - Comunidades" | ||
| 882 | - | ||
| 883 | -#: colab/templates/open-data.html:7 | ||
| 884 | -msgid "" | ||
| 885 | -"If you are interested in any other data that is not provided by this API, " | ||
| 886 | -"please contact us via the ticketing system (you must be registered in order " | ||
| 887 | -"to create a ticket)." | ||
| 888 | -msgstr "" | ||
| 889 | -"Se você estiver interessado por qualquer outra informação não provida por " | ||
| 890 | -"esta API, por favor nos contacte através do nosso sistema de tíquetes (você " | ||
| 891 | -"deve estar logado para conseguir criar um tíquete). " | ||
| 892 | - | ||
| 893 | -#: colab/templates/open-data.html:9 | ||
| 894 | -msgid "Retrieving data via API" | ||
| 895 | -msgstr "Recuperando informação através da API" | ||
| 896 | - | ||
| 897 | -#: colab/templates/open-data.html:10 | ||
| 898 | -msgid "Colab API works through HTTP/REST, always returning JSON objects." | ||
| 899 | -msgstr "" | ||
| 900 | -"A API do Colab funciona com a utilização de HTTP/REST e sempre retorna " | ||
| 901 | -"objetos JSON." | ||
| 902 | - | ||
| 903 | -#: colab/templates/open-data.html:12 | ||
| 904 | -msgid "The base API URL is" | ||
| 905 | -msgstr "A URL base da API é" | ||
| 906 | - | ||
| 907 | -#: colab/templates/open-data.html:19 | ||
| 908 | -msgid "" | ||
| 909 | -"Each model listed below has a resource_uri field available, which is the " | ||
| 910 | -"object's data URI." | ||
| 911 | -msgstr "" | ||
| 912 | -"Cada modelo listado abaixo tem um resource_uri que representa a URI do objeto" | ||
| 913 | - | ||
| 914 | -#: colab/templates/open-data.html:20 | ||
| 915 | -msgid "" | ||
| 916 | -"The following list contains the available models to retrieve data and its " | ||
| 917 | -"fields available for filtering" | ||
| 918 | -msgstr "" | ||
| 919 | -"A lista abaixo contém a lista de modelo disponíveis para pesquisa e os " | ||
| 920 | -"campos disponíveis para filtro" | ||
| 921 | - | ||
| 922 | -#: colab/templates/open-data.html:24 colab/templates/open-data.html.py:39 | ||
| 923 | -#: colab/templates/open-data.html:50 colab/templates/open-data.html.py:62 | ||
| 924 | -#: colab/templates/open-data.html:74 colab/templates/open-data.html.py:95 | ||
| 925 | -msgid "Fields" | ||
| 926 | -msgstr "Campos" | ||
| 927 | - | ||
| 928 | -#: colab/templates/open-data.html:25 | ||
| 929 | -msgid "" | ||
| 930 | -"The email field is not shown for user's privacy, but you can use it to filter" | ||
| 931 | -msgstr "" | ||
| 932 | -"O campo email não é exibido por uma questão de privacidade do usuário, por " | ||
| 933 | -"outro lado ele poderá ser utilizado em filtros" | ||
| 934 | - | ||
| 935 | -#: colab/templates/open-data.html:27 | ||
| 936 | -msgid "The user's username" | ||
| 937 | -msgstr "O username do usuário" | ||
| 938 | - | ||
| 939 | -#: colab/templates/open-data.html:28 | ||
| 940 | -msgid "The user's email address" | ||
| 941 | -msgstr "O endereço e-mail do usuário" | ||
| 942 | - | ||
| 943 | -#: colab/templates/open-data.html:29 | ||
| 944 | -msgid "What is the user's institution" | ||
| 945 | -msgstr "Instituição do usuário" | ||
| 946 | - | ||
| 947 | -#: colab/templates/open-data.html:30 | ||
| 948 | -msgid "What is the user's role" | ||
| 949 | -msgstr "Posição do usuário" | ||
| 950 | - | ||
| 951 | -#: colab/templates/open-data.html:31 | ||
| 952 | -msgid "The user's first name" | ||
| 953 | -msgstr "Primeiro nome do usuário" | ||
| 954 | - | ||
| 955 | -#: colab/templates/open-data.html:32 | ||
| 956 | -msgid "The user's last name" | ||
| 957 | -msgstr "Último nome do usuário" | ||
| 958 | - | ||
| 959 | -#: colab/templates/open-data.html:33 | ||
| 960 | -msgid "A mini bio of the user" | ||
| 961 | -msgstr "O mini bio do usuário" | ||
| 962 | - | ||
| 963 | -#: colab/templates/open-data.html:40 | ||
| 964 | -msgid "" | ||
| 965 | -"The address field is not shown for user's privacy, but you can use it to " | ||
| 966 | -"filter" | ||
| 967 | -msgstr "" | ||
| 968 | -"O campo email não é exibido por uma questão de privacidade do usuário, por " | ||
| 969 | -"outro lado ele poderá ser utilizado em filtros" | ||
| 970 | - | ||
| 971 | -#: colab/templates/open-data.html:42 | ||
| 972 | -msgid "It has a relationshop with the user described above" | ||
| 973 | -msgstr "Tem um relacionamento com usuário como descrito acima" | ||
| 974 | - | ||
| 975 | -#: colab/templates/open-data.html:43 | ||
| 976 | -msgid "An email address" | ||
| 977 | -msgstr "Um endereço de e-mail" | ||
| 978 | - | ||
| 979 | -#: colab/templates/open-data.html:44 | ||
| 980 | -msgid "The user's real name" | ||
| 981 | -msgstr "O nome real do usuário" | ||
| 982 | - | ||
| 983 | -#: colab/templates/open-data.html:52 | ||
| 984 | -msgid "It has a relationship with the emailaddress described above" | ||
| 985 | -msgstr "Tem um relacionamento com emailaddress como descrito acima" | ||
| 986 | - | ||
| 987 | -#: colab/templates/open-data.html:53 | ||
| 988 | -msgid "The message's body" | ||
| 989 | -msgstr "O corpo da mensagem" | ||
| 990 | - | ||
| 991 | -#: colab/templates/open-data.html:54 | ||
| 992 | -msgid "The message's subject" | ||
| 993 | -msgstr "O título da mensagem" | ||
| 994 | - | ||
| 995 | -#: colab/templates/open-data.html:55 | ||
| 996 | -msgid "The message's id" | ||
| 997 | -msgstr "O ID da mensagem" | ||
| 998 | - | ||
| 999 | -#: colab/templates/open-data.html:56 | ||
| 1000 | -msgid "The message's received time" | ||
| 1001 | -msgstr "A hora que a mensagem foi recebida" | ||
| 1002 | - | ||
| 1003 | -#: colab/templates/open-data.html:64 | ||
| 1004 | -msgid "The revision's author username" | ||
| 1005 | -msgstr "O username do autor da revisão" | ||
| 1006 | - | ||
| 1007 | -#: colab/templates/open-data.html:65 | ||
| 1008 | -msgid "When the revision's were created" | ||
| 1009 | -msgstr "Quando a revisão foi criada" | ||
| 1010 | - | ||
| 1011 | -#: colab/templates/open-data.html:66 | ||
| 1012 | -msgid "The revision's key" | ||
| 1013 | -msgstr "A chave da revisão" | ||
| 1014 | - | ||
| 1015 | -#: colab/templates/open-data.html:67 | ||
| 1016 | -msgid "The revision's message" | ||
| 1017 | -msgstr "A mensagem da revisão" | ||
| 1018 | - | ||
| 1019 | -#: colab/templates/open-data.html:68 | ||
| 1020 | -msgid "The revision's repository name" | ||
| 1021 | -msgstr "O nome do repositório da revisão" | ||
| 1022 | - | ||
| 1023 | -#: colab/templates/open-data.html:76 | ||
| 1024 | -msgid "The ticket's author username" | ||
| 1025 | -msgstr "O nome do autor do tíquete" | ||
| 1026 | - | ||
| 1027 | -#: colab/templates/open-data.html:77 | ||
| 1028 | -msgid "The ticket's component" | ||
| 1029 | -msgstr "O componente do tíquete" | ||
| 1030 | - | ||
| 1031 | -#: colab/templates/open-data.html:78 | ||
| 1032 | -msgid "When the ticket's were created" | ||
| 1033 | -msgstr "Quando o tíquete foi criado" | ||
| 1034 | - | ||
| 1035 | -#: colab/templates/open-data.html:79 | ||
| 1036 | -msgid "The ticket's description" | ||
| 1037 | -msgstr "A descrição do tíquete" | ||
| 1038 | - | ||
| 1039 | -#: colab/templates/open-data.html:80 | ||
| 1040 | -msgid "The ticket's id" | ||
| 1041 | -msgstr "O ID do tíquete" | ||
| 1042 | - | ||
| 1043 | -#: colab/templates/open-data.html:81 | ||
| 1044 | -msgid "The ticket's keywords" | ||
| 1045 | -msgstr "As keywords do tíquete" | ||
| 1046 | - | ||
| 1047 | -#: colab/templates/open-data.html:82 | ||
| 1048 | -msgid "The ticket's milestone" | ||
| 1049 | -msgstr "O milestone do tíquete" | ||
| 1050 | - | ||
| 1051 | -#: colab/templates/open-data.html:83 colab/templates/open-data.html.py:99 | ||
| 1052 | -msgid "The time of the last modification" | ||
| 1053 | -msgstr "A hora da última modificação" | ||
| 1054 | - | ||
| 1055 | -#: colab/templates/open-data.html:84 | ||
| 1056 | -msgid "The username of the last user who modified the ticket" | ||
| 1057 | -msgstr "O username do último usuário que modificou o tíquete" | ||
| 1058 | - | ||
| 1059 | -#: colab/templates/open-data.html:85 | ||
| 1060 | -msgid "The ticket's priority" | ||
| 1061 | -msgstr "A prioridade do tíquete" | ||
| 1062 | - | ||
| 1063 | -#: colab/templates/open-data.html:86 | ||
| 1064 | -msgid "The ticket's severity" | ||
| 1065 | -msgstr "A gravidade do tíquete" | ||
| 1066 | - | ||
| 1067 | -#: colab/templates/open-data.html:87 | ||
| 1068 | -msgid "The ticket's status" | ||
| 1069 | -msgstr "O status do tíquete" | ||
| 1070 | - | ||
| 1071 | -#: colab/templates/open-data.html:88 | ||
| 1072 | -msgid "The ticket's summary" | ||
| 1073 | -msgstr "O resumo do tíquete" | ||
| 1074 | - | ||
| 1075 | -#: colab/templates/open-data.html:89 | ||
| 1076 | -msgid "The ticket's version" | ||
| 1077 | -msgstr "A versão do tíquete" | ||
| 1078 | - | ||
| 1079 | -#: colab/templates/open-data.html:97 | ||
| 1080 | -msgid "The wiki's author username" | ||
| 1081 | -msgstr "O username do autor da wiki" | ||
| 1082 | - | ||
| 1083 | -#: colab/templates/open-data.html:98 | ||
| 1084 | -msgid "When the wiki's were created" | ||
| 1085 | -msgstr "Quando a wiki foi criada" | ||
| 1086 | - | ||
| 1087 | -#: colab/templates/open-data.html:100 | ||
| 1088 | -msgid "The username of the last user who modified the wiki" | ||
| 1089 | -msgstr "O username do último usuário a modificar a wiki" | ||
| 1090 | - | ||
| 1091 | -#: colab/templates/open-data.html:101 | ||
| 1092 | -msgid "The wiki's name" | ||
| 1093 | -msgstr "O nome da wiki" | ||
| 1094 | - | ||
| 1095 | -#: colab/templates/open-data.html:102 | ||
| 1096 | -msgid "the wiki's content" | ||
| 1097 | -msgstr "O conteúdo da wiki" | ||
| 1098 | - | ||
| 1099 | -#: colab/templates/open-data.html:109 | ||
| 1100 | -msgid "Parameters" | ||
| 1101 | -msgstr "Parâmetros" | ||
| 1102 | - | ||
| 1103 | -#: colab/templates/open-data.html:112 | ||
| 1104 | -msgid "Results per page" | ||
| 1105 | -msgstr "Resultados por página" | ||
| 1106 | - | ||
| 1107 | -#: colab/templates/open-data.html:113 | ||
| 1108 | -msgid "Number of results to be displayed per page." | ||
| 1109 | -msgstr "Número de resultados a serem exibidos por página." | ||
| 1110 | - | ||
| 1111 | -#: colab/templates/open-data.html:114 | ||
| 1112 | -msgid "Default: 20" | ||
| 1113 | -msgstr "Padrão: 20" | ||
| 1114 | - | ||
| 1115 | -#: colab/templates/open-data.html:118 | ||
| 1116 | -msgid "Starts of n element" | ||
| 1117 | -msgstr "Inicia pelo n-ésimo elemento" | ||
| 1118 | - | ||
| 1119 | -#: colab/templates/open-data.html:119 | ||
| 1120 | -msgid "Where n is the index of the first result to appear in the page." | ||
| 1121 | -msgstr "Onde n é o índice do primeiro resultado a ser exibido na página." | ||
| 1122 | - | ||
| 1123 | -#: colab/templates/open-data.html:120 | ||
| 1124 | -msgid "Default: 0" | ||
| 1125 | -msgstr "Padrão: 0" | ||
| 1126 | - | ||
| 1127 | -#: colab/templates/open-data.html:122 | ||
| 1128 | -msgid "Filtering" | ||
| 1129 | -msgstr "Filtrando" | ||
| 1130 | - | ||
| 1131 | -#: colab/templates/open-data.html:124 | ||
| 1132 | -msgid "The field name" | ||
| 1133 | -msgstr "O nome do campo" | ||
| 1134 | - | ||
| 1135 | -#: colab/templates/open-data.html:125 | ||
| 1136 | -msgid "" | ||
| 1137 | -"If you are looking for a specific wiki, and you know the wiki's name, you " | ||
| 1138 | -"can filter it as below" | ||
| 1139 | -msgstr "" | ||
| 1140 | -"Se você está buscando especificamente por uma wiki e você sabe o nome da " | ||
| 1141 | -"wiki, você pode utilizar o filtro abaixo" | ||
| 1142 | - | ||
| 1143 | -#: colab/templates/open-data.html:126 | ||
| 1144 | -msgid "WikiName" | ||
| 1145 | -msgstr "WikiName" | ||
| 1146 | - | ||
| 1147 | -#: colab/templates/open-data.html:127 | ||
| 1148 | -msgid "" | ||
| 1149 | -"Where "name" is the fieldname and "WikiName" is the " | ||
| 1150 | -"value you want to filter." | ||
| 1151 | -msgstr "" | ||
| 1152 | -"Onde "name" é o fieldname e "WikiName" é o value que " | ||
| 1153 | -"você quer filtrar." | ||
| 1154 | - | ||
| 1155 | -#: colab/templates/open-data.html:128 | ||
| 1156 | -msgid "Usage" | ||
| 1157 | -msgstr "Uso" | ||
| 1158 | - | ||
| 1159 | -#: colab/templates/open-data.html:129 | ||
| 1160 | -msgid "" | ||
| 1161 | -"You can also filter using Django lookup fields with the double underscores, " | ||
| 1162 | -"just as below" | ||
| 1163 | -msgstr "" | ||
| 1164 | -"Você também pode filtrar usando lookup fields do Django com underscores " | ||
| 1165 | -"duplos, como demonstrado abaixo" | ||
| 1166 | - | ||
| 1167 | -#: colab/templates/open-data.html:131 colab/templates/open-data.html.py:132 | ||
| 1168 | -msgid "test" | ||
| 1169 | -msgstr "test" | ||
| 1170 | - | ||
| 1171 | -#: colab/templates/open-data.html:133 | ||
| 1172 | -msgid "Usage with relationships" | ||
| 1173 | -msgstr "Uso com relacionamentos" | ||
| 1174 | - | ||
| 1175 | -#: colab/templates/open-data.html:134 | ||
| 1176 | -msgid "" | ||
| 1177 | -"You can use related fields to filter too. So, you can filter by any field of " | ||
| 1178 | -"emailaddress using the 'from_address' field of message, which has a relation " | ||
| 1179 | -"to emailaddress. You will achieve the related fields by using double " | ||
| 1180 | -"underscore and the field's name. See the example below" | ||
| 1181 | -msgstr "" | ||
| 1182 | -"Você pode também pode utilizar campos relacionados para filtrar. Você pode " | ||
| 1183 | -"filtrar por qualquer campo de emailaddress utilizando o 'from_address' da " | ||
| 1184 | -"mensagem, que tem relação com emailaddress. Para tal você precisará utilizar " | ||
| 1185 | -"os underscores duplos e o nome do campo desejado. Veja o exemplo abaixo" | ||
| 1186 | - | ||
| 1187 | -#: colab/templates/open-data.html:136 | ||
| 1188 | -msgid "" | ||
| 1189 | -"So, real_name is a field of emailaddress, and you had access to this field " | ||
| 1190 | -"by a message field called from_address and using double underscore to say " | ||
| 1191 | -"you want to use a field of that relationship" | ||
| 1192 | -msgstr "" | ||
| 1193 | -"real_name é um campo de emailaddress e você pode acessá-lo através de um " | ||
| 1194 | -"campo do do objeto message, from_address, e underscores duplos para " | ||
| 1195 | -"referenciar que este campo pertence ao modelo relacionado" | ||
| 1196 | - | ||
| 1197 | -#: colab/templates/open-data.html:137 | ||
| 1198 | -msgid "" | ||
| 1199 | -"Note: email filters must be exact. Which means that __contains, " | ||
| 1200 | -"__startswith, __endswith and others won't work" | ||
| 1201 | -msgstr "" | ||
| 1202 | -"Nota: os filtros de email devem ser exatos. Isso significa que __contains, " | ||
| 1203 | -"__startswith, __endswith e outros métodos de busca parcial não funcionarão" | ||
| 1204 | - | ||
| 1205 | -#: colab/templates/open-data.html:138 | ||
| 1206 | -msgid "" | ||
| 1207 | -"Another example of usage with relations. Used to retrieve all messages of a " | ||
| 1208 | -"given user, using the username or the email field" | ||
| 1209 | -msgstr "" | ||
| 1210 | -"Outro exemplo de uso com relacionamento. Usado para recuperar todos as " | ||
| 1211 | -"mensagem de um dado usuário usando o campo username ou email" | ||
| 1212 | - | ||
| 1213 | - | ||
| 1214 | -#: colab/accounts/forms.py:276 | ||
| 1215 | -msgid "This value may contain only letters and numbers." | ||
| 1216 | -msgstr "Esse campo só pode conter letras e/ou numeros." | ||
| 1217 | - | ||
| 1218 | -#~ msgid "Please correct the errors below and try again" | ||
| 1219 | -#~ msgstr "Por favor, corrija os erros abaixo e tente novamente" | ||
| 1220 | - | ||
| 1221 | -#, fuzzy | ||
| 1222 | -#~| msgid "Please correct the error below and try again" | ||
| 1223 | -#~ msgid "Please correct the error below and try again" | ||
| 1224 | -#~ msgstr "Por favor, corrija o erro abaixo e tente novamente" | ||
| 1225 | - | ||
| 1226 | -#~ msgid "%(count)s users deleted." | ||
| 1227 | -#~ msgstr "%(count)s usuários deletados." | ||
| 1228 | - | ||
| 1229 | -#~ msgid "" | ||
| 1230 | -#~ "You must login to validated your profile. Profiles not validated are " | ||
| 1231 | -#~ "deleted in 24h." | ||
| 1232 | -#~ msgstr "" | ||
| 1233 | -#~ "Você deve se logar para validar seu perfil. Perfis não validados serão " | ||
| 1234 | -#~ "deletados em 24h." |
| @@ -0,0 +1,8 @@ | @@ -0,0 +1,8 @@ | ||
| 1 | + | ||
| 2 | + | ||
| 3 | +default_app_config = 'colab.plugins.gitlab.apps.ProxyGitlabAppConfig' | ||
| 4 | + | ||
| 5 | +from colab.plugins.utils.widget_manager import WidgetManager | ||
| 6 | +from colab.plugins.gitlab.widgets import GitlabProfileWidget | ||
| 7 | + | ||
| 8 | +WidgetManager.register_widget('profile', GitlabProfileWidget()) |
| @@ -0,0 +1,36 @@ | @@ -0,0 +1,36 @@ | ||
| 1 | +<rules | ||
| 2 | + xmlns="http://namespaces.plone.org/diazo" | ||
| 3 | + xmlns:css="http://namespaces.plone.org/diazo/css" | ||
| 4 | + xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> | ||
| 5 | + | ||
| 6 | + <xsl:variable name="username" select="str:replace(//a/@href[(contains(., '/gitlab/u/'))], '/gitlab/u/', '')" /> | ||
| 7 | + <xsl:template match="a/@href[(contains(., '/profile/'))]"> | ||
| 8 | + <xsl:attribute name="href">/account/<xsl:value-of select="$username"/>/edit?code=<xsl:value-of select="."/>/</xsl:attribute> | ||
| 9 | + </xsl:template> | ||
| 10 | + <xsl:template match="form/@action[(contains(., '/gitlab/'))]"> | ||
| 11 | + <xsl:attribute name="action">/account/<xsl:value-of select="$username"/>/edit?code=<xsl:value-of select="."/>/</xsl:attribute> | ||
| 12 | + </xsl:template> | ||
| 13 | + | ||
| 14 | + <!-- Drop colab stuff --> | ||
| 15 | + <drop css:theme="nav.navbar-fixed-top" /> | ||
| 16 | + <drop css:theme="div.footer" /> | ||
| 17 | + | ||
| 18 | + <!-- Drop unused tabs on gitlab --> | ||
| 19 | + <drop content="div[@class='container']/ul/li[1]" /> | ||
| 20 | + <drop content="div[@class='container']/ul/li[3]" /> | ||
| 21 | + <drop content="div[@class='container']/ul/li[4]" /> | ||
| 22 | + <drop content="div[@class='container']/ul/li[7]" /> | ||
| 23 | + <drop content="fieldset[@class='update-username']" /> | ||
| 24 | + | ||
| 25 | + <before theme-children="/html/head" content-children="/html/head" /> | ||
| 26 | + <before css:theme-children="#main-content" css:content-children="body" /> | ||
| 27 | + | ||
| 28 | + <merge attributes="class" css:theme="body" css:content="body" /> | ||
| 29 | + | ||
| 30 | + <!-- Add gitlab properties --> | ||
| 31 | + <merge attributes="data-page" css:theme="body" css:content="body" /> | ||
| 32 | + <merge attributes="data-project-id" css:theme="body" css:content="body" /> | ||
| 33 | + | ||
| 34 | + <drop css:content="#top-panel" /> | ||
| 35 | + <drop css:content=".navbar-gitlab" /> | ||
| 36 | +</rules> |
colab/plugins/gitlab/templates/proxy/gitlab_profile.html
0 → 100644
| @@ -0,0 +1,49 @@ | @@ -0,0 +1,49 @@ | ||
| 1 | + | ||
| 2 | +{% load static from staticfiles %} | ||
| 3 | + | ||
| 4 | +{% block head_css %} | ||
| 5 | +<style> | ||
| 6 | + /* Reset left and with for .modal-dialog style (like gitlab does), | ||
| 7 | + the bootstrap.css one makes it small */ | ||
| 8 | + @media screen and (min-width: 768px) { | ||
| 9 | + .modal-dialog { | ||
| 10 | + left: auto; | ||
| 11 | + width: auto; | ||
| 12 | + } | ||
| 13 | + } | ||
| 14 | + | ||
| 15 | + div#main-content div.container { | ||
| 16 | + width: 1110px; | ||
| 17 | + } | ||
| 18 | + div#main-content div.flash-container{ | ||
| 19 | + width: 85%; | ||
| 20 | + } | ||
| 21 | + #breadcrumbs { | ||
| 22 | + border: 0 !important; | ||
| 23 | + } | ||
| 24 | + | ||
| 25 | + #right-top-nav { | ||
| 26 | + margin-right: 5em !important; | ||
| 27 | + } | ||
| 28 | +</style> | ||
| 29 | +{% endblock %} | ||
| 30 | + | ||
| 31 | +{% block head_js %} | ||
| 32 | +<script>jQuery.noConflict();</script> | ||
| 33 | +{% endblock %} | ||
| 34 | + | ||
| 35 | +<div id="main-content"></div> | ||
| 36 | +<script type="text/javascript"> | ||
| 37 | + jQuery(function(){ | ||
| 38 | + // bootstrap.css forces .hide {display:none!important}, and this makes | ||
| 39 | + // gitlab .hide elements NEVER have a display:block, so | ||
| 40 | + // instead of editing bootstrap.css, we just removed '.hide' css class and | ||
| 41 | + // toggled | ||
| 42 | + jQuery('.hide').removeClass('hide').css('display', 'none'); | ||
| 43 | + }); | ||
| 44 | + | ||
| 45 | + // Extremelly ugly solutions to add Colab's CSRF token to Gitlab forms | ||
| 46 | + // add CSRF token to HTTP header*** | ||
| 47 | + jQuery('div#code form').append(jQuery("input[name='csrfmiddlewaretoken']")); | ||
| 48 | + $('a.delete-key').attr('data-method', 'delete\" type=\"hidden\" /> <input name=\"csrfmiddlewaretoken\" value=\"' + jQuery("input[name='csrfmiddlewaretoken']").val()); | ||
| 49 | +</script> |
| @@ -0,0 +1,22 @@ | @@ -0,0 +1,22 @@ | ||
| 1 | + | ||
| 2 | +from ..utils.views import ColabProxyView | ||
| 3 | +import os, sys | ||
| 4 | + | ||
| 5 | + | ||
| 6 | +class GitlabProxyView(ColabProxyView): | ||
| 7 | + app_label = 'gitlab' | ||
| 8 | + diazo_theme_template = 'proxy/gitlab.html' | ||
| 9 | + | ||
| 10 | + | ||
| 11 | +class GitlabProfileProxyView(ColabProxyView): | ||
| 12 | + app_label = 'gitlab' | ||
| 13 | + diazo_theme_template = 'proxy/gitlab_profile.html' | ||
| 14 | + | ||
| 15 | + @property | ||
| 16 | + def diazo_rules(self): | ||
| 17 | + child_class_file = sys.modules[self.__module__].__file__ | ||
| 18 | + app_path = os.path.abspath(os.path.dirname(child_class_file)) | ||
| 19 | + diazo_path = os.path.join(app_path, 'profile/diazo.xml') | ||
| 20 | + | ||
| 21 | + self.log.debug("diazo_rules: %s", diazo_path) | ||
| 22 | + return diazo_path |
| @@ -0,0 +1,35 @@ | @@ -0,0 +1,35 @@ | ||
| 1 | +from colab.plugins.gitlab.views import GitlabProxyView, GitlabProfileProxyView | ||
| 2 | +from colab.plugins.utils.widget_manager import Widget | ||
| 3 | +from django.utils.safestring import mark_safe | ||
| 4 | + | ||
| 5 | + | ||
| 6 | +class GitlabProfileWidget(GitlabProxyView, Widget): | ||
| 7 | + identifier = 'code' | ||
| 8 | + name = 'Gitlab Profile' | ||
| 9 | + default_url = '/gitlab/profile/account' | ||
| 10 | + | ||
| 11 | + def get_body(self): | ||
| 12 | + start = self.content.find('<body') | ||
| 13 | + start = self.content.find('>', start) | ||
| 14 | + end = self.content.find('</body>') | ||
| 15 | + print "start = " + str(start) + ", end = " + str(end) | ||
| 16 | + print "content = " + self.content | ||
| 17 | + | ||
| 18 | + if -1 in [start, end]: | ||
| 19 | + return '' | ||
| 20 | + | ||
| 21 | + body = self.content[start + len('>'):end] | ||
| 22 | + return mark_safe(body) | ||
| 23 | + | ||
| 24 | + def generate_content(self, request): | ||
| 25 | + requested_url = request.GET.get('code', self.default_url) | ||
| 26 | + g = GitlabProfileProxyView() | ||
| 27 | + r = g.dispatch(request, requested_url) | ||
| 28 | + | ||
| 29 | + if r.status_code == 302: | ||
| 30 | + location = r.get('Location') | ||
| 31 | + requested_url = location[location.find('/{}/'.format(self.app_label)):] | ||
| 32 | + request.method = 'GET' | ||
| 33 | + r = g.dispatch(request, requested_url) | ||
| 34 | + | ||
| 35 | + self.content = r.content |
colab/settings.py
| @@ -241,10 +241,9 @@ SUPER_ARCHIVES_LOCK_FILE = '/var/lock/colab/import_emails.lock' | @@ -241,10 +241,9 @@ SUPER_ARCHIVES_LOCK_FILE = '/var/lock/colab/import_emails.lock' | ||
| 241 | # Mailman API settings | 241 | # Mailman API settings |
| 242 | MAILMAN_API_URL = 'http://localhost:8124/v2/' | 242 | MAILMAN_API_URL = 'http://localhost:8124/v2/' |
| 243 | 243 | ||
| 244 | -LOGIN_URL = '/user/login' | 244 | +LOGIN_URL = '/account/login' |
| 245 | +LOGOUT_URL = '/account/logout' | ||
| 245 | LOGIN_REDIRECT_URL = '/' | 246 | LOGIN_REDIRECT_URL = '/' |
| 246 | -LOGIN_REDIRECT_URL_FAILURE = '/?bid_login_failed=true' | ||
| 247 | -LOGOUT_REDIRECT_URL = '/' | ||
| 248 | 247 | ||
| 249 | REVPROXY_ADD_REMOTE_USER = True | 248 | REVPROXY_ADD_REMOTE_USER = True |
| 250 | 249 | ||
| @@ -294,3 +293,5 @@ TEMPLATE_DIRS += ( | @@ -294,3 +293,5 @@ TEMPLATE_DIRS += ( | ||
| 294 | ) | 293 | ) |
| 295 | 294 | ||
| 296 | conf.validate_database(DATABASES, DEFAULT_DATABASE, DEBUG) | 295 | conf.validate_database(DATABASES, DEFAULT_DATABASE, DEBUG) |
| 296 | + | ||
| 297 | +conf.load_widgets_settings() |
No preview for this file type
colab/super_archives/locale/en/LC_MESSAGES/django.po
| @@ -8,7 +8,7 @@ msgid "" | @@ -8,7 +8,7 @@ msgid "" | ||
| 8 | msgstr "" | 8 | msgstr "" |
| 9 | "Project-Id-Version: PACKAGE VERSION\n" | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
| 10 | "Report-Msgid-Bugs-To: \n" | 10 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2014-11-21 17:05+0000\n" | 11 | +"POT-Creation-Date: 2015-09-01 13:15+0000\n" |
| 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
| 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
| 14 | "Language-Team: LANGUAGE <LL@li.org>\n" | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
| @@ -21,65 +21,65 @@ msgstr "" | @@ -21,65 +21,65 @@ msgstr "" | ||
| 21 | msgid "[Colab] Warning - Email sent with a blank subject." | 21 | msgid "[Colab] Warning - Email sent with a blank subject." |
| 22 | msgstr "" | 22 | msgstr "" |
| 23 | 23 | ||
| 24 | -#: super_archives/models.py:61 | 24 | +#: super_archives/models.py:77 |
| 25 | #: super_archives/templates/message-preview.html:62 | 25 | #: super_archives/templates/message-preview.html:62 |
| 26 | #: super_archives/templates/message-thread.html:4 | 26 | #: super_archives/templates/message-thread.html:4 |
| 27 | msgid "Anonymous" | 27 | msgid "Anonymous" |
| 28 | msgstr "" | 28 | msgstr "" |
| 29 | 29 | ||
| 30 | -#: super_archives/models.py:111 | 30 | +#: super_archives/models.py:133 |
| 31 | msgid "Mailing List" | 31 | msgid "Mailing List" |
| 32 | msgstr "" | 32 | msgstr "" |
| 33 | 33 | ||
| 34 | -#: super_archives/models.py:112 | 34 | +#: super_archives/models.py:134 |
| 35 | msgid "The Mailing List where is the thread" | 35 | msgid "The Mailing List where is the thread" |
| 36 | msgstr "" | 36 | msgstr "" |
| 37 | 37 | ||
| 38 | -#: super_archives/models.py:115 | 38 | +#: super_archives/models.py:137 |
| 39 | msgid "Latest message" | 39 | msgid "Latest message" |
| 40 | msgstr "" | 40 | msgstr "" |
| 41 | 41 | ||
| 42 | -#: super_archives/models.py:116 | 42 | +#: super_archives/models.py:138 |
| 43 | msgid "Latest message posted" | 43 | msgid "Latest message posted" |
| 44 | msgstr "" | 44 | msgstr "" |
| 45 | 45 | ||
| 46 | -#: super_archives/models.py:117 | 46 | +#: super_archives/models.py:139 |
| 47 | msgid "Score" | 47 | msgid "Score" |
| 48 | msgstr "" | 48 | msgstr "" |
| 49 | 49 | ||
| 50 | -#: super_archives/models.py:117 | 50 | +#: super_archives/models.py:140 |
| 51 | msgid "Thread score" | 51 | msgid "Thread score" |
| 52 | msgstr "" | 52 | msgstr "" |
| 53 | 53 | ||
| 54 | -#: super_archives/models.py:126 | 54 | +#: super_archives/models.py:153 |
| 55 | msgid "Thread" | 55 | msgid "Thread" |
| 56 | msgstr "" | 56 | msgstr "" |
| 57 | 57 | ||
| 58 | -#: super_archives/models.py:127 | 58 | +#: super_archives/models.py:154 |
| 59 | msgid "Threads" | 59 | msgid "Threads" |
| 60 | msgstr "" | 60 | msgstr "" |
| 61 | 61 | ||
| 62 | -#: super_archives/models.py:241 | 62 | +#: super_archives/models.py:267 |
| 63 | msgid "Subject" | 63 | msgid "Subject" |
| 64 | msgstr "" | 64 | msgstr "" |
| 65 | 65 | ||
| 66 | -#: super_archives/models.py:242 | 66 | +#: super_archives/models.py:268 |
| 67 | msgid "Please enter a message subject" | 67 | msgid "Please enter a message subject" |
| 68 | msgstr "" | 68 | msgstr "" |
| 69 | 69 | ||
| 70 | -#: super_archives/models.py:245 | 70 | +#: super_archives/models.py:271 |
| 71 | msgid "Message body" | 71 | msgid "Message body" |
| 72 | msgstr "" | 72 | msgstr "" |
| 73 | 73 | ||
| 74 | -#: super_archives/models.py:246 | 74 | +#: super_archives/models.py:272 |
| 75 | msgid "Please enter a message body" | 75 | msgid "Please enter a message body" |
| 76 | msgstr "" | 76 | msgstr "" |
| 77 | 77 | ||
| 78 | -#: super_archives/models.py:256 | 78 | +#: super_archives/models.py:282 |
| 79 | msgid "Message" | 79 | msgid "Message" |
| 80 | msgstr "" | 80 | msgstr "" |
| 81 | 81 | ||
| 82 | -#: super_archives/models.py:257 | 82 | +#: super_archives/models.py:283 |
| 83 | msgid "Messages" | 83 | msgid "Messages" |
| 84 | msgstr "" | 84 | msgstr "" |
| 85 | 85 | ||
| @@ -208,16 +208,16 @@ msgstr "" | @@ -208,16 +208,16 @@ msgstr "" | ||
| 208 | msgid "%(number_of_users)s members" | 208 | msgid "%(number_of_users)s members" |
| 209 | msgstr "" | 209 | msgstr "" |
| 210 | 210 | ||
| 211 | -#: super_archives/templates/superarchives/thread-dashboard.html:23 | 211 | +#: super_archives/templates/superarchives/thread-dashboard.html:20 |
| 212 | msgid "latest" | 212 | msgid "latest" |
| 213 | msgstr "" | 213 | msgstr "" |
| 214 | 214 | ||
| 215 | -#: super_archives/templates/superarchives/thread-dashboard.html:31 | ||
| 216 | -#: super_archives/templates/superarchives/thread-dashboard.html:45 | 215 | +#: super_archives/templates/superarchives/thread-dashboard.html:28 |
| 216 | +#: super_archives/templates/superarchives/thread-dashboard.html:42 | ||
| 217 | msgid "more..." | 217 | msgid "more..." |
| 218 | msgstr "" | 218 | msgstr "" |
| 219 | 219 | ||
| 220 | -#: super_archives/templates/superarchives/thread-dashboard.html:37 | 220 | +#: super_archives/templates/superarchives/thread-dashboard.html:34 |
| 221 | msgid "most relevant" | 221 | msgid "most relevant" |
| 222 | msgstr "" | 222 | msgstr "" |
| 223 | 223 | ||
| @@ -225,45 +225,45 @@ msgstr "" | @@ -225,45 +225,45 @@ msgstr "" | ||
| 225 | msgid "Please verify your email " | 225 | msgid "Please verify your email " |
| 226 | msgstr "" | 226 | msgstr "" |
| 227 | 227 | ||
| 228 | -#: super_archives/views.py:92 | 228 | +#: super_archives/views.py:112 |
| 229 | msgid "Error trying to connect to Mailman API" | 229 | msgid "Error trying to connect to Mailman API" |
| 230 | msgstr "" | 230 | msgstr "" |
| 231 | 231 | ||
| 232 | -#: super_archives/views.py:95 | 232 | +#: super_archives/views.py:115 |
| 233 | msgid "Timeout trying to connect to Mailman API" | 233 | msgid "Timeout trying to connect to Mailman API" |
| 234 | msgstr "" | 234 | msgstr "" |
| 235 | 235 | ||
| 236 | -#: super_archives/views.py:99 | 236 | +#: super_archives/views.py:119 |
| 237 | msgid "" | 237 | msgid "" |
| 238 | "Your message was sent to this topic. It may take some minutes before it's " | 238 | "Your message was sent to this topic. It may take some minutes before it's " |
| 239 | "delivered by email to the group. Why don't you breath some fresh air in the " | 239 | "delivered by email to the group. Why don't you breath some fresh air in the " |
| 240 | "meanwhile?" | 240 | "meanwhile?" |
| 241 | msgstr "" | 241 | msgstr "" |
| 242 | 242 | ||
| 243 | -#: super_archives/views.py:108 | 243 | +#: super_archives/views.py:128 |
| 244 | msgid "You cannot send an empty email" | 244 | msgid "You cannot send an empty email" |
| 245 | msgstr "" | 245 | msgstr "" |
| 246 | 246 | ||
| 247 | -#: super_archives/views.py:110 | 247 | +#: super_archives/views.py:130 |
| 248 | msgid "Mailing list does not exist" | 248 | msgid "Mailing list does not exist" |
| 249 | msgstr "" | 249 | msgstr "" |
| 250 | 250 | ||
| 251 | -#: super_archives/views.py:112 | 251 | +#: super_archives/views.py:133 |
| 252 | msgid "Unknown error trying to connect to Mailman API" | 252 | msgid "Unknown error trying to connect to Mailman API" |
| 253 | msgstr "" | 253 | msgstr "" |
| 254 | 254 | ||
| 255 | -#: super_archives/views.py:152 | 255 | +#: super_archives/views.py:188 |
| 256 | msgid "" | 256 | msgid "" |
| 257 | "The email address you are trying to verify either has already been verified " | 257 | "The email address you are trying to verify either has already been verified " |
| 258 | "or does not exist." | 258 | "or does not exist." |
| 259 | msgstr "" | 259 | msgstr "" |
| 260 | 260 | ||
| 261 | -#: super_archives/views.py:163 | 261 | +#: super_archives/views.py:199 |
| 262 | msgid "" | 262 | msgid "" |
| 263 | "The email address you are trying to verify is already an active email " | 263 | "The email address you are trying to verify is already an active email " |
| 264 | "address." | 264 | "address." |
| 265 | msgstr "" | 265 | msgstr "" |
| 266 | 266 | ||
| 267 | -#: super_archives/views.py:173 | 267 | +#: super_archives/views.py:213 |
| 268 | msgid "Email address verified!" | 268 | msgid "Email address verified!" |
| 269 | msgstr "" | 269 | msgstr "" |
No preview for this file type
colab/super_archives/locale/pt_BR/LC_MESSAGES/django.mo
No preview for this file type
colab/super_archives/locale/pt_BR/LC_MESSAGES/django.po
| @@ -8,7 +8,7 @@ msgid "" | @@ -8,7 +8,7 @@ msgid "" | ||
| 8 | msgstr "" | 8 | msgstr "" |
| 9 | "Project-Id-Version: colab\n" | 9 | "Project-Id-Version: colab\n" |
| 10 | "Report-Msgid-Bugs-To: \n" | 10 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2015-01-21 13:55+0000\n" | 11 | +"POT-Creation-Date: 2015-09-01 13:15+0000\n" |
| 12 | "PO-Revision-Date: 2014-11-21 17:38+0000\n" | 12 | "PO-Revision-Date: 2014-11-21 17:38+0000\n" |
| 13 | "Last-Translator: Sergio Oliveira <seocam@seocam.com>\n" | 13 | "Last-Translator: Sergio Oliveira <seocam@seocam.com>\n" |
| 14 | "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/" | 14 | "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/" |
| @@ -19,137 +19,137 @@ msgstr "" | @@ -19,137 +19,137 @@ msgstr "" | ||
| 19 | "Content-Transfer-Encoding: 8bit\n" | 19 | "Content-Transfer-Encoding: 8bit\n" |
| 20 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" | 20 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" |
| 21 | 21 | ||
| 22 | -#: colab/super_archives/management/commands/import_emails.py:213 | 22 | +#: super_archives/management/commands/import_emails.py:213 |
| 23 | msgid "[Colab] Warning - Email sent with a blank subject." | 23 | msgid "[Colab] Warning - Email sent with a blank subject." |
| 24 | msgstr "[Colab] Atenção - Email enviado sem assunto." | 24 | msgstr "[Colab] Atenção - Email enviado sem assunto." |
| 25 | 25 | ||
| 26 | -#: colab/super_archives/models.py:68 | ||
| 27 | -#: colab/super_archives/templates/message-preview.html:62 | ||
| 28 | -#: colab/super_archives/templates/message-thread.html:4 | 26 | +#: super_archives/models.py:77 |
| 27 | +#: super_archives/templates/message-preview.html:62 | ||
| 28 | +#: super_archives/templates/message-thread.html:4 | ||
| 29 | msgid "Anonymous" | 29 | msgid "Anonymous" |
| 30 | msgstr "Anônimo" | 30 | msgstr "Anônimo" |
| 31 | 31 | ||
| 32 | -#: colab/super_archives/models.py:118 | 32 | +#: super_archives/models.py:133 |
| 33 | msgid "Mailing List" | 33 | msgid "Mailing List" |
| 34 | msgstr "Lista de discussão" | 34 | msgstr "Lista de discussão" |
| 35 | 35 | ||
| 36 | -#: colab/super_archives/models.py:119 | 36 | +#: super_archives/models.py:134 |
| 37 | msgid "The Mailing List where is the thread" | 37 | msgid "The Mailing List where is the thread" |
| 38 | msgstr "Lista de emails da discussão" | 38 | msgstr "Lista de emails da discussão" |
| 39 | 39 | ||
| 40 | -#: colab/super_archives/models.py:122 | 40 | +#: super_archives/models.py:137 |
| 41 | msgid "Latest message" | 41 | msgid "Latest message" |
| 42 | msgstr "Última mensagem" | 42 | msgstr "Última mensagem" |
| 43 | 43 | ||
| 44 | -#: colab/super_archives/models.py:123 | 44 | +#: super_archives/models.py:138 |
| 45 | msgid "Latest message posted" | 45 | msgid "Latest message posted" |
| 46 | msgstr "Última mensagem enviada" | 46 | msgstr "Última mensagem enviada" |
| 47 | 47 | ||
| 48 | -#: colab/super_archives/models.py:124 | 48 | +#: super_archives/models.py:139 |
| 49 | msgid "Score" | 49 | msgid "Score" |
| 50 | msgstr "Pontuação" | 50 | msgstr "Pontuação" |
| 51 | 51 | ||
| 52 | -#: colab/super_archives/models.py:124 | 52 | +#: super_archives/models.py:140 |
| 53 | msgid "Thread score" | 53 | msgid "Thread score" |
| 54 | msgstr "Pontuação da discussão" | 54 | msgstr "Pontuação da discussão" |
| 55 | 55 | ||
| 56 | -#: colab/super_archives/models.py:133 | 56 | +#: super_archives/models.py:153 |
| 57 | msgid "Thread" | 57 | msgid "Thread" |
| 58 | msgstr "Discussão" | 58 | msgstr "Discussão" |
| 59 | 59 | ||
| 60 | -#: colab/super_archives/models.py:134 | 60 | +#: super_archives/models.py:154 |
| 61 | msgid "Threads" | 61 | msgid "Threads" |
| 62 | msgstr "Discussões" | 62 | msgstr "Discussões" |
| 63 | 63 | ||
| 64 | -#: colab/super_archives/models.py:248 | 64 | +#: super_archives/models.py:267 |
| 65 | msgid "Subject" | 65 | msgid "Subject" |
| 66 | msgstr "Assuntos" | 66 | msgstr "Assuntos" |
| 67 | 67 | ||
| 68 | -#: colab/super_archives/models.py:249 | 68 | +#: super_archives/models.py:268 |
| 69 | msgid "Please enter a message subject" | 69 | msgid "Please enter a message subject" |
| 70 | msgstr "Por favor digite um assunto de email" | 70 | msgstr "Por favor digite um assunto de email" |
| 71 | 71 | ||
| 72 | -#: colab/super_archives/models.py:252 | 72 | +#: super_archives/models.py:271 |
| 73 | msgid "Message body" | 73 | msgid "Message body" |
| 74 | msgstr "Corpo do email" | 74 | msgstr "Corpo do email" |
| 75 | 75 | ||
| 76 | -#: colab/super_archives/models.py:253 | 76 | +#: super_archives/models.py:272 |
| 77 | msgid "Please enter a message body" | 77 | msgid "Please enter a message body" |
| 78 | msgstr "Por favor digite o corpo do email" | 78 | msgstr "Por favor digite o corpo do email" |
| 79 | 79 | ||
| 80 | -#: colab/super_archives/models.py:263 | 80 | +#: super_archives/models.py:282 |
| 81 | msgid "Message" | 81 | msgid "Message" |
| 82 | msgstr "Mensagem" | 82 | msgstr "Mensagem" |
| 83 | 83 | ||
| 84 | -#: colab/super_archives/models.py:264 | 84 | +#: super_archives/models.py:283 |
| 85 | msgid "Messages" | 85 | msgid "Messages" |
| 86 | msgstr "Mensagens" | 86 | msgstr "Mensagens" |
| 87 | 87 | ||
| 88 | -#: colab/super_archives/templates/message-preview.html:42 | ||
| 89 | -#: colab/super_archives/templates/message-preview.html:62 | 88 | +#: super_archives/templates/message-preview.html:42 |
| 89 | +#: super_archives/templates/message-preview.html:62 | ||
| 90 | msgid "by" | 90 | msgid "by" |
| 91 | msgstr "por" | 91 | msgstr "por" |
| 92 | 92 | ||
| 93 | -#: colab/super_archives/templates/message-preview.html:65 | ||
| 94 | -#: colab/super_archives/templates/message-thread.html:161 | 93 | +#: super_archives/templates/message-preview.html:65 |
| 94 | +#: super_archives/templates/message-thread.html:161 | ||
| 95 | msgid "ago" | 95 | msgid "ago" |
| 96 | msgstr "atrás" | 96 | msgstr "atrás" |
| 97 | 97 | ||
| 98 | -#: colab/super_archives/templates/message-thread.html:35 | 98 | +#: super_archives/templates/message-thread.html:35 |
| 99 | msgid "You must login before voting." | 99 | msgid "You must login before voting." |
| 100 | msgstr "Você deve logar antes de votar." | 100 | msgstr "Você deve logar antes de votar." |
| 101 | 101 | ||
| 102 | -#: colab/super_archives/templates/message-thread.html:132 | 102 | +#: super_archives/templates/message-thread.html:132 |
| 103 | msgid "Order by" | 103 | msgid "Order by" |
| 104 | msgstr "Ordenar por" | 104 | msgstr "Ordenar por" |
| 105 | 105 | ||
| 106 | -#: colab/super_archives/templates/message-thread.html:136 | 106 | +#: super_archives/templates/message-thread.html:136 |
| 107 | msgid "Votes" | 107 | msgid "Votes" |
| 108 | msgstr "Votos" | 108 | msgstr "Votos" |
| 109 | 109 | ||
| 110 | -#: colab/super_archives/templates/message-thread.html:140 | 110 | +#: super_archives/templates/message-thread.html:140 |
| 111 | msgid "Date" | 111 | msgid "Date" |
| 112 | msgstr "Data" | 112 | msgstr "Data" |
| 113 | 113 | ||
| 114 | -#: colab/super_archives/templates/message-thread.html:145 | 114 | +#: super_archives/templates/message-thread.html:145 |
| 115 | msgid "Related:" | 115 | msgid "Related:" |
| 116 | msgstr "Relacionado:" | 116 | msgstr "Relacionado:" |
| 117 | 117 | ||
| 118 | -#: colab/super_archives/templates/message-thread.html:156 | 118 | +#: super_archives/templates/message-thread.html:156 |
| 119 | msgid "Statistics:" | 119 | msgid "Statistics:" |
| 120 | msgstr "Estatísticas:" | 120 | msgstr "Estatísticas:" |
| 121 | 121 | ||
| 122 | -#: colab/super_archives/templates/message-thread.html:160 | 122 | +#: super_archives/templates/message-thread.html:160 |
| 123 | msgid "started at" | 123 | msgid "started at" |
| 124 | msgstr "iniciada em" | 124 | msgstr "iniciada em" |
| 125 | 125 | ||
| 126 | -#: colab/super_archives/templates/message-thread.html:166 | 126 | +#: super_archives/templates/message-thread.html:166 |
| 127 | msgid "viewed" | 127 | msgid "viewed" |
| 128 | msgstr "vizualizada" | 128 | msgstr "vizualizada" |
| 129 | 129 | ||
| 130 | -#: colab/super_archives/templates/message-thread.html:167 | ||
| 131 | -#: colab/super_archives/templates/message-thread.html:172 | ||
| 132 | -#: colab/super_archives/templates/message-thread.html:177 | 130 | +#: super_archives/templates/message-thread.html:167 |
| 131 | +#: super_archives/templates/message-thread.html:172 | ||
| 132 | +#: super_archives/templates/message-thread.html:177 | ||
| 133 | msgid "times" | 133 | msgid "times" |
| 134 | msgstr "vezes" | 134 | msgstr "vezes" |
| 135 | 135 | ||
| 136 | -#: colab/super_archives/templates/message-thread.html:171 | 136 | +#: super_archives/templates/message-thread.html:171 |
| 137 | msgid "answered" | 137 | msgid "answered" |
| 138 | msgstr "respondida" | 138 | msgstr "respondida" |
| 139 | 139 | ||
| 140 | -#: colab/super_archives/templates/message-thread.html:176 | 140 | +#: super_archives/templates/message-thread.html:176 |
| 141 | msgid "voted" | 141 | msgid "voted" |
| 142 | msgstr "votada" | 142 | msgstr "votada" |
| 143 | 143 | ||
| 144 | -#: colab/super_archives/templates/message-thread.html:182 | 144 | +#: super_archives/templates/message-thread.html:182 |
| 145 | msgid "Tags:" | 145 | msgid "Tags:" |
| 146 | msgstr "Tags:" | 146 | msgstr "Tags:" |
| 147 | 147 | ||
| 148 | -#: colab/super_archives/templates/superarchives/emails/email_blank_subject.txt:2 | 148 | +#: super_archives/templates/superarchives/emails/email_blank_subject.txt:2 |
| 149 | msgid "Hello" | 149 | msgid "Hello" |
| 150 | msgstr "Olá" | 150 | msgstr "Olá" |
| 151 | 151 | ||
| 152 | -#: colab/super_archives/templates/superarchives/emails/email_blank_subject.txt:3 | 152 | +#: super_archives/templates/superarchives/emails/email_blank_subject.txt:3 |
| 153 | #, python-format | 153 | #, python-format |
| 154 | msgid "" | 154 | msgid "" |
| 155 | "\n" | 155 | "\n" |
| @@ -172,7 +172,7 @@ msgstr "" | @@ -172,7 +172,7 @@ msgstr "" | ||
| 172 | "\n" | 172 | "\n" |
| 173 | "Obrigado.\n" | 173 | "Obrigado.\n" |
| 174 | 174 | ||
| 175 | -#: colab/super_archives/templates/superarchives/emails/email_verification.txt:2 | 175 | +#: super_archives/templates/superarchives/emails/email_verification.txt:2 |
| 176 | #, python-format | 176 | #, python-format |
| 177 | msgid "" | 177 | msgid "" |
| 178 | "Hey, we want to verify that you are indeed \"%(fullname)s (%(username)s)\". " | 178 | "Hey, we want to verify that you are indeed \"%(fullname)s (%(username)s)\". " |
| @@ -181,7 +181,7 @@ msgstr "" | @@ -181,7 +181,7 @@ msgstr "" | ||
| 181 | "Ei, nós queremos verificar que você é realmente \"%(fullname)s " | 181 | "Ei, nós queremos verificar que você é realmente \"%(fullname)s " |
| 182 | "(%(username)s)\". Se este for o caso, por favor clique no link abaixo:" | 182 | "(%(username)s)\". Se este for o caso, por favor clique no link abaixo:" |
| 183 | 183 | ||
| 184 | -#: colab/super_archives/templates/superarchives/emails/email_verification.txt:6 | 184 | +#: super_archives/templates/superarchives/emails/email_verification.txt:6 |
| 185 | #, python-format | 185 | #, python-format |
| 186 | msgid "" | 186 | msgid "" |
| 187 | "If you're not %(username)s or didn't request verification you can ignore " | 187 | "If you're not %(username)s or didn't request verification you can ignore " |
| @@ -190,20 +190,20 @@ msgstr "" | @@ -190,20 +190,20 @@ msgstr "" | ||
| 190 | "Se você não é %(username)s ou não solicitou verificação apenas ignore este " | 190 | "Se você não é %(username)s ou não solicitou verificação apenas ignore este " |
| 191 | "email." | 191 | "email." |
| 192 | 192 | ||
| 193 | -#: colab/super_archives/templates/superarchives/includes/message.html:17 | ||
| 194 | -#: colab/super_archives/templates/superarchives/includes/message.html:18 | 193 | +#: super_archives/templates/superarchives/includes/message.html:17 |
| 194 | +#: super_archives/templates/superarchives/includes/message.html:18 | ||
| 195 | msgid "Link to this message" | 195 | msgid "Link to this message" |
| 196 | msgstr "Link para esta mensagem" | 196 | msgstr "Link para esta mensagem" |
| 197 | 197 | ||
| 198 | -#: colab/super_archives/templates/superarchives/includes/message.html:46 | 198 | +#: super_archives/templates/superarchives/includes/message.html:46 |
| 199 | msgid "Reply" | 199 | msgid "Reply" |
| 200 | msgstr "Responder" | 200 | msgstr "Responder" |
| 201 | 201 | ||
| 202 | -#: colab/super_archives/templates/superarchives/includes/message.html:63 | 202 | +#: super_archives/templates/superarchives/includes/message.html:63 |
| 203 | msgid "Send a message" | 203 | msgid "Send a message" |
| 204 | msgstr "Enviar mensagem" | 204 | msgstr "Enviar mensagem" |
| 205 | 205 | ||
| 206 | -#: colab/super_archives/templates/superarchives/includes/message.html:66 | 206 | +#: super_archives/templates/superarchives/includes/message.html:66 |
| 207 | msgid "" | 207 | msgid "" |
| 208 | "After sending a message it will take few minutes before it shows up in here. " | 208 | "After sending a message it will take few minutes before it shows up in here. " |
| 209 | "Why don't you grab a coffee?" | 209 | "Why don't you grab a coffee?" |
| @@ -211,46 +211,46 @@ msgstr "" | @@ -211,46 +211,46 @@ msgstr "" | ||
| 211 | "Após enviar uma mensagem pode levar alguns minutos até que ela seja exibida " | 211 | "Após enviar uma mensagem pode levar alguns minutos até que ela seja exibida " |
| 212 | "aqui. Por que você não busca um café enquanto isso?" | 212 | "aqui. Por que você não busca um café enquanto isso?" |
| 213 | 213 | ||
| 214 | -#: colab/super_archives/templates/superarchives/includes/message.html:69 | 214 | +#: super_archives/templates/superarchives/includes/message.html:69 |
| 215 | msgid "Send" | 215 | msgid "Send" |
| 216 | msgstr "Enviar" | 216 | msgstr "Enviar" |
| 217 | 217 | ||
| 218 | -#: colab/super_archives/templates/superarchives/thread-dashboard.html:4 | ||
| 219 | -#: colab/super_archives/templates/superarchives/thread-dashboard.html:7 | 218 | +#: super_archives/templates/superarchives/thread-dashboard.html:4 |
| 219 | +#: super_archives/templates/superarchives/thread-dashboard.html:7 | ||
| 220 | msgid "Groups" | 220 | msgid "Groups" |
| 221 | msgstr "Grupos" | 221 | msgstr "Grupos" |
| 222 | 222 | ||
| 223 | -#: colab/super_archives/templates/superarchives/thread-dashboard.html:14 | 223 | +#: super_archives/templates/superarchives/thread-dashboard.html:14 |
| 224 | #, python-format | 224 | #, python-format |
| 225 | msgid "%(number_of_users)s members" | 225 | msgid "%(number_of_users)s members" |
| 226 | msgstr "%(number_of_users)s membros" | 226 | msgstr "%(number_of_users)s membros" |
| 227 | 227 | ||
| 228 | -#: colab/super_archives/templates/superarchives/thread-dashboard.html:23 | 228 | +#: super_archives/templates/superarchives/thread-dashboard.html:20 |
| 229 | msgid "latest" | 229 | msgid "latest" |
| 230 | msgstr "última" | 230 | msgstr "última" |
| 231 | 231 | ||
| 232 | -#: colab/super_archives/templates/superarchives/thread-dashboard.html:31 | ||
| 233 | -#: colab/super_archives/templates/superarchives/thread-dashboard.html:45 | 232 | +#: super_archives/templates/superarchives/thread-dashboard.html:28 |
| 233 | +#: super_archives/templates/superarchives/thread-dashboard.html:42 | ||
| 234 | msgid "more..." | 234 | msgid "more..." |
| 235 | msgstr "mais..." | 235 | msgstr "mais..." |
| 236 | 236 | ||
| 237 | -#: colab/super_archives/templates/superarchives/thread-dashboard.html:37 | 237 | +#: super_archives/templates/superarchives/thread-dashboard.html:34 |
| 238 | msgid "most relevant" | 238 | msgid "most relevant" |
| 239 | msgstr "Mais relevante" | 239 | msgstr "Mais relevante" |
| 240 | 240 | ||
| 241 | -#: colab/super_archives/utils/email.py:14 | 241 | +#: super_archives/utils/email.py:14 |
| 242 | msgid "Please verify your email " | 242 | msgid "Please verify your email " |
| 243 | msgstr "Por favor verifique seu email" | 243 | msgstr "Por favor verifique seu email" |
| 244 | 244 | ||
| 245 | -#: colab/super_archives/views.py:93 | 245 | +#: super_archives/views.py:112 |
| 246 | msgid "Error trying to connect to Mailman API" | 246 | msgid "Error trying to connect to Mailman API" |
| 247 | msgstr "Erro tentando conectar à API do Mailman" | 247 | msgstr "Erro tentando conectar à API do Mailman" |
| 248 | 248 | ||
| 249 | -#: colab/super_archives/views.py:96 | 249 | +#: super_archives/views.py:115 |
| 250 | msgid "Timeout trying to connect to Mailman API" | 250 | msgid "Timeout trying to connect to Mailman API" |
| 251 | -msgstr "Timeout tentando conectar à API do Mailman" | 251 | +msgstr "Tempo excedido tentando conectar à API do Mailman" |
| 252 | 252 | ||
| 253 | -#: colab/super_archives/views.py:100 | 253 | +#: super_archives/views.py:119 |
| 254 | msgid "" | 254 | msgid "" |
| 255 | "Your message was sent to this topic. It may take some minutes before it's " | 255 | "Your message was sent to this topic. It may take some minutes before it's " |
| 256 | "delivered by email to the group. Why don't you breath some fresh air in the " | 256 | "delivered by email to the group. Why don't you breath some fresh air in the " |
| @@ -260,19 +260,19 @@ msgstr "" | @@ -260,19 +260,19 @@ msgstr "" | ||
| 260 | "minutos até que ela seja enviada por email para o grupo. Por que você não " | 260 | "minutos até que ela seja enviada por email para o grupo. Por que você não " |
| 261 | "respira um ar fresco enquanto isso?" | 261 | "respira um ar fresco enquanto isso?" |
| 262 | 262 | ||
| 263 | -#: colab/super_archives/views.py:109 | 263 | +#: super_archives/views.py:128 |
| 264 | msgid "You cannot send an empty email" | 264 | msgid "You cannot send an empty email" |
| 265 | msgstr "Você não pode enviar um email vazio" | 265 | msgstr "Você não pode enviar um email vazio" |
| 266 | 266 | ||
| 267 | -#: colab/super_archives/views.py:111 | 267 | +#: super_archives/views.py:130 |
| 268 | msgid "Mailing list does not exist" | 268 | msgid "Mailing list does not exist" |
| 269 | msgstr "Lista de email inexistente" | 269 | msgstr "Lista de email inexistente" |
| 270 | 270 | ||
| 271 | -#: colab/super_archives/views.py:113 | 271 | +#: super_archives/views.py:133 |
| 272 | msgid "Unknown error trying to connect to Mailman API" | 272 | msgid "Unknown error trying to connect to Mailman API" |
| 273 | msgstr "Erro desconhecido tentando conectar à API do Mailman" | 273 | msgstr "Erro desconhecido tentando conectar à API do Mailman" |
| 274 | 274 | ||
| 275 | -#: colab/super_archives/views.py:153 | 275 | +#: super_archives/views.py:188 |
| 276 | msgid "" | 276 | msgid "" |
| 277 | "The email address you are trying to verify either has already been verified " | 277 | "The email address you are trying to verify either has already been verified " |
| 278 | "or does not exist." | 278 | "or does not exist." |
| @@ -280,12 +280,12 @@ msgstr "" | @@ -280,12 +280,12 @@ msgstr "" | ||
| 280 | "O email que você está tentando verificar não existe ou já foi verificado " | 280 | "O email que você está tentando verificar não existe ou já foi verificado " |
| 281 | "anteriormente. " | 281 | "anteriormente. " |
| 282 | 282 | ||
| 283 | -#: colab/super_archives/views.py:164 | 283 | +#: super_archives/views.py:199 |
| 284 | msgid "" | 284 | msgid "" |
| 285 | "The email address you are trying to verify is already an active email " | 285 | "The email address you are trying to verify is already an active email " |
| 286 | "address." | 286 | "address." |
| 287 | msgstr "O email que você está tentando verificar já é um email ativo." | 287 | msgstr "O email que você está tentando verificar já é um email ativo." |
| 288 | 288 | ||
| 289 | -#: colab/super_archives/views.py:178 | 289 | +#: super_archives/views.py:213 |
| 290 | msgid "Email address verified!" | 290 | msgid "Email address verified!" |
| 291 | msgstr "Endereço de email verificado!" | 291 | msgstr "Endereço de email verificado!" |
colab/templates/base.html
| @@ -50,7 +50,7 @@ | @@ -50,7 +50,7 @@ | ||
| 50 | </head> | 50 | </head> |
| 51 | 51 | ||
| 52 | <!-- data-no-turbolink will disable Rails TurboLinks for all pages under Colab --> | 52 | <!-- data-no-turbolink will disable Rails TurboLinks for all pages under Colab --> |
| 53 | - <body class="container" data-no-turbolink> | 53 | + <body data-no-turbolink> |
| 54 | 54 | ||
| 55 | {% block ribbon %} | 55 | {% block ribbon %} |
| 56 | {% if ribbon %} | 56 | {% if ribbon %} |
| @@ -62,84 +62,8 @@ | @@ -62,84 +62,8 @@ | ||
| 62 | {% endif %} | 62 | {% endif %} |
| 63 | {% endblock %} | 63 | {% endblock %} |
| 64 | 64 | ||
| 65 | - {% block navbar %} | ||
| 66 | - <nav class="navbar navbar-default navbar-fixed-top" role="navigation"> | ||
| 67 | - <div class="container"> | ||
| 68 | - <div class="navbar-header"> | ||
| 69 | - | ||
| 70 | - <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-main"> | ||
| 71 | - <span class="sr-only">Toggle navigation</span> | ||
| 72 | - <span class="icon-bar"></span> | ||
| 73 | - <span class="icon-bar"></span> | ||
| 74 | - <span class="icon-bar"></span> | ||
| 75 | - <span class="icon-bar"></span> | ||
| 76 | - </button> | ||
| 77 | - <a class="navbar-brand" href="/"><img alt="Colab" src="{% static 'img/logo.svg' %}"></a> | ||
| 78 | - </div> | ||
| 79 | - <div class="collapse navbar-collapse navbar-main"> | ||
| 80 | - <ul class="nav navbar-nav"> | ||
| 81 | - | ||
| 82 | - <li> | ||
| 83 | - <a href="{% url 'thread_list' %}">{% trans "Groups" %}</a> | ||
| 84 | - </li> | ||
| 85 | - | ||
| 86 | - {% plugins_menu %} | ||
| 87 | - | ||
| 88 | - <li class="hidden-lg hidden-md"> | ||
| 89 | - <a href="{% url 'haystack_search' %}?q=">{% trans "Search" %}</a> | ||
| 90 | - </li> | ||
| 91 | - </ul> | ||
| 92 | - | ||
| 93 | - <ul class="nav navbar-nav navbar-right"> | ||
| 94 | - {% if not user.is_authenticated %} | ||
| 95 | - | ||
| 96 | - <li class="dropdown hidden-xs hidden-lg"> | ||
| 97 | - <a href="#" class="dropdown-toggle" data-toggle="dropdown">Acesso <b class="caret"></b></a> | ||
| 98 | - <ul class="dropdown-menu"> | ||
| 99 | - {% trans 'Login' as login_text %} | ||
| 100 | - <li><a href="{% url 'signup' %}">{% trans "Register" %}</a></li> | ||
| 101 | - <li><a href="{% url 'login' %}">{% trans "Login" %}</a></li> | ||
| 102 | - </ul> | ||
| 103 | - </li> | ||
| 104 | - {% trans 'Login' as login_text %} | ||
| 105 | - <li class="visible-xs hidden-sm hidden-md"><a href="{% url 'signup' %}">{% trans "Register" %}</a></li> | ||
| 106 | - <li class="visible-xs hidden-sm hidden-md"><a href="{% url 'login' %}">{% trans "Login" %}</a></li> | ||
| 107 | - {% else %} | ||
| 108 | - <li id="user-menu" class="dropdown"> | ||
| 109 | - <a href="#" class="dropdown-toggle user" data-toggle="dropdown">{% gravatar user.email 40 %} <b class="caret"></b> </a> | ||
| 110 | - <ul class="dropdown-menu" role="menu"> | ||
| 111 | - <li> | ||
| 112 | - <div class="wrapper"> | ||
| 113 | - <div class="thumbnail">{% gravatar user.email 100 %}</div> | ||
| 114 | - <div class="user-info"> | ||
| 115 | - <span><b>{{ user.get_full_name }}</b></span> | ||
| 116 | - <span class="quiet">{{ user.email }}</span> | ||
| 117 | - </div> | ||
| 118 | - <div> | ||
| 119 | - <a class="btn btn-info pull-left" href="{% url 'user_profile' user.username %}">{% trans "My Profile" %}</a> | ||
| 120 | - {% trans 'Logout' as logout_text %} | ||
| 121 | - <a class="btn btn-default pull-right" href="{% url 'logout' %}"> {% trans "Logout" %}</a> | ||
| 122 | - </div> | ||
| 123 | - </div> | ||
| 124 | - </li> | ||
| 125 | - </ul> | ||
| 126 | - </li> | ||
| 127 | - {% endif %} | ||
| 128 | - </ul> | ||
| 129 | - | ||
| 130 | - <form action="{% url 'haystack_search' %}" method="GET" id="search-form" class="navbar-form navbar-right hidden-xs hidden-sm" role="search"> | ||
| 131 | - <div class="form-group"> | ||
| 132 | - <label class="sr-only" for="header-searchbox">{% trans 'Search here...' %}</label> | ||
| 133 | - <input name="q" id="header-searchbox" | ||
| 134 | - class="form-control" value="{{ request.GET.q }}" | ||
| 135 | - type="search" placeholder="{% trans 'Search here...' %}" /> | ||
| 136 | - </div> | ||
| 137 | - <button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button> | ||
| 138 | - </form> | ||
| 139 | - </div> | ||
| 140 | - </div> | ||
| 141 | - </nav> | ||
| 142 | - | 65 | + {% block header %} |
| 66 | + {% include 'header.html' %} | ||
| 143 | {% endblock %} | 67 | {% endblock %} |
| 144 | 68 | ||
| 145 | {% block messages %} | 69 | {% block messages %} |
| @@ -166,8 +90,6 @@ | @@ -166,8 +90,6 @@ | ||
| 166 | {% block main-content %}{% endblock %} | 90 | {% block main-content %}{% endblock %} |
| 167 | </div> | 91 | </div> |
| 168 | 92 | ||
| 169 | - <div class="row"> </div> | ||
| 170 | - | ||
| 171 | {% block footer %} | 93 | {% block footer %} |
| 172 | 94 | ||
| 173 | {% include "footer.html" %} | 95 | {% include "footer.html" %} |
colab/templates/header.html
| @@ -23,8 +23,6 @@ | @@ -23,8 +23,6 @@ | ||
| 23 | 23 | ||
| 24 | {% plugins_menu %} | 24 | {% plugins_menu %} |
| 25 | 25 | ||
| 26 | - <li><a href="/paste">{% trans "Paste" %}</a></li> | ||
| 27 | - | ||
| 28 | <li class="hidden-lg hidden-md"> | 26 | <li class="hidden-lg hidden-md"> |
| 29 | <a href="{% url 'haystack_search' %}?q=">{% trans "Search" %}</a> | 27 | <a href="{% url 'haystack_search' %}?q=">{% trans "Search" %}</a> |
| 30 | </li> | 28 | </li> |
| @@ -42,8 +40,8 @@ | @@ -42,8 +40,8 @@ | ||
| 42 | </ul> | 40 | </ul> |
| 43 | </li> | 41 | </li> |
| 44 | {% trans 'Login' as login_text %} | 42 | {% trans 'Login' as login_text %} |
| 45 | - <li class="visible-xs hidden-sm hidden-md"><a href="{% url 'signup' %}">{% trans "Register" %}</a></li> | ||
| 46 | - <li class="visible-xs hidden-sm hidden-md"><a href="{% url 'login' %}">{% trans "Login" %}</a></li> | 43 | + <li class="visible-xs hidden-sm hidden-md"><a href="{% url 'signup' %}">{% trans "Register" %}</a></li> |
| 44 | + <li class="visible-xs hidden-sm hidden-md"><a href="{% url 'login' %}">{% trans "Login" %}</a></li> | ||
| 47 | {% else %} | 45 | {% else %} |
| 48 | <li id="user-menu" class="dropdown"> | 46 | <li id="user-menu" class="dropdown"> |
| 49 | <a href="#" class="dropdown-toggle user" data-toggle="dropdown">{% gravatar user.email 40 %} <b class="caret"></b> </a> | 47 | <a href="#" class="dropdown-toggle user" data-toggle="dropdown">{% gravatar user.email 40 %} <b class="caret"></b> </a> |
| @@ -71,8 +69,8 @@ | @@ -71,8 +69,8 @@ | ||
| 71 | <div class="form-group"> | 69 | <div class="form-group"> |
| 72 | <label class="sr-only" for="header-searchbox">{% trans 'Search here...' %}</label> | 70 | <label class="sr-only" for="header-searchbox">{% trans 'Search here...' %}</label> |
| 73 | <input name="q" id="header-searchbox" | 71 | <input name="q" id="header-searchbox" |
| 74 | - class="form-control" value="{{ request.GET.q }}" | ||
| 75 | - type="search" placeholder="{% trans 'Search here...' %}" /> | 72 | + class="form-control" value="{{ request.GET.q }}" |
| 73 | + type="search" placeholder="{% trans 'Search here...' %}" /> | ||
| 76 | </div> | 74 | </div> |
| 77 | <button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button> | 75 | <button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button> |
| 78 | </form> | 76 | </form> |
colab/urls.py
| @@ -3,7 +3,7 @@ from django.conf import settings | @@ -3,7 +3,7 @@ from django.conf import settings | ||
| 3 | from django.views.generic import TemplateView | 3 | from django.views.generic import TemplateView |
| 4 | from django.contrib import admin | 4 | from django.contrib import admin |
| 5 | from django.views.generic import RedirectView | 5 | from django.views.generic import RedirectView |
| 6 | - | 6 | +from accounts.views import UserProfileUpdateView |
| 7 | 7 | ||
| 8 | admin.autodiscover() | 8 | admin.autodiscover() |
| 9 | 9 |
colab/utils/conf.py
| @@ -127,7 +127,7 @@ def load_colab_apps(): | @@ -127,7 +127,7 @@ def load_colab_apps(): | ||
| 127 | 127 | ||
| 128 | fields = ['verbose_name', 'upstream', 'urls', | 128 | fields = ['verbose_name', 'upstream', 'urls', |
| 129 | 'menu_urls', 'middlewares', 'dependencies', | 129 | 'menu_urls', 'middlewares', 'dependencies', |
| 130 | - 'context_processors', 'private_token', 'name'] | 130 | + 'context_processors', 'private_token', 'name', 'extra'] |
| 131 | 131 | ||
| 132 | for key in fields: | 132 | for key in fields: |
| 133 | value = py_settings_d.get(key) | 133 | value = py_settings_d.get(key) |
| @@ -137,6 +137,43 @@ def load_colab_apps(): | @@ -137,6 +137,43 @@ def load_colab_apps(): | ||
| 137 | return {'COLAB_APPS': COLAB_APPS} | 137 | return {'COLAB_APPS': COLAB_APPS} |
| 138 | 138 | ||
| 139 | 139 | ||
| 140 | +def load_widgets_settings(): | ||
| 141 | + settings_file = os.getenv('COLAB_WIDGETS_SETTINGS', | ||
| 142 | + '/etc/colab/widgets_settings.py') | ||
| 143 | + settings_module = settings_file.split('.')[-2].split('/')[-1] | ||
| 144 | + py_path = "/".join(settings_file.split('/')[:-1]) | ||
| 145 | + logger.info('Widgets Settings file: %s', settings_file) | ||
| 146 | + | ||
| 147 | + if not os.path.exists(py_path): | ||
| 148 | + return | ||
| 149 | + | ||
| 150 | + original_path = sys.path | ||
| 151 | + sys.path.append(py_path) | ||
| 152 | + importlib.import_module(settings_module) | ||
| 153 | + | ||
| 154 | + # Read settings from widgets.d | ||
| 155 | + settings_dir = os.getenv('COLAB_WIDGETS', | ||
| 156 | + '/etc/colab/widgets.d') | ||
| 157 | + logger.info('Widgets Settings directory: %s', settings_dir) | ||
| 158 | + sys.path = original_path | ||
| 159 | + | ||
| 160 | + if not os.path.exists(settings_dir): | ||
| 161 | + return | ||
| 162 | + | ||
| 163 | + for file_name in os.listdir(settings_dir): | ||
| 164 | + if not file_name.endswith('.py'): | ||
| 165 | + continue | ||
| 166 | + | ||
| 167 | + original_path = sys.path | ||
| 168 | + sys.path.append(settings_dir) | ||
| 169 | + | ||
| 170 | + file_module = file_name.split('.')[0] | ||
| 171 | + importlib.import_module(file_module) | ||
| 172 | + logger.info('Loaded %s/%s', settings_dir, file_name) | ||
| 173 | + | ||
| 174 | + sys.path = original_path | ||
| 175 | + | ||
| 176 | + | ||
| 140 | def validate_database(database_dict, default_db, debug): | 177 | def validate_database(database_dict, default_db, debug): |
| 141 | db_name = database_dict.get('default', {}).get('NAME') | 178 | db_name = database_dict.get('default', {}).get('NAME') |
| 142 | if not debug and db_name == default_db: | 179 | if not debug and db_name == default_db: |
| @@ -0,0 +1,12 @@ | @@ -0,0 +1,12 @@ | ||
| 1 | +from django.test import TestCase | ||
| 2 | + | ||
| 3 | +from colab.widgets.widget_manager import WidgetManager, Widget | ||
| 4 | + | ||
| 5 | +class WidgetManagerTest(TestCase): | ||
| 6 | + | ||
| 7 | + def test_add_widgets_to_key_area(self): | ||
| 8 | + area = 'profile' | ||
| 9 | + WidgetManager.register_widget(area, Widget()) | ||
| 10 | + | ||
| 11 | + self.assertEqual(len(WidgetManager.get_widgets(area)), 1) | ||
| 12 | + |
| @@ -0,0 +1,53 @@ | @@ -0,0 +1,53 @@ | ||
| 1 | +from django.utils.safestring import mark_safe | ||
| 2 | + | ||
| 3 | +class Widget(object): | ||
| 4 | + identifier = None | ||
| 5 | + name = None | ||
| 6 | + default_url = None | ||
| 7 | + content = '' | ||
| 8 | + | ||
| 9 | + def get_body(self): | ||
| 10 | + # avoiding regex in favor of performance | ||
| 11 | + start = self.content.find('<body>') | ||
| 12 | + end = self.content.find('</body>') | ||
| 13 | + | ||
| 14 | + if -1 in [start, end]: | ||
| 15 | + return '' | ||
| 16 | + | ||
| 17 | + body = self.content[start + len('<body>'):end] | ||
| 18 | + return mark_safe(body) | ||
| 19 | + | ||
| 20 | + def get_header(self): | ||
| 21 | + # avoiding regex in favor of performance | ||
| 22 | + start = self.content.find('<head>') | ||
| 23 | + end = self.content.find('</head>') | ||
| 24 | + | ||
| 25 | + if -1 in [start, end]: | ||
| 26 | + return '' | ||
| 27 | + | ||
| 28 | + head = self.content[start + len('<head>'):end] | ||
| 29 | + return mark_safe(head) | ||
| 30 | + | ||
| 31 | + def generate_content(self, request=None): | ||
| 32 | + self.content = '' | ||
| 33 | + | ||
| 34 | + | ||
| 35 | +class WidgetManager(object): | ||
| 36 | + widget_categories = {} | ||
| 37 | + | ||
| 38 | + @staticmethod | ||
| 39 | + def register_widget(category, widget): | ||
| 40 | + if not WidgetManager.widget_categories.has_key(category): | ||
| 41 | + WidgetManager.widget_categories[category] = [] | ||
| 42 | + | ||
| 43 | + WidgetManager.widget_categories[category].append(widget) | ||
| 44 | + | ||
| 45 | + @staticmethod | ||
| 46 | + def get_widgets(category, request=None): | ||
| 47 | + if not WidgetManager.widget_categories.has_key(category): | ||
| 48 | + return [] | ||
| 49 | + | ||
| 50 | + widgets = WidgetManager.widget_categories[category] | ||
| 51 | + for widget in widgets: | ||
| 52 | + widget.generate_content(request) | ||
| 53 | + return widgets |
No preview for this file type
misc/etc/cron.d/colab
| @@ -2,8 +2,6 @@ | @@ -2,8 +2,6 @@ | ||
| 2 | 2 | ||
| 3 | 34 2 * * * colab colab-admin rebuild_index --noinput &> /dev/null | 3 | 34 2 * * * colab colab-admin rebuild_index --noinput &> /dev/null |
| 4 | 4 | ||
| 5 | -* * * * * colab colab-admin import_proxy_data &> /dev/null | ||
| 6 | - | ||
| 7 | 27 3 * * * colab colab-admin clearsessions &> /dev/null | 5 | 27 3 * * * colab colab-admin clearsessions &> /dev/null |
| 8 | 6 | ||
| 9 | * * * * * colab colab-admin import_emails &> /dev/null | 7 | * * * * * colab colab-admin import_emails &> /dev/null |
misc/lib/systemd/system/colab.service
| @@ -3,6 +3,7 @@ Description=Colab | @@ -3,6 +3,7 @@ Description=Colab | ||
| 3 | 3 | ||
| 4 | [Service] | 4 | [Service] |
| 5 | User=colab | 5 | User=colab |
| 6 | +EnvironmentFile=-/etc/sysconfig/colab | ||
| 6 | PermissionsStartOnly=true | 7 | PermissionsStartOnly=true |
| 7 | ExecStartPre=/usr/bin/mkdir -p /var/lock/colab | 8 | ExecStartPre=/usr/bin/mkdir -p /var/lock/colab |
| 8 | ExecStartPre=/usr/bin/chown -R colab:colab /var/lock/colab | 9 | ExecStartPre=/usr/bin/chown -R colab:colab /var/lock/colab |
setup.py
| @@ -24,6 +24,7 @@ REQUIREMENTS = [ | @@ -24,6 +24,7 @@ REQUIREMENTS = [ | ||
| 24 | 'django-taggit>=0.12.1', | 24 | 'django-taggit>=0.12.1', |
| 25 | 'html2text>=3.200.3', | 25 | 'html2text>=3.200.3', |
| 26 | 'chardet>=2.3.0', | 26 | 'chardet>=2.3.0', |
| 27 | + 'requests>=2.7.0' | ||
| 27 | ] | 28 | ] |
| 28 | 29 | ||
| 29 | TEST_REQUIREMENTS = [ | 30 | TEST_REQUIREMENTS = [ |
| @@ -41,7 +42,7 @@ EXCLUDE_FROM_PACKAGES = [] | @@ -41,7 +42,7 @@ EXCLUDE_FROM_PACKAGES = [] | ||
| 41 | 42 | ||
| 42 | setup( | 43 | setup( |
| 43 | name='colab', | 44 | name='colab', |
| 44 | - version='1.10.1', | 45 | + version='1.11', |
| 45 | url='https://github.com/colab-community/colab', | 46 | url='https://github.com/colab-community/colab', |
| 46 | author='Sergio Oliveira', | 47 | author='Sergio Oliveira', |
| 47 | author_email='sergio@tracy.com.br', | 48 | author_email='sergio@tracy.com.br', |
tests/run.py
| @@ -5,7 +5,9 @@ import sys | @@ -5,7 +5,9 @@ import sys | ||
| 5 | 5 | ||
| 6 | os.environ['DJANGO_SETTINGS_MODULE'] = 'colab.settings' | 6 | os.environ['DJANGO_SETTINGS_MODULE'] = 'colab.settings' |
| 7 | os.environ['COLAB_SETTINGS'] = 'tests/colab_settings.py' | 7 | os.environ['COLAB_SETTINGS'] = 'tests/colab_settings.py' |
| 8 | +os.environ['COLAB_WIDGETS_SETTINGS'] = 'tests/widgets_settings.py' | ||
| 8 | os.environ['COLAB_PLUGINS'] = 'tests/plugins.d' | 9 | os.environ['COLAB_PLUGINS'] = 'tests/plugins.d' |
| 10 | +os.environ['COLAB_WIDGETS'] = 'tests/widgets.d' | ||
| 9 | os.environ['COVERAGE_PROCESS_START'] = '.coveragerc' | 11 | os.environ['COVERAGE_PROCESS_START'] = '.coveragerc' |
| 10 | 12 | ||
| 11 | 13 |