Commit 701f54a7 authored by matejcik's avatar matejcik

Merge branch 'master' into group-acl

parents bda745b3 8b8449f2
...@@ -25,6 +25,7 @@ Released on ? 2015. ...@@ -25,6 +25,7 @@ Released on ? 2015.
* Improved support for XLIFF files. * Improved support for XLIFF files.
* Extended list of options for import_project. * Extended list of options for import_project.
* Improved targeting for whiteboard messages. * Improved targeting for whiteboard messages.
* Support for automatic translation across projects.
weblate 2.4 weblate 2.4
----------- -----------
......
...@@ -22,4 +22,4 @@ import os ...@@ -22,4 +22,4 @@ import os
VIRTENV = os.environ['OPENSHIFT_PYTHON_DIR'] + '/virtenv/' VIRTENV = os.environ['OPENSHIFT_PYTHON_DIR'] + '/virtenv/'
VIRTUALENV = os.path.join(VIRTENV, 'bin/activate_this.py') VIRTUALENV = os.path.join(VIRTENV, 'bin/activate_this.py')
execfile(VIRTUALENV, dict(__file__=VIRTUALENV)) exec(open(VIRTUALENV).read(), dict(__file__=VIRTUALENV))
...@@ -28,8 +28,8 @@ sys.path.append(os.path.join(os.environ['OPENSHIFT_REPO_DIR'], 'openshift')) ...@@ -28,8 +28,8 @@ sys.path.append(os.path.join(os.environ['OPENSHIFT_REPO_DIR'], 'openshift'))
os.environ['DJANGO_SETTINGS_MODULE'] = 'weblate.settings_openshift' os.environ['DJANGO_SETTINGS_MODULE'] = 'weblate.settings_openshift'
execfile(os.path.join( exec(open(os.path.join(
os.environ['OPENSHIFT_REPO_DIR'], 'openshift', 'virtualenv.py' os.environ['OPENSHIFT_REPO_DIR'], 'openshift', 'virtualenv.py'
)) )).read())
application = get_wsgi_application() application = get_wsgi_application()
...@@ -22,9 +22,9 @@ ...@@ -22,9 +22,9 @@
import os import os
from string import Template from string import Template
execfile(os.path.join( exec(open(os.path.join(
os.environ['OPENSHIFT_REPO_DIR'], 'openshift', 'virtualenv.py' os.environ['OPENSHIFT_REPO_DIR'], 'openshift', 'virtualenv.py'
)) )).read())
def application(environ, start_response): def application(environ, start_response):
......
...@@ -7,9 +7,6 @@ ...@@ -7,9 +7,6 @@
# pygtk.require(). # pygtk.require().
#init-hook= #init-hook=
# Profiled execution.
profile=no
# Add files or directories to the blacklist. They should be base names, not # Add files or directories to the blacklist. They should be base names, not
# paths. # paths.
ignore=migrations,settings.py,settings_openshift.py,settings_test.py,settings_test_mysql.py,settings_test_postgresql.py,settings_test_sqlite.py,.git,test-repos,repos,settings_test_nose.py ignore=migrations,settings.py,settings_openshift.py,settings_test.py,settings_test_mysql.py,settings_test_postgresql.py,settings_test_sqlite.py,.git,test-repos,repos,settings_test_nose.py
...@@ -43,14 +40,12 @@ load-plugins=pylint_django ...@@ -43,14 +40,12 @@ load-plugins=pylint_django
# W0142 Used * or * magic* Used when a function or method is called using *args or **kwargs to dispatch arguments. # W0142 Used * or * magic* Used when a function or method is called using *args or **kwargs to dispatch arguments.
# W0613 Unused argument %r Used when a function or method argument is not used. # W0613 Unused argument %r Used when a function or method argument is not used.
# R0201 Method could be a function # R0201 Method could be a function
# E1101 does not work well on metaclasses like Django models or Mechanize browser
# E1103 does not work with WSGIRequest or file objects # E1103 does not work with WSGIRequest or file objects
# W0703 Catching too general exception Exception # W0703 Catching too general exception Exception
# R0921,R0922 Is raised when abstract classes are used in different module # R0921,R0922 Is raised when abstract classes are used in different module
# E1002 Produces lot of false positives with Django 1.5
# R0401(cyclic-import) we have too many of them # R0401(cyclic-import) we have too many of them
# C0411(wrong-import-order) should be probably fixed # W0122(exec-used) exec is used in openshift
disable=C0111,I0011,W0142,W0613,W0703,R0201,E1103,E1101,R0401,R0921,R0922,E1002,C0411 disable=C0111,I0011,W0142,W0613,W0703,R0201,E1103,R0401,R0921,R0922,W0122
[REPORTS] [REPORTS]
...@@ -75,10 +70,6 @@ reports=no ...@@ -75,10 +70,6 @@ reports=no
# (RP0004). # (RP0004).
evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)
# Add a comment according to your evaluation note. This is used by the global
# evaluation report (RP0004).
comment=no
# Template used to display messages. This is a python new-style format string # Template used to display messages. This is a python new-style format string
# used to format the message information. See doc for all details # used to format the message information. See doc for all details
msg-template={path}:{line}: [{msg_id}({symbol}), {obj}] {msg} msg-template={path}:{line}: [{msg_id}({symbol}), {obj}] {msg}
...@@ -99,10 +90,6 @@ ignored-modules=six.moves ...@@ -99,10 +90,6 @@ ignored-modules=six.moves
# (useful for classes with attributes dynamically set). # (useful for classes with attributes dynamically set).
ignored-classes=SQLObject ignored-classes=SQLObject
# When zope mode is activated, add a predefined set of Zope acquired attributes
# to generated-members.
zope=no
# List of members which are set dynamically and missed by pylint inference # List of members which are set dynamically and missed by pylint inference
# system, and so shouldn't trigger E0201 when accessed. Python regular # system, and so shouldn't trigger E0201 when accessed. Python regular
# expressions are accepted. # expressions are accepted.
...@@ -126,7 +113,7 @@ additional-builtins= ...@@ -126,7 +113,7 @@ additional-builtins=
[FORMAT] [FORMAT]
# Maximum number of characters on a single line. # Maximum number of characters on a single line.
max-line-length=80 max-line-length=79
# Regexp for a line that is allowed to be longer than the limit. # Regexp for a line that is allowed to be longer than the limit.
ignore-long-lines=^\s*(# )?<?https?://\S+>?$ ignore-long-lines=^\s*(# )?<?https?://\S+>?$
...@@ -172,9 +159,6 @@ ignore-imports=no ...@@ -172,9 +159,6 @@ ignore-imports=no
[BASIC] [BASIC]
# Required attributes for module, separated by a comma
required-attributes=
# List of builtins function names that should not be used, separated by a comma # List of builtins function names that should not be used, separated by a comma
bad-functions=map,filter,apply,input,file bad-functions=map,filter,apply,input,file
...@@ -321,10 +305,6 @@ max-public-methods=110 ...@@ -321,10 +305,6 @@ max-public-methods=110
[CLASSES] [CLASSES]
# List of interface methods to ignore, separated by a comma. This is used for
# instance to not check methods defines in Zope's Interface base class.
ignore-iface-methods=isImplementedBy,deferred,extends,names,namesAndDescriptions,queryDescriptionFor,getBases,getDescriptionFor,getDoc,getName,getTaggedValue,getTaggedValueTags,isEqualOrExtendedBy,setTaggedValue,isImplementedByInstancesOf,adaptWith,is_implemented_by
# List of method names used to declare (i.e. assign) instance attributes. # List of method names used to declare (i.e. assign) instance attributes.
defining-attr-methods=__init__,__new__,setUp defining-attr-methods=__init__,__new__,setUp
......
...@@ -19,10 +19,11 @@ ...@@ -19,10 +19,11 @@
# #
from django.contrib import admin from django.contrib import admin
from weblate.accounts.models import Profile, VerifiedEmail
from django.contrib.auth.admin import UserAdmin from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User from django.contrib.auth.models import User
from weblate.accounts.models import Profile, VerifiedEmail
class ProfileAdmin(admin.ModelAdmin): class ProfileAdmin(admin.ModelAdmin):
list_display = [ list_display = [
......
...@@ -20,12 +20,6 @@ ...@@ -20,12 +20,6 @@
import sys import sys
from weblate.appsettings import ANONYMOUS_USER_NAME
from weblate.trans.util import report_error
import social.backends.email
from social.exceptions import AuthMissingParameter
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.contrib import messages from django.contrib import messages
from django.shortcuts import redirect from django.shortcuts import redirect
...@@ -33,9 +27,14 @@ from django.core.urlresolvers import reverse ...@@ -33,9 +27,14 @@ from django.core.urlresolvers import reverse
from django.db.models.signals import pre_save from django.db.models.signals import pre_save
from django.dispatch.dispatcher import receiver from django.dispatch.dispatcher import receiver
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from django.contrib.auth.backends import ModelBackend from django.contrib.auth.backends import ModelBackend
import social.backends.email
from social.exceptions import AuthMissingParameter
from weblate.appsettings import ANONYMOUS_USER_NAME
from weblate.trans.util import report_error
class EmailAuth(social.backends.email.EmailAuth): class EmailAuth(social.backends.email.EmailAuth):
"""Social auth handler to better report errors.""" """Social auth handler to better report errors."""
......
...@@ -23,8 +23,10 @@ from __future__ import unicode_literals ...@@ -23,8 +23,10 @@ from __future__ import unicode_literals
import sys import sys
import hashlib import hashlib
import os.path import os.path
from six.moves.urllib.request import Request, urlopen from six.moves.urllib.request import Request, urlopen
from six.moves.urllib.parse import urlencode from six.moves.urllib.parse import urlencode
from django.core.cache import caches, InvalidCacheBackendError from django.core.cache import caches, InvalidCacheBackendError
from django.utils.html import escape from django.utils.html import escape
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
...@@ -32,17 +34,17 @@ from django.utils.translation import pgettext ...@@ -32,17 +34,17 @@ from django.utils.translation import pgettext
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.conf import settings from django.conf import settings
from weblate import USER_AGENT
from weblate.logger import LOGGER
from weblate import appsettings
from weblate.trans.util import report_error
try: try:
import libravatar # pylint: disable=import-error import libravatar # pylint: disable=import-error
HAS_LIBRAVATAR = True HAS_LIBRAVATAR = True
except ImportError: except ImportError:
HAS_LIBRAVATAR = False HAS_LIBRAVATAR = False
from weblate import USER_AGENT
from weblate.logger import LOGGER
from weblate import appsettings
from weblate.trans.util import report_error
def avatar_for_email(email, size=80): def avatar_for_email(email, size=80):
""" """
......
...@@ -22,14 +22,15 @@ Simple mathematical captcha. ...@@ -22,14 +22,15 @@ Simple mathematical captcha.
""" """
from __future__ import unicode_literals from __future__ import unicode_literals
from django.conf import settings
import hashlib
import binascii
import time
from random import randint, choice
import ast import ast
import binascii
import hashlib
import operator import operator
from random import randint, choice
import time
from django.conf import settings
TIMEDELTA = 600 TIMEDELTA = 600
......
...@@ -29,18 +29,18 @@ from django.contrib.auth.models import User ...@@ -29,18 +29,18 @@ from django.contrib.auth.models import User
from django.utils.encoding import force_text from django.utils.encoding import force_text
from crispy_forms.helper import FormHelper from crispy_forms.helper import FormHelper
from weblate.accounts.models import Profile, VerifiedEmail
from weblate.accounts.captcha import MathCaptcha
from weblate.lang.models import Language
from weblate.trans.models import Project
from weblate.logger import LOGGER
try: try:
import pyuca # pylint: disable=import-error import pyuca # pylint: disable=import-error
HAS_PYUCA = True HAS_PYUCA = True
except ImportError: except ImportError:
HAS_PYUCA = False HAS_PYUCA = False
from weblate.accounts.models import Profile, VerifiedEmail
from weblate.accounts.captcha import MathCaptcha
from weblate.lang.models import Language
from weblate.trans.models import Project
from weblate.logger import LOGGER
def remove_accents(input_str): def remove_accents(input_str):
""" """
......
...@@ -18,9 +18,10 @@ ...@@ -18,9 +18,10 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
from optparse import make_option
from django.core.management.base import BaseCommand, CommandError from django.core.management.base import BaseCommand, CommandError
from django.contrib.sites.models import Site from django.contrib.sites.models import Site
from optparse import make_option
class Command(BaseCommand): class Command(BaseCommand):
......
...@@ -18,11 +18,12 @@ ...@@ -18,11 +18,12 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
from django.core.management.base import BaseCommand
from django.contrib.auth.models import User
from optparse import make_option from optparse import make_option
import string
import random import random
import string
from django.core.management.base import BaseCommand
from django.contrib.auth.models import User
class Command(BaseCommand): class Command(BaseCommand):
......
...@@ -18,9 +18,11 @@ ...@@ -18,9 +18,11 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import json
from django.core.management.base import BaseCommand, CommandError from django.core.management.base import BaseCommand, CommandError
from weblate.accounts.models import Profile from weblate.accounts.models import Profile
import json
class Command(BaseCommand): class Command(BaseCommand):
......
...@@ -18,12 +18,14 @@ ...@@ -18,12 +18,14 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import json
from django.core.management.base import BaseCommand, CommandError from django.core.management.base import BaseCommand, CommandError
from django.contrib.auth.models import User from django.contrib.auth.models import User
from weblate.accounts.models import Profile from weblate.accounts.models import Profile
from weblate.lang.models import Language from weblate.lang.models import Language
from weblate.trans.models import Project from weblate.trans.models import Project
import json
class Command(BaseCommand): class Command(BaseCommand):
......
...@@ -19,11 +19,13 @@ ...@@ -19,11 +19,13 @@
# #
from __future__ import unicode_literals from __future__ import unicode_literals
from django.core.management.base import BaseCommand, CommandError
from django.contrib.auth.models import User
from optparse import make_option from optparse import make_option
import json import json
from django.core.management.base import BaseCommand, CommandError
from django.contrib.auth.models import User
class Command(BaseCommand): class Command(BaseCommand):
help = 'imports users from JSON dump of database' help = 'imports users from JSON dump of database'
......
...@@ -18,8 +18,10 @@ ...@@ -18,8 +18,10 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
from django.core.management.base import BaseCommand
from optparse import make_option from optparse import make_option
from django.core.management.base import BaseCommand
from weblate.accounts.models import create_groups, move_users from weblate.accounts.models import create_groups, move_users
......
...@@ -30,6 +30,7 @@ from django.conf import settings ...@@ -30,6 +30,7 @@ from django.conf import settings
from django.contrib.auth.signals import user_logged_in from django.contrib.auth.signals import user_logged_in
from django.db.models.signals import post_save, post_migrate from django.db.models.signals import post_save, post_migrate
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.utils.encoding import python_2_unicode_compatible, force_text
from django.contrib.auth.models import Group, User, Permission from django.contrib.auth.models import Group, User, Permission
from django.utils import translation as django_translation from django.utils import translation as django_translation
from django.template.loader import render_to_string from django.template.loader import render_to_string
...@@ -286,7 +287,7 @@ def get_notification_email(language, email, notification, ...@@ -286,7 +287,7 @@ def get_notification_email(language, email, notification,
headers['References'] = references headers['References'] = references
try: try:
if info is None: if info is None:
info = translation_obj.__unicode__() info = force_text(translation_obj)
LOGGER.info( LOGGER.info(
'sending notification %s on %s to %s', 'sending notification %s on %s to %s',
notification, notification,
...@@ -375,6 +376,7 @@ def send_notification_email(language, email, notification, ...@@ -375,6 +376,7 @@ def send_notification_email(language, email, notification,
send_mails([email]) send_mails([email])
@python_2_unicode_compatible
class VerifiedEmail(models.Model): class VerifiedEmail(models.Model):
''' '''
Storage for verified emails from auth backends. Storage for verified emails from auth backends.
...@@ -382,7 +384,7 @@ class VerifiedEmail(models.Model): ...@@ -382,7 +384,7 @@ class VerifiedEmail(models.Model):
social = models.ForeignKey(UserSocialAuth) social = models.ForeignKey(UserSocialAuth)
email = models.EmailField(max_length=254) email = models.EmailField(max_length=254)
def __unicode__(self): def __str__(self):
return '{0} - {1}'.format( return '{0} - {1}'.format(
self.social.user.username, self.social.user.username,
self.email self.email
...@@ -455,6 +457,7 @@ class ProfileManager(models.Manager): ...@@ -455,6 +457,7 @@ class ProfileManager(models.Manager):
return self.filter(subscribe_merge_failure=True, subscriptions=project) return self.filter(subscribe_merge_failure=True, subscriptions=project)
@python_2_unicode_compatible
class Profile(models.Model): class Profile(models.Model):
''' '''
User profiles storage. User profiles storage.
...@@ -540,7 +543,7 @@ class Profile(models.Model): ...@@ -540,7 +543,7 @@ class Profile(models.Model):
objects = ProfileManager() objects = ProfileManager()
def __unicode__(self): def __str__(self):
return self.user.username return self.user.username
def get_user_display(self): def get_user_display(self):
......
...@@ -19,13 +19,15 @@ ...@@ -19,13 +19,15 @@
# #
from __future__ import unicode_literals from __future__ import unicode_literals
import json
from django.shortcuts import redirect from django.shortcuts import redirect
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from six.moves.urllib.request import Request, urlopen from six.moves.urllib.request import Request, urlopen
import json
from social.pipeline.partial import partial from social.pipeline.partial import partial
from social.exceptions import ( from social.exceptions import (
......
...@@ -18,10 +18,12 @@ ...@@ -18,10 +18,12 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
from social.strategies.django_strategy import DjangoStrategy
from importlib import import_module from importlib import import_module
from django.conf import settings from django.conf import settings
from social.strategies.django_strategy import DjangoStrategy
class WeblateStrategy(DjangoStrategy): class WeblateStrategy(DjangoStrategy):
def __init__(self, storage, request=None, tpl=None): def __init__(self, storage, request=None, tpl=None):
......
...@@ -22,8 +22,10 @@ ...@@ -22,8 +22,10 @@
Tests for user handling. Tests for user handling.
""" """
from django.test import TestCase
from unittest import SkipTest from unittest import SkipTest
from django.test import TestCase
import weblate.accounts.forms import weblate.accounts.forms
......
...@@ -22,9 +22,11 @@ ...@@ -22,9 +22,11 @@
Tests for user handling. Tests for user handling.
""" """
import json
import httpretty import httpretty
from six.moves.urllib.parse import parse_qs, urlparse from six.moves.urllib.parse import parse_qs, urlparse
import json
from django.test import TestCase from django.test import TestCase
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.contrib.auth.models import User from django.contrib.auth.models import User
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
# #
from __future__ import unicode_literals from __future__ import unicode_literals
from django.shortcuts import render, get_object_or_404, redirect from django.shortcuts import render, get_object_or_404, redirect
from django.views.decorators.cache import cache_page from django.views.decorators.cache import cache_page
from django.http import HttpResponse from django.http import HttpResponse
...@@ -38,14 +39,14 @@ from django.core.urlresolvers import reverse ...@@ -38,14 +39,14 @@ from django.core.urlresolvers import reverse
from six.moves.urllib.parse import urlencode from six.moves.urllib.parse import urlencode
from weblate.accounts.forms import (
RegistrationForm, PasswordForm, PasswordChangeForm, EmailForm, ResetForm,
LoginForm, HostingForm, CaptchaRegistrationForm
)
from social.backends.utils import load_backends from social.backends.utils import load_backends
from social.apps.django_app.utils import BACKENDS from social.apps.django_app.utils import BACKENDS
from social.apps.django_app.views import complete from social.apps.django_app.views import complete
from weblate.accounts.forms import (
RegistrationForm, PasswordForm, PasswordChangeForm, EmailForm, ResetForm,
LoginForm, HostingForm, CaptchaRegistrationForm
)
from weblate.logger import LOGGER from weblate.logger import LOGGER
from weblate.accounts.avatar import get_avatar_image, get_fallback_avatar_url from weblate.accounts.avatar import get_avatar_image, get_fallback_avatar_url
from weblate.accounts.models import set_lang, remove_user, Profile from weblate.accounts.models import set_lang, remove_user, Profile
......
...@@ -18,8 +18,8 @@ ...@@ -18,8 +18,8 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
from django.conf import settings
import os import os
from django.conf import settings
def get_script_name(name): def get_script_name(name):
......
...@@ -19,17 +19,20 @@ ...@@ -19,17 +19,20 @@
# #
from __future__ import unicode_literals from __future__ import unicode_literals
from datetime import timedelta
from django.db import models from django.db import models
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.utils.encoding import python_2_unicode_compatible
from django.utils import timezone from django.utils import timezone
from datetime import timedelta
from weblate.trans.models import Project, SubProject, Change from weblate.trans.models import Project, SubProject, Change
from weblate.lang.models import Language from weblate.lang.models import Language
@python_2_unicode_compatible
class Plan(models.Model): class Plan(models.Model):
name = models.CharField(max_length=100, unique=True) name = models.CharField(max_length=100, unique=True)
price = models.IntegerField(default=0) price = models.IntegerField(default=0)
...@@ -46,17 +49,18 @@ class Plan(models.Model): ...@@ -46,17 +49,18 @@ class Plan(models.Model):
class Meta(object): class Meta(object):
ordering = ['price'] ordering = ['price']
def __unicode__(self): def __str__(self):
return self.name return self.name
@python_2_unicode_compatible
class Billing(models.Model): class Billing(models.Model):
plan = models.ForeignKey(Plan) plan = models.ForeignKey(Plan)
user = models.OneToOneField(User) user = models.OneToOneField(User)
projects = models.ManyToManyField(Project, blank=True) projects = models.ManyToManyField(Project, blank=True)
trial = models.BooleanField(default=False) trial = models.BooleanField(default=False)
def __unicode__(self): def __str__(self):
return '{0} ({1})'.format(self.user, self.plan) return '{0} ({1})'.format(self.user, self.plan)
def count_changes(self, interval): def count_changes(self, interval):
......
...@@ -18,8 +18,10 @@ ...@@ -18,8 +18,10 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
from django.core.management.base import BaseCommand
from optparse import make_option from optparse import make_option
from django.core.management.base import BaseCommand
from weblate.lang.models import Language from weblate.lang.models import Language
......
...@@ -19,9 +19,10 @@ ...@@ -19,9 +19,10 @@
# #
from __future__ import unicode_literals from __future__ import unicode_literals
from django.db import models, transaction from django.db import models, transaction
from django.db.utils import OperationalError from django.db.utils import OperationalError
from django.utils.encoding import force_text from django.utils.encoding import python_2_unicode_compatible, force_text
from django.utils.translation import ugettext as _, ugettext_lazy from django.utils.translation import ugettext as _, ugettext_lazy
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
from django.dispatch import receiver from django.dispatch import receiver
...@@ -343,6 +344,7 @@ def setup_lang(sender, **kwargs): ...@@ -343,6 +344,7 @@ def setup_lang(sender, **kwargs):
Language.objects.setup(False) Language.objects.setup(False)
@python_2_unicode_compatible
class Language(models.Model, PercentMixin): class Language(models.Model, PercentMixin):
PLURAL_CHOICES = ( PLURAL_CHOICES = (
(data.PLURAL_NONE, 'None'), (data.PLURAL_NONE, 'None'),
...@@ -387,7 +389,7 @@ class Language(models.Model, PercentMixin): ...@@ -387,7 +389,7 @@ class Language(models.Model, PercentMixin):
super(Language, self).__init__(*args, **kwargs) super(Language, self).__init__(*args, **kwargs)
self._percents = None self._percents = None
def __unicode__(self): def __str__(self):
if self.show_language_code: if self.show_language_code:
return '{0} ({1})'.format( return '{0} ({1})'.format(
_(self.name), self.code _(self.name), self.code
......
This diff is collapsed.
...@@ -8,16 +8,16 @@ msgstr "" ...@@ -8,16 +8,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: weblate@lists.cihar.com\n" "Report-Msgid-Bugs-To: weblate@lists.cihar.com\n"
"POT-Creation-Date: 2015-12-22 10:51+0000\n" "POT-Creation-Date: 2015-12-22 10:51+0000\n"
"PO-Revision-Date: 2015-05-12 15:53+0200\n" "PO-Revision-Date: 2016-01-14 15:07+0000\n"
"Last-Translator: Sevdimali İsa <sevdimaliisayev@mail.ru>\n" "Last-Translator: Michal Čihař <michal@cihar.com>\n"
"Language-Team: Azerbaijani <https://hosted.weblate.org/projects/weblate/" "Language-Team: Azerbaijani "
"master/az/>\n" "<https://hosted.weblate.org/projects/weblate/master/az/>\n"
"Language: az\n" "Language: az\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 2.3-dev\n" "X-Generator: Weblate 2.5-dev\n"
#: weblate/accounts/auth.py:47 #: weblate/accounts/auth.py:47
msgid "" msgid ""
...@@ -1208,10 +1208,9 @@ msgid "Your translations" ...@@ -1208,10 +1208,9 @@ msgid "Your translations"
msgstr "Tərcümələriniz" msgstr "Tərcümələriniz"
#: weblate/html/base.html:110 #: weblate/html/base.html:110
#, fuzzy
#| msgid "Registration" #| msgid "Registration"
msgid "Administration" msgid "Administration"
msgstr "Qeydiyyatdan keç" msgstr "Administrasiya"
#: weblate/html/base.html:112 #: weblate/html/base.html:112
msgid "Logout" msgid "Logout"
...@@ -3151,10 +3150,9 @@ msgid "Loading…" ...@@ -3151,10 +3150,9 @@ msgid "Loading…"
msgstr "Yüklənir…" msgstr "Yüklənir…"
#: weblate/html/project.html:159 #: weblate/html/project.html:159
#, fuzzy
#| msgid "User" #| msgid "User"
msgid "Users" msgid "Users"
msgstr "İstifadəçi" msgstr "İstifadəçilər"
#: weblate/html/project.html:173 #: weblate/html/project.html:173
msgid "Owner" msgid "Owner"
......
...@@ -8,16 +8,16 @@ msgstr "" ...@@ -8,16 +8,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: weblate@lists.cihar.com\n" "Report-Msgid-Bugs-To: weblate@lists.cihar.com\n"
"POT-Creation-Date: 2015-12-22 10:51+0000\n" "POT-Creation-Date: 2015-12-22 10:51+0000\n"
"PO-Revision-Date: 2014-10-10 17:28+0200\n" "PO-Revision-Date: 2016-01-14 15:07+0000\n"
"Last-Translator: Michal Čihař <michal@cihar.com>\n" "Last-Translator: Michal Čihař <michal@cihar.com>\n"
"Language-Team: Breton <https://hosted.weblate.org/projects/weblate/bootstrap/" "Language-Team: Breton "
"br/>\n" "<https://hosted.weblate.org/projects/weblate/master/br/>\n"
"Language: br\n" "Language: br\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n" "Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 1.10-dev\n" "X-Generator: Weblate 2.5-dev\n"
#: weblate/accounts/auth.py:47 #: weblate/accounts/auth.py:47
msgid "" msgid ""
...@@ -792,10 +792,9 @@ msgstr "Enrollañ" ...@@ -792,10 +792,9 @@ msgstr "Enrollañ"
#: weblate/html/accounts/profile.html:228 #: weblate/html/accounts/profile.html:228
#: weblate/html/accounts/profile.html:273 #: weblate/html/accounts/profile.html:273
#: weblate/html/accounts/profile.html:326 #: weblate/html/accounts/profile.html:326
#, fuzzy
#| msgid "Subscriptions" #| msgid "Subscriptions"
msgid "Description" msgid "Description"
msgstr "Koumanantoù" msgstr "Deskrivadur"
#: weblate/html/accounts/profile.html:49 #: weblate/html/accounts/profile.html:49
msgid "" msgid ""
...@@ -1133,7 +1132,7 @@ msgstr "" ...@@ -1133,7 +1132,7 @@ msgstr ""
#: weblate/html/admin/ssh.html:28 weblate/html/subproject.html.py:164 #: weblate/html/admin/ssh.html:28 weblate/html/subproject.html.py:164
#: weblate/html/subproject.html:179 #: weblate/html/subproject.html:179
msgid "Generate" msgid "Generate"
msgstr "" msgstr "Genel"
#: weblate/html/admin/ssh.html:34 #: weblate/html/admin/ssh.html:34
msgid "Known host keys" msgid "Known host keys"
...@@ -1450,10 +1449,9 @@ msgid "Words" ...@@ -1450,10 +1449,9 @@ msgid "Words"
msgstr "Gerioù" msgstr "Gerioù"
#: weblate/html/dictionary.html:15 #: weblate/html/dictionary.html:15
#, fuzzy
#| msgid "Browse changes" #| msgid "Browse changes"
msgid "Browse" msgid "Browse"
msgstr "Furchal er c'hemmoù" msgstr "Furchal"
#: weblate/html/dictionary.html:17 #: weblate/html/dictionary.html:17
msgid "Add new word" msgid "Add new word"
...@@ -2596,7 +2594,7 @@ msgstr "" ...@@ -2596,7 +2594,7 @@ msgstr ""
#: weblate/html/js/git-status.html:153 #: weblate/html/js/git-status.html:153
msgid "Reset" msgid "Reset"
msgstr "" msgstr "Adderaouekaat"
#: weblate/html/js/git-status.html:156 #: weblate/html/js/git-status.html:156
msgid "Reset all changes in the local repository" msgid "Reset all changes in the local repository"
......
...@@ -8,10 +8,10 @@ msgstr "" ...@@ -8,10 +8,10 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: weblate@lists.cihar.com\n" "Report-Msgid-Bugs-To: weblate@lists.cihar.com\n"
"POT-Creation-Date: 2015-12-22 10:51+0000\n" "POT-Creation-Date: 2015-12-22 10:51+0000\n"
"PO-Revision-Date: 2015-10-08 15:03+0200\n" "PO-Revision-Date: 2016-01-14 15:07+0000\n"
"Last-Translator: Joan Montané <joan@montane.cat>\n" "Last-Translator: Michal Čihař <michal@cihar.com>\n"
"Language-Team: Catalan <https://hosted.weblate.org/projects/weblate/master/" "Language-Team: Catalan "
"ca/>\n" "<https://hosted.weblate.org/projects/weblate/master/ca/>\n"
"Language: ca\n" "Language: ca\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
...@@ -2494,7 +2494,7 @@ msgstr "" ...@@ -2494,7 +2494,7 @@ msgstr ""
#: weblate/html/js/git-status.html:153 #: weblate/html/js/git-status.html:153
msgid "Reset" msgid "Reset"
msgstr "" msgstr "Reinicia"
#: weblate/html/js/git-status.html:156 #: weblate/html/js/git-status.html:156
msgid "Reset all changes in the local repository" msgid "Reset all changes in the local repository"
...@@ -2823,7 +2823,7 @@ msgstr "hi ha cadenes noves a traduir sobre %(translation)s al %(site_title)s." ...@@ -2823,7 +2823,7 @@ msgstr "hi ha cadenes noves a traduir sobre %(translation)s al %(site_title)s."
#: weblate/html/mail/new_comment.html:28 weblate/html/mail/new_comment.txt:9 #: weblate/html/mail/new_comment.html:28 weblate/html/mail/new_comment.txt:9
#: weblate/html/unit-context.html.py:8 #: weblate/html/unit-context.html.py:8
msgid "Comment:" msgid "Comment:"
msgstr "" msgstr "Comentari:"
#: weblate/html/mail/new_comment_subject.txt:3 #: weblate/html/mail/new_comment_subject.txt:3
#, python-format #, python-format
...@@ -3608,7 +3608,7 @@ msgstr "" ...@@ -3608,7 +3608,7 @@ msgstr ""
#: weblate/html/translation.html:305 #: weblate/html/translation.html:305
msgid "Total" msgid "Total"
msgstr "" msgstr "Total"
#: weblate/html/translation.html:317 #: weblate/html/translation.html:317
msgid "Fuzzy" msgid "Fuzzy"
...@@ -4607,7 +4607,7 @@ msgstr "" ...@@ -4607,7 +4607,7 @@ msgstr ""
#: weblate/trans/models/advertisement.py:110 #: weblate/trans/models/advertisement.py:110
msgid "Text" msgid "Text"
msgstr "" msgstr "Text"
#: weblate/trans/models/advertisement.py:112 #: weblate/trans/models/advertisement.py:112
msgid "Depending on placement, HTML can be allowed." msgid "Depending on placement, HTML can be allowed."
......
This diff is collapsed.
...@@ -3,25 +3,26 @@ ...@@ -3,25 +3,26 @@
# This file is distributed under the same license as the PACKAGE package. # This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
# #
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: weblate@lists.cihar.com\n" "Report-Msgid-Bugs-To: weblate@lists.cihar.com\n"
"POT-Creation-Date: 2015-12-22 10:51+0000\n" "POT-Creation-Date: 2015-12-22 10:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: 2016-01-14 15:11+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: Michal Čihař <michal@cihar.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: Esperanto "
"Language: \n" "<https://hosted.weblate.org/projects/weblate/javascript/eo/>\n"
"Language: eo\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 2.5-dev\n"
#. Translators: Verb for copy operation #. Translators: Verb for copy operation
#: weblate/static/loader-bootstrap.js:183 #: weblate/static/loader-bootstrap.js:183
msgid "Copy" msgid "Copy"
msgstr "" msgstr "Kopii"
#: weblate/static/loader-bootstrap.js:202 #: weblate/static/loader-bootstrap.js:202
#, javascript-format #, javascript-format
...@@ -47,31 +48,31 @@ msgstr "" ...@@ -47,31 +48,31 @@ msgstr ""
#: weblate/static/loader-bootstrap.js:699 #: weblate/static/loader-bootstrap.js:699
#: weblate/static/loader-bootstrap.js:701 #: weblate/static/loader-bootstrap.js:701
msgid "Sunday" msgid "Sunday"
msgstr "" msgstr "dimanĉo"
#: weblate/static/loader-bootstrap.js:699 #: weblate/static/loader-bootstrap.js:699
msgid "Monday" msgid "Monday"
msgstr "" msgstr "lundo"
#: weblate/static/loader-bootstrap.js:699 #: weblate/static/loader-bootstrap.js:699
msgid "Tuesday" msgid "Tuesday"
msgstr "" msgstr "mardo"
#: weblate/static/loader-bootstrap.js:700 #: weblate/static/loader-bootstrap.js:700
msgid "Wednesday" msgid "Wednesday"
msgstr "" msgstr "merkredo"
#: weblate/static/loader-bootstrap.js:700 #: weblate/static/loader-bootstrap.js:700
msgid "Thursday" msgid "Thursday"
msgstr "" msgstr "ĵaŭdo"
#: weblate/static/loader-bootstrap.js:700 #: weblate/static/loader-bootstrap.js:700
msgid "Friday" msgid "Friday"
msgstr "" msgstr "vendredo"
#: weblate/static/loader-bootstrap.js:701 #: weblate/static/loader-bootstrap.js:701
msgid "Saturday" msgid "Saturday"
msgstr "" msgstr "sabato"
#: weblate/static/loader-bootstrap.js:704 #: weblate/static/loader-bootstrap.js:704
#: weblate/static/loader-bootstrap.js:711 #: weblate/static/loader-bootstrap.js:711
...@@ -147,51 +148,51 @@ msgstr "" ...@@ -147,51 +148,51 @@ msgstr ""
#: weblate/static/loader-bootstrap.js:724 #: weblate/static/loader-bootstrap.js:724
msgid "January" msgid "January"
msgstr "" msgstr "januaro"
#: weblate/static/loader-bootstrap.js:724 #: weblate/static/loader-bootstrap.js:724
msgid "February" msgid "February"
msgstr "" msgstr "februaro"
#: weblate/static/loader-bootstrap.js:724 #: weblate/static/loader-bootstrap.js:724
msgid "March" msgid "March"
msgstr "" msgstr "marto"
#: weblate/static/loader-bootstrap.js:725 #: weblate/static/loader-bootstrap.js:725
msgid "April" msgid "April"
msgstr "" msgstr "aprilo"
#: weblate/static/loader-bootstrap.js:725 #: weblate/static/loader-bootstrap.js:725
msgid "May" msgid "May"
msgstr "" msgstr "majo"
#: weblate/static/loader-bootstrap.js:725 #: weblate/static/loader-bootstrap.js:725
msgid "June" msgid "June"
msgstr "" msgstr "junio"
#: weblate/static/loader-bootstrap.js:725 #: weblate/static/loader-bootstrap.js:725
msgid "July" msgid "July"
msgstr "" msgstr "julio"
#: weblate/static/loader-bootstrap.js:726 #: weblate/static/loader-bootstrap.js:726
msgid "August" msgid "August"
msgstr "" msgstr "aŭgusto"
#: weblate/static/loader-bootstrap.js:726 #: weblate/static/loader-bootstrap.js:726
msgid "September" msgid "September"
msgstr "" msgstr "septembro"
#: weblate/static/loader-bootstrap.js:726 #: weblate/static/loader-bootstrap.js:726
msgid "October" msgid "October"
msgstr "" msgstr "oktobro"
#: weblate/static/loader-bootstrap.js:727 #: weblate/static/loader-bootstrap.js:727
msgid "November" msgid "November"
msgstr "" msgstr "novembro"
#: weblate/static/loader-bootstrap.js:727 #: weblate/static/loader-bootstrap.js:727
msgid "December" msgid "December"
msgstr "" msgstr "decembro"
#: weblate/static/loader-bootstrap.js:730 #: weblate/static/loader-bootstrap.js:730
msgctxt "Short name of month" msgctxt "Short name of month"
...@@ -255,8 +256,8 @@ msgstr "" ...@@ -255,8 +256,8 @@ msgstr ""
#: weblate/static/loader-bootstrap.js:743 #: weblate/static/loader-bootstrap.js:743
msgid "Today" msgid "Today"
msgstr "" msgstr "hodiaŭ"
#: weblate/static/loader-bootstrap.js:744 #: weblate/static/loader-bootstrap.js:744
msgid "Clear" msgid "Clear"
msgstr "" msgstr "Vakigi"
...@@ -8,16 +8,16 @@ msgstr "" ...@@ -8,16 +8,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: weblate@lists.cihar.com\n" "Report-Msgid-Bugs-To: weblate@lists.cihar.com\n"
"POT-Creation-Date: 2015-12-22 10:51+0000\n" "POT-Creation-Date: 2015-12-22 10:51+0000\n"
"PO-Revision-Date: 2014-12-24 16:19+0200\n" "PO-Revision-Date: 2016-01-14 15:07+0000\n"
"Last-Translator: Robin van der Vliet <info@robinvandervliet.nl>\n" "Last-Translator: Michal Čihař <michal@cihar.com>\n"
"Language-Team: Frisian <https://hosted.weblate.org/projects/weblate/master/" "Language-Team: Frisian "
"fy/>\n" "<https://hosted.weblate.org/projects/weblate/master/fy/>\n"
"Language: fy\n" "Language: fy\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 2.2-dev\n" "X-Generator: Weblate 2.5-dev\n"
#: weblate/accounts/auth.py:47 #: weblate/accounts/auth.py:47
msgid "" msgid ""
...@@ -313,7 +313,7 @@ msgstr "" ...@@ -313,7 +313,7 @@ msgstr ""
#: weblate/accounts/views.py:523 weblate/html/accounts/password.html.py:13 #: weblate/accounts/views.py:523 weblate/html/accounts/password.html.py:13
#: weblate/html/accounts/profile.html:186 #: weblate/html/accounts/profile.html:186
msgid "Change password" msgid "Change password"
msgstr "" msgstr "Wachtwurd wizigjen"
#: weblate/accounts/views.py:537 #: weblate/accounts/views.py:537
msgid "Can not reset password, email authentication is disabled!" msgid "Can not reset password, email authentication is disabled!"
...@@ -689,7 +689,7 @@ msgstr "Lisinsjes" ...@@ -689,7 +689,7 @@ msgstr "Lisinsjes"
#: weblate/html/js/detail.html.py:57 weblate/html/js/detail.html:69 #: weblate/html/js/detail.html.py:57 weblate/html/js/detail.html:69
#: weblate/html/translate.html.py:118 weblate/html/translate.html:299 #: weblate/html/translate.html.py:118 weblate/html/translate.html:299
msgid "Save" msgid "Save"
msgstr "" msgstr "Bewarje"
#: weblate/html/accounts/profile.html:46 weblate/html/accounts/profile.html:77 #: weblate/html/accounts/profile.html:46 weblate/html/accounts/profile.html:77
#: weblate/html/accounts/profile.html:120 #: weblate/html/accounts/profile.html:120
...@@ -934,7 +934,7 @@ msgstr "Prestaasjesrapport" ...@@ -934,7 +934,7 @@ msgstr "Prestaasjesrapport"
#: weblate/html/admin/performance.html:10 weblate/html/admin/report.html:8 #: weblate/html/admin/performance.html:10 weblate/html/admin/report.html:8
#: weblate/html/admin/ssh.html.py:9 #: weblate/html/admin/ssh.html.py:9
msgid "Home" msgid "Home"
msgstr "" msgstr "Startside"
#: weblate/html/admin/performance.html:10 #: weblate/html/admin/performance.html:10
msgid "Performance" msgid "Performance"
...@@ -989,7 +989,7 @@ msgstr "" ...@@ -989,7 +989,7 @@ msgstr ""
#: weblate/html/admin/ssh.html:28 weblate/html/subproject.html.py:164 #: weblate/html/admin/ssh.html:28 weblate/html/subproject.html.py:164
#: weblate/html/subproject.html:179 #: weblate/html/subproject.html:179
msgid "Generate" msgid "Generate"
msgstr "" msgstr "Generearje"
#: weblate/html/admin/ssh.html:34 #: weblate/html/admin/ssh.html:34
msgid "Known host keys" msgid "Known host keys"
...@@ -1019,7 +1019,7 @@ msgstr "" ...@@ -1019,7 +1019,7 @@ msgstr ""
#: weblate/html/admin/ssh.html:61 #: weblate/html/admin/ssh.html:61
msgid "Host:" msgid "Host:"
msgstr "" msgstr "Host:"
#: weblate/html/admin/ssh.html:63 #: weblate/html/admin/ssh.html:63
msgid "Port:" msgid "Port:"
...@@ -1027,7 +1027,7 @@ msgstr "Poarte:" ...@@ -1027,7 +1027,7 @@ msgstr "Poarte:"
#: weblate/html/admin/ssh.html:65 #: weblate/html/admin/ssh.html:65
msgid "Submit" msgid "Submit"
msgstr "" msgstr "Ferstjoere"
#: weblate/html/admin/ssh.html:68 #: weblate/html/admin/ssh.html:68
msgid "More information" msgid "More information"
...@@ -1079,10 +1079,9 @@ msgid "Your translations" ...@@ -1079,10 +1079,9 @@ msgid "Your translations"
msgstr "Jo oersettings" msgstr "Jo oersettings"
#: weblate/html/base.html:110 #: weblate/html/base.html:110
#, fuzzy
#| msgid "Registration" #| msgid "Registration"
msgid "Administration" msgid "Administration"
msgstr "Registraasje" msgstr "Administraasje"
#: weblate/html/base.html:112 #: weblate/html/base.html:112
msgid "Logout" msgid "Logout"
...@@ -1216,7 +1215,7 @@ msgstr "" ...@@ -1216,7 +1215,7 @@ msgstr ""
#: weblate/html/data.html:65 #: weblate/html/data.html:65
msgid "Download" msgid "Download"
msgstr "" msgstr "Download"
#: weblate/html/data.html:90 weblate/html/data.html.py:96 #: weblate/html/data.html:90 weblate/html/data.html.py:96
msgid "Hook" msgid "Hook"
...@@ -1257,7 +1256,7 @@ msgstr "Wurden" ...@@ -1257,7 +1256,7 @@ msgstr "Wurden"
#: weblate/html/dictionary.html:15 #: weblate/html/dictionary.html:15
msgid "Browse" msgid "Browse"
msgstr "" msgstr "Ferkenne"
#: weblate/html/dictionary.html:17 #: weblate/html/dictionary.html:17
msgid "Add new word" msgid "Add new word"
...@@ -1629,7 +1628,7 @@ msgstr "Esperanto" ...@@ -1629,7 +1628,7 @@ msgstr "Esperanto"
#: weblate/html/i18n.html:72 #: weblate/html/i18n.html:72
msgid "Estonian" msgid "Estonian"
msgstr "" msgstr "Estysk"
#: weblate/html/i18n.html:73 #: weblate/html/i18n.html:73
msgid "Faroese" msgid "Faroese"
...@@ -2372,7 +2371,7 @@ msgstr "" ...@@ -2372,7 +2371,7 @@ msgstr ""
#: weblate/html/js/git-status.html:153 #: weblate/html/js/git-status.html:153
msgid "Reset" msgid "Reset"
msgstr "" msgstr "Ferfarskje"
#: weblate/html/js/git-status.html:156 #: weblate/html/js/git-status.html:156
msgid "Reset all changes in the local repository" msgid "Reset all changes in the local repository"
...@@ -3449,7 +3448,7 @@ msgstr "Prosint" ...@@ -3449,7 +3448,7 @@ msgstr "Prosint"
#: weblate/html/translation.html:305 #: weblate/html/translation.html:305
msgid "Total" msgid "Total"
msgstr "" msgstr "Totaal"
#: weblate/html/translation.html:317 #: weblate/html/translation.html:317
msgid "Fuzzy" msgid "Fuzzy"
...@@ -4162,7 +4161,7 @@ msgstr "E-mail auteur" ...@@ -4162,7 +4161,7 @@ msgstr "E-mail auteur"
#: weblate/trans/forms.py:422 #: weblate/trans/forms.py:422
msgid "Query" msgid "Query"
msgstr "" msgstr "Query"
#: weblate/trans/forms.py:427 #: weblate/trans/forms.py:427
msgid "Search type" msgid "Search type"
...@@ -4170,7 +4169,7 @@ msgstr "" ...@@ -4170,7 +4169,7 @@ msgstr ""
#: weblate/trans/forms.py:430 #: weblate/trans/forms.py:430
msgid "Fulltext" msgid "Fulltext"
msgstr "" msgstr "Folsleine tekst"
#: weblate/trans/forms.py:431 #: weblate/trans/forms.py:431
msgid "Exact match" msgid "Exact match"
......
...@@ -8,10 +8,10 @@ msgstr "" ...@@ -8,10 +8,10 @@ msgstr ""
"Project-Id-Version: Weblate 1.2\n" "Project-Id-Version: Weblate 1.2\n"
"Report-Msgid-Bugs-To: weblate@lists.cihar.com\n" "Report-Msgid-Bugs-To: weblate@lists.cihar.com\n"
"POT-Creation-Date: 2015-12-22 10:51+0000\n" "POT-Creation-Date: 2015-12-22 10:51+0000\n"
"PO-Revision-Date: 2015-11-11 09:38+0000\n" "PO-Revision-Date: 2016-01-14 15:07+0000\n"
"Last-Translator: Michal Čihař <michal@cihar.com>\n" "Last-Translator: Michal Čihař <michal@cihar.com>\n"
"Language-Team: Galician <https://hosted.weblate.org/projects/weblate/master/" "Language-Team: Galician "
"gl/>\n" "<https://hosted.weblate.org/projects/weblate/master/gl/>\n"
"Language: gl\n" "Language: gl\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
...@@ -739,10 +739,9 @@ msgstr "Gardar" ...@@ -739,10 +739,9 @@ msgstr "Gardar"
#: weblate/html/accounts/profile.html:228 #: weblate/html/accounts/profile.html:228
#: weblate/html/accounts/profile.html:273 #: weblate/html/accounts/profile.html:273
#: weblate/html/accounts/profile.html:326 #: weblate/html/accounts/profile.html:326
#, fuzzy
#| msgid "Subscriptions" #| msgid "Subscriptions"
msgid "Description" msgid "Description"
msgstr "Subscricións" msgstr "Descrición"
#: weblate/html/accounts/profile.html:49 #: weblate/html/accounts/profile.html:49
msgid "" msgid ""
...@@ -897,7 +896,7 @@ msgstr "Proxecto" ...@@ -897,7 +896,7 @@ msgstr "Proxecto"
#: weblate/html/accounts/profile.html:301 #: weblate/html/accounts/profile.html:301
msgid "License" msgid "License"
msgstr "" msgstr "Licen"
#: weblate/html/accounts/profile.html:328 #: weblate/html/accounts/profile.html:328
msgid "" msgid ""
...@@ -1024,7 +1023,7 @@ msgstr "Confirmación do novo contrasinal" ...@@ -1024,7 +1023,7 @@ msgstr "Confirmación do novo contrasinal"
#: weblate/html/admin/performance.html:47 #: weblate/html/admin/performance.html:47
msgid "Name" msgid "Name"
msgstr "" msgstr "Nome"
#: weblate/html/admin/report.html:17 #: weblate/html/admin/report.html:17
#, python-format #, python-format
...@@ -1056,7 +1055,7 @@ msgstr "" ...@@ -1056,7 +1055,7 @@ msgstr ""
#: weblate/html/admin/ssh.html:28 weblate/html/subproject.html.py:164 #: weblate/html/admin/ssh.html:28 weblate/html/subproject.html.py:164
#: weblate/html/subproject.html:179 #: weblate/html/subproject.html:179
msgid "Generate" msgid "Generate"
msgstr "" msgstr "Xerar"
#: weblate/html/admin/ssh.html:34 #: weblate/html/admin/ssh.html:34
msgid "Known host keys" msgid "Known host keys"
...@@ -1089,18 +1088,17 @@ msgid "" ...@@ -1089,18 +1088,17 @@ msgid ""
msgstr "" msgstr ""
#: weblate/html/admin/ssh.html:61 #: weblate/html/admin/ssh.html:61
#, fuzzy
#| msgid "Last name" #| msgid "Last name"
msgid "Host:" msgid "Host:"
msgstr "Segundo apelido" msgstr "Servidor:"
#: weblate/html/admin/ssh.html:63 #: weblate/html/admin/ssh.html:63
msgid "Port:" msgid "Port:"
msgstr "" msgstr "Porto:"
#: weblate/html/admin/ssh.html:65 #: weblate/html/admin/ssh.html:65
msgid "Submit" msgid "Submit"
msgstr "" msgstr "Enviar"
#: weblate/html/admin/ssh.html:68 #: weblate/html/admin/ssh.html:68
#, fuzzy #, fuzzy
...@@ -1175,10 +1173,9 @@ msgid "Your translations" ...@@ -1175,10 +1173,9 @@ msgid "Your translations"
msgstr "As súas traducións" msgstr "As súas traducións"
#: weblate/html/base.html:110 #: weblate/html/base.html:110
#, fuzzy
#| msgid "Registration" #| msgid "Registration"
msgid "Administration" msgid "Administration"
msgstr "Rexistro" msgstr "Administración"
#: weblate/html/base.html:112 #: weblate/html/base.html:112
msgid "Logout" msgid "Logout"
...@@ -1367,9 +1364,8 @@ msgid "Words" ...@@ -1367,9 +1364,8 @@ msgid "Words"
msgstr "Palabras" msgstr "Palabras"
#: weblate/html/dictionary.html:15 #: weblate/html/dictionary.html:15
#, fuzzy
msgid "Browse" msgid "Browse"
msgstr "Cambios recentes" msgstr "Visualizar"
#: weblate/html/dictionary.html:17 #: weblate/html/dictionary.html:17
msgid "Add new word" msgid "Add new word"
...@@ -1390,7 +1386,7 @@ msgstr "Importar o corrector" ...@@ -1390,7 +1386,7 @@ msgstr "Importar o corrector"
#: weblate/html/project.html:25 weblate/html/subproject.html.py:29 #: weblate/html/project.html:25 weblate/html/subproject.html.py:29
#: weblate/html/translate.html:163 weblate/html/translation.html.py:28 #: weblate/html/translate.html:163 weblate/html/translation.html.py:28
msgid "History" msgid "History"
msgstr "" msgstr "Historial"
#: weblate/html/dictionary.html:38 weblate/html/search.html.py:20 #: weblate/html/dictionary.html:38 weblate/html/search.html.py:20
#: weblate/html/source-review.html:22 weblate/html/translate.html.py:101 #: weblate/html/source-review.html:22 weblate/html/translate.html.py:101
...@@ -2156,7 +2152,7 @@ msgstr "Croata" ...@@ -2156,7 +2152,7 @@ msgstr "Croata"
#: weblate/html/i18n.html:167 #: weblate/html/i18n.html:167
msgid "Simplified Chinese" msgid "Simplified Chinese"
msgstr "" msgstr "Chinés simplificado"
#: weblate/html/i18n.html:168 #: weblate/html/i18n.html:168
msgid "Sindhi" msgid "Sindhi"
...@@ -2239,10 +2235,9 @@ msgid "Tigrinya" ...@@ -2239,10 +2235,9 @@ msgid "Tigrinya"
msgstr "Tigriña" msgstr "Tigriña"
#: weblate/html/i18n.html:188 #: weblate/html/i18n.html:188
#, fuzzy
#| msgid "dictionaries" #| msgid "dictionaries"
msgid "Traditional Chinese" msgid "Traditional Chinese"
msgstr "correctores" msgstr "Chinés tradicional"
#: weblate/html/i18n.html:189 #: weblate/html/i18n.html:189
msgid "Tsonga" msgid "Tsonga"
...@@ -2580,9 +2575,8 @@ msgstr "Evitar calquera cambio no repositorio" ...@@ -2580,9 +2575,8 @@ msgstr "Evitar calquera cambio no repositorio"
#: weblate/html/language.html:15 weblate/html/project.html.py:24 #: weblate/html/language.html:15 weblate/html/project.html.py:24
#: weblate/html/subproject.html:28 weblate/html/translation.html.py:26 #: weblate/html/subproject.html:28 weblate/html/translation.html.py:26
#, fuzzy
msgid "Overview" msgid "Overview"
msgstr "Revisar" msgstr "Vista xeral"
#: weblate/html/language.html:18 weblate/html/project.html.py:115 #: weblate/html/language.html:18 weblate/html/project.html.py:115
msgid "Glossaries" msgid "Glossaries"
...@@ -2954,9 +2948,8 @@ msgstr "" ...@@ -2954,9 +2948,8 @@ msgstr ""
#: weblate/html/mail/new_comment.html:28 weblate/html/mail/new_comment.txt:9 #: weblate/html/mail/new_comment.html:28 weblate/html/mail/new_comment.txt:9
#: weblate/html/unit-context.html.py:8 #: weblate/html/unit-context.html.py:8
#, fuzzy
msgid "Comment:" msgid "Comment:"
msgstr "Comentarios" msgstr "Comentario:"
#: weblate/html/mail/new_comment_subject.txt:3 #: weblate/html/mail/new_comment_subject.txt:3
#, fuzzy, python-format #, fuzzy, python-format
...@@ -3231,15 +3224,13 @@ msgstr "Cambios recentes" ...@@ -3231,15 +3224,13 @@ msgstr "Cambios recentes"
#: weblate/html/project.html:148 weblate/html/subproject.html.py:147 #: weblate/html/project.html:148 weblate/html/subproject.html.py:147
#: weblate/html/translate.html:256 weblate/html/translation.html.py:219 #: weblate/html/translate.html:256 weblate/html/translation.html.py:219
#: weblate/trans/forms.py:95 #: weblate/trans/forms.py:95
#, fuzzy
msgid "Loading…" msgid "Loading…"
msgstr "Cargando…" msgstr "A cargar…"
#: weblate/html/project.html:159 #: weblate/html/project.html:159
#, fuzzy
#| msgid "User" #| msgid "User"
msgid "Users" msgid "Users"
msgstr "Usuario" msgstr "Usuarios"
#: weblate/html/project.html:173 #: weblate/html/project.html:173
msgid "Owner" msgid "Owner"
...@@ -3328,9 +3319,8 @@ msgid "Priority" ...@@ -3328,9 +3319,8 @@ msgid "Priority"
msgstr "" msgstr ""
#: weblate/html/source-review.html:43 #: weblate/html/source-review.html:43
#, fuzzy
msgid "Comment" msgid "Comment"
msgstr "Comentarios" msgstr "Comentario"
#: weblate/html/source-review.html:60 #: weblate/html/source-review.html:60
#, fuzzy #, fuzzy
...@@ -3864,7 +3854,7 @@ msgstr "" ...@@ -3864,7 +3854,7 @@ msgstr ""
#: weblate/html/translation.html:305 #: weblate/html/translation.html:305
msgid "Total" msgid "Total"
msgstr "" msgstr "Total"
#: weblate/html/translation.html:317 #: weblate/html/translation.html:317
#, fuzzy #, fuzzy
...@@ -4660,7 +4650,7 @@ msgstr "Buscar" ...@@ -4660,7 +4650,7 @@ msgstr "Buscar"
#: weblate/trans/forms.py:430 #: weblate/trans/forms.py:430
msgid "Fulltext" msgid "Fulltext"
msgstr "" msgstr "Texto completo"
#: weblate/trans/forms.py:431 #: weblate/trans/forms.py:431
msgid "Exact match" msgid "Exact match"
...@@ -4980,7 +4970,7 @@ msgstr "" ...@@ -4980,7 +4970,7 @@ msgstr ""
#: weblate/trans/models/advertisement.py:110 #: weblate/trans/models/advertisement.py:110
msgid "Text" msgid "Text"
msgstr "" msgstr "Texto"
#: weblate/trans/models/advertisement.py:112 #: weblate/trans/models/advertisement.py:112
msgid "Depending on placement, HTML can be allowed." msgid "Depending on placement, HTML can be allowed."
......
This diff is collapsed.
...@@ -3,24 +3,26 @@ ...@@ -3,24 +3,26 @@
# This file is distributed under the same license as the PACKAGE package. # This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
# #
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: weblate@lists.cihar.com\n" "Report-Msgid-Bugs-To: weblate@lists.cihar.com\n"
"POT-Creation-Date: 2015-12-22 10:51+0000\n" "POT-Creation-Date: 2015-12-22 10:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: 2016-01-14 15:11+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: Michal Čihař <michal@cihar.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: Armenian "
"Language: \n" "<https://hosted.weblate.org/projects/weblate/javascript/hy/>\n"
"Language: hy\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Weblate 2.5-dev\n"
#. Translators: Verb for copy operation #. Translators: Verb for copy operation
#: weblate/static/loader-bootstrap.js:183 #: weblate/static/loader-bootstrap.js:183
msgid "Copy" msgid "Copy"
msgstr "" msgstr "Պատճենել"
#: weblate/static/loader-bootstrap.js:202 #: weblate/static/loader-bootstrap.js:202
#, javascript-format #, javascript-format
...@@ -46,31 +48,31 @@ msgstr "" ...@@ -46,31 +48,31 @@ msgstr ""
#: weblate/static/loader-bootstrap.js:699 #: weblate/static/loader-bootstrap.js:699
#: weblate/static/loader-bootstrap.js:701 #: weblate/static/loader-bootstrap.js:701
msgid "Sunday" msgid "Sunday"
msgstr "" msgstr "Կիրակի"
#: weblate/static/loader-bootstrap.js:699 #: weblate/static/loader-bootstrap.js:699
msgid "Monday" msgid "Monday"
msgstr "" msgstr "Երկուշաբթի"
#: weblate/static/loader-bootstrap.js:699 #: weblate/static/loader-bootstrap.js:699
msgid "Tuesday" msgid "Tuesday"
msgstr "" msgstr "Երեքշաբթի"
#: weblate/static/loader-bootstrap.js:700 #: weblate/static/loader-bootstrap.js:700
msgid "Wednesday" msgid "Wednesday"
msgstr "" msgstr "Չորեքշաբթի"
#: weblate/static/loader-bootstrap.js:700 #: weblate/static/loader-bootstrap.js:700
msgid "Thursday" msgid "Thursday"
msgstr "" msgstr "Հինգշաբթի"
#: weblate/static/loader-bootstrap.js:700 #: weblate/static/loader-bootstrap.js:700
msgid "Friday" msgid "Friday"
msgstr "" msgstr "Ուրբաթ"
#: weblate/static/loader-bootstrap.js:701 #: weblate/static/loader-bootstrap.js:701
msgid "Saturday" msgid "Saturday"
msgstr "" msgstr "Շաբաթ"
#: weblate/static/loader-bootstrap.js:704 #: weblate/static/loader-bootstrap.js:704
#: weblate/static/loader-bootstrap.js:711 #: weblate/static/loader-bootstrap.js:711
...@@ -146,51 +148,51 @@ msgstr "" ...@@ -146,51 +148,51 @@ msgstr ""
#: weblate/static/loader-bootstrap.js:724 #: weblate/static/loader-bootstrap.js:724
msgid "January" msgid "January"
msgstr "" msgstr "Հունվարի"
#: weblate/static/loader-bootstrap.js:724 #: weblate/static/loader-bootstrap.js:724
msgid "February" msgid "February"
msgstr "" msgstr "Փետրվարի"
#: weblate/static/loader-bootstrap.js:724 #: weblate/static/loader-bootstrap.js:724
msgid "March" msgid "March"
msgstr "" msgstr "Մարտի"
#: weblate/static/loader-bootstrap.js:725 #: weblate/static/loader-bootstrap.js:725
msgid "April" msgid "April"
msgstr "" msgstr "Ապրիլի"
#: weblate/static/loader-bootstrap.js:725 #: weblate/static/loader-bootstrap.js:725
msgid "May" msgid "May"
msgstr "" msgstr "Մայիսի"
#: weblate/static/loader-bootstrap.js:725 #: weblate/static/loader-bootstrap.js:725
msgid "June" msgid "June"
msgstr "" msgstr "Հունիսի"
#: weblate/static/loader-bootstrap.js:725 #: weblate/static/loader-bootstrap.js:725
msgid "July" msgid "July"
msgstr "" msgstr "Հուլիսի"
#: weblate/static/loader-bootstrap.js:726 #: weblate/static/loader-bootstrap.js:726
msgid "August" msgid "August"
msgstr "" msgstr "Օգոստոսի"
#: weblate/static/loader-bootstrap.js:726 #: weblate/static/loader-bootstrap.js:726
msgid "September" msgid "September"
msgstr "" msgstr "Սեպտեմբերի"
#: weblate/static/loader-bootstrap.js:726 #: weblate/static/loader-bootstrap.js:726
msgid "October" msgid "October"
msgstr "" msgstr "Հոկտեմբերի"
#: weblate/static/loader-bootstrap.js:727 #: weblate/static/loader-bootstrap.js:727
msgid "November" msgid "November"
msgstr "" msgstr "Նոյեմբերի"
#: weblate/static/loader-bootstrap.js:727 #: weblate/static/loader-bootstrap.js:727
msgid "December" msgid "December"
msgstr "" msgstr "Դեկտեմբերի"
#: weblate/static/loader-bootstrap.js:730 #: weblate/static/loader-bootstrap.js:730
msgctxt "Short name of month" msgctxt "Short name of month"
...@@ -254,8 +256,8 @@ msgstr "" ...@@ -254,8 +256,8 @@ msgstr ""
#: weblate/static/loader-bootstrap.js:743 #: weblate/static/loader-bootstrap.js:743
msgid "Today" msgid "Today"
msgstr "" msgstr "Այսօր"
#: weblate/static/loader-bootstrap.js:744 #: weblate/static/loader-bootstrap.js:744
msgid "Clear" msgid "Clear"
msgstr "" msgstr "Մաքրել"
This diff is collapsed.
This diff is collapsed.
...@@ -8,7 +8,7 @@ msgstr "" ...@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: Weblate 1.2\n" "Project-Id-Version: Weblate 1.2\n"
"Report-Msgid-Bugs-To: weblate@lists.cihar.com\n" "Report-Msgid-Bugs-To: weblate@lists.cihar.com\n"
"POT-Creation-Date: 2015-12-22 10:51+0000\n" "POT-Creation-Date: 2015-12-22 10:51+0000\n"
"PO-Revision-Date: 2016-01-07 00:52+0000\n" "PO-Revision-Date: 2016-01-09 00:49+0000\n"
"Last-Translator: Sérgio Marques <smarquespt@gmail.com>\n" "Last-Translator: Sérgio Marques <smarquespt@gmail.com>\n"
"Language-Team: Portuguese " "Language-Team: Portuguese "
"<https://hosted.weblate.org/projects/weblate/master/pt/>\n" "<https://hosted.weblate.org/projects/weblate/master/pt/>\n"
...@@ -31,7 +31,6 @@ msgid "None" ...@@ -31,7 +31,6 @@ msgid "None"
msgstr "Nenhum" msgstr "Nenhum"
#: weblate/accounts/forms.py:86 #: weblate/accounts/forms.py:86
#, fuzzy
#| msgid "" #| msgid ""
#| "Username may contain only letters, numbers and following characters: @ . " #| "Username may contain only letters, numbers and following characters: @ . "
#| "+ - _" #| "+ - _"
...@@ -39,8 +38,8 @@ msgid "" ...@@ -39,8 +38,8 @@ msgid ""
"Username may only contain letters, numbers or the following characters: @ . " "Username may only contain letters, numbers or the following characters: @ . "
"+ - _" "+ - _"
msgstr "" msgstr ""
"O nome de utilizador pode apenas conter letras, números e os seguintes " "O nome de utilizador apenas pode ser constituido por letras, números e as "
"caracteres: @ . + - _" "seguintes letras: @ . + - _"
#: weblate/accounts/forms.py:92 weblate/html/project.html.py:164 #: weblate/accounts/forms.py:92 weblate/html/project.html.py:164
msgid "Username" msgid "Username"
...@@ -56,12 +55,9 @@ msgid "E-mail" ...@@ -56,12 +55,9 @@ msgid "E-mail"
msgstr "Endereço de correio electrónico" msgstr "Endereço de correio electrónico"
#: weblate/accounts/forms.py:238 #: weblate/accounts/forms.py:238
#, fuzzy
#| msgid "You can add another emails on Authentication tab." #| msgid "You can add another emails on Authentication tab."
msgid "You can add another email address on the Authentication tab." msgid "You can add another email address on the Authentication tab."
msgstr "" msgstr "Pode adicionar outro endereço de e-mail no separador Autenticação."
"Pode adicionar mais endereços de correio electrónico no separador "
"Autenticação."
#: weblate/accounts/forms.py:265 weblate/accounts/forms.py:343 #: weblate/accounts/forms.py:265 weblate/accounts/forms.py:343
#: weblate/html/project.html:165 #: weblate/html/project.html:165
...@@ -104,12 +100,12 @@ msgid "" ...@@ -104,12 +100,12 @@ msgid ""
msgstr "Este e-mail já está em uso. Por favor, forneça um e-mail diferente." msgstr "Este e-mail já está em uso. Por favor, forneça um e-mail diferente."
#: weblate/accounts/forms.py:384 #: weblate/accounts/forms.py:384
#, fuzzy, python-format #, python-format
#| msgid "What is %s?" #| msgid "What is %s?"
msgctxt "" msgctxt ""
"Question for a mathematics-based CAPTCHA, the %s is an arithmetic problem" "Question for a mathematics-based CAPTCHA, the %s is an arithmetic problem"
msgid "What is %s?" msgid "What is %s?"
msgstr "O que é %s?" msgstr "Quanto é %s?"
#: weblate/accounts/forms.py:395 #: weblate/accounts/forms.py:395
msgid "Please check your math and try again." msgid "Please check your math and try again."
...@@ -223,10 +219,9 @@ msgid "Hide completed translations on dashboard" ...@@ -223,10 +219,9 @@ msgid "Hide completed translations on dashboard"
msgstr "Não mostrar as traduções completadas no painel" msgstr "Não mostrar as traduções completadas no painel"
#: weblate/accounts/models.py:487 #: weblate/accounts/models.py:487
#, fuzzy
#| msgid "Review of translations since %s" #| msgid "Review of translations since %s"
msgid "Show secondary translations in zen mode" msgid "Show secondary translations in zen mode"
msgstr "Revisão das traduções desde %s" msgstr "Mostrar traduções secundárias no modo zen"
#: weblate/accounts/models.py:491 #: weblate/accounts/models.py:491
msgid "Hide source if there is secondary language" msgid "Hide source if there is secondary language"
...@@ -265,10 +260,9 @@ msgid "Notification on new language request" ...@@ -265,10 +260,9 @@ msgid "Notification on new language request"
msgstr "Notificar sobre novo pedido de idioma" msgstr "Notificar sobre novo pedido de idioma"
#: weblate/accounts/pipeline.py:125 #: weblate/accounts/pipeline.py:125
#, fuzzy
#| msgid "Registration date" #| msgid "Registration date"
msgid "New registrations are disabled!" msgid "New registrations are disabled!"
msgstr "Data de Registo" msgstr "Não são possíveis novos registos!"
#: weblate/accounts/views.py:90 weblate/accounts/views.py:441 #: weblate/accounts/views.py:90 weblate/accounts/views.py:441
msgid "User registration" msgid "User registration"
...@@ -283,7 +277,6 @@ msgid "Message has been sent to administrator." ...@@ -283,7 +277,6 @@ msgid "Message has been sent to administrator."
msgstr "A mensagem foi enviada para o administrador." msgstr "A mensagem foi enviada para o administrador."
#: weblate/accounts/views.py:133 #: weblate/accounts/views.py:133
#, fuzzy
#| msgid "You can not change demo account on the demo server." #| msgid "You can not change demo account on the demo server."
msgid "You cannot change demo account on the demo server." msgid "You cannot change demo account on the demo server."
msgstr "Não pode mudar o perfil demo no servidor demo." msgstr "Não pode mudar o perfil demo no servidor demo."
...@@ -359,28 +352,24 @@ msgid "Changes in last quarter" ...@@ -359,28 +352,24 @@ msgid "Changes in last quarter"
msgstr "" msgstr ""
#: weblate/billing/models.py:72 #: weblate/billing/models.py:72
#, fuzzy
#| msgid "Activity in last year" #| msgid "Activity in last year"
msgid "Changes in last year" msgid "Changes in last year"
msgstr "Atividade no último ano" msgstr "Alterações no último ano"
#: weblate/billing/models.py:80 weblate/trans/admin.py:46 #: weblate/billing/models.py:80 weblate/trans/admin.py:46
#, fuzzy
#| msgid "Status of repositories" #| msgid "Status of repositories"
msgid "VCS repositories" msgid "VCS repositories"
msgstr "Estado dos repositórios" msgstr "Repositórios VCS"
#: weblate/billing/models.py:86 weblate/trans/admin.py:50 #: weblate/billing/models.py:86 weblate/trans/admin.py:50
#, fuzzy
#| msgid "Source string:" #| msgid "Source string:"
msgid "Source strings" msgid "Source strings"
msgstr "Cadeia original:" msgstr "Cadeias fonte"
#: weblate/billing/models.py:92 weblate/trans/admin.py:54 #: weblate/billing/models.py:92 weblate/trans/admin.py:54
#, fuzzy
#| msgid "Source" #| msgid "Source"
msgid "Source words" msgid "Source words"
msgstr "Original" msgstr "Palavras fonte"
#: weblate/billing/models.py:98 weblate/html/accounts/profile.html.py:21 #: weblate/billing/models.py:98 weblate/html/accounts/profile.html.py:21
#: weblate/html/accounts/profile.html:35 weblate/html/language.html.py:6 #: weblate/html/accounts/profile.html:35 weblate/html/language.html.py:6
...@@ -398,10 +387,9 @@ msgid "You don't have privileges to display this page." ...@@ -398,10 +387,9 @@ msgid "You don't have privileges to display this page."
msgstr "Não tem permissão para visualizar esta página." msgstr "Não tem permissão para visualizar esta página."
#: weblate/html/403.html:14 #: weblate/html/403.html:14
#, fuzzy
#| msgid "Donate to Weblate" #| msgid "Donate to Weblate"
msgid "Login to Weblate" msgid "Login to Weblate"
msgstr "Doar para o Weblate" msgstr "Iniciar sessão no Weblate"
#: weblate/html/403.html:20 weblate/html/404.html.py:15 #: weblate/html/403.html:20 weblate/html/404.html.py:15
msgid "" msgid ""
...@@ -419,10 +407,9 @@ msgid "The page you are looking for was not found." ...@@ -419,10 +407,9 @@ msgid "The page you are looking for was not found."
msgstr "A página que procura não foi encontrada." msgstr "A página que procura não foi encontrada."
#: weblate/html/500.html:5 weblate/trans/views/basic.py:371 #: weblate/html/500.html:5 weblate/trans/views/basic.py:371
#, fuzzy
#| msgid "Server Error" #| msgid "Server Error"
msgid "Internal Server Error" msgid "Internal Server Error"
msgstr "Erro do servidor" msgstr "Erro interno de servidor"
#: weblate/html/500.html:9 #: weblate/html/500.html:9
msgid "Server Error" msgid "Server Error"
...@@ -471,10 +458,9 @@ msgstr "" ...@@ -471,10 +458,9 @@ msgstr ""
"suportar financeiramente." "suportar financeiramente."
#: weblate/html/about.html:25 #: weblate/html/about.html:25
#, fuzzy
#| msgid "Flattr Weblate!" #| msgid "Flattr Weblate!"
msgid "Fund Weblate!" msgid "Fund Weblate!"
msgstr "Flattr Weblate!" msgstr "Ajudar o Weblate!"
#: weblate/html/about.html:26 weblate/html/footer.html.py:9 #: weblate/html/about.html:26 weblate/html/footer.html.py:9
msgid "Donate to Weblate!" msgid "Donate to Weblate!"
...@@ -512,10 +498,9 @@ msgid "Ask for project hosting" ...@@ -512,10 +498,9 @@ msgid "Ask for project hosting"
msgstr "Pedir alojamento para um projeto" msgstr "Pedir alojamento para um projeto"
#: weblate/html/about.html:47 #: weblate/html/about.html:47
#, fuzzy
#| msgid "Missing plurals" #| msgid "Missing plurals"
msgid "View hosting plans" msgid "View hosting plans"
msgstr "Faltam os plurais" msgstr "Ver planos de alojamento"
#: weblate/html/about.html:48 weblate/html/accounts/hosting.html.py:53 #: weblate/html/about.html:48 weblate/html/accounts/hosting.html.py:53
msgid "Contact us for commercial hosting" msgid "Contact us for commercial hosting"
...@@ -649,8 +634,9 @@ msgid "" ...@@ -649,8 +634,9 @@ msgid ""
"Translated content has to be released under <a href=\"http://en.wikipedia." "Translated content has to be released under <a href=\"http://en.wikipedia."
"org/wiki/Free_software_license\">free license</a>." "org/wiki/Free_software_license\">free license</a>."
msgstr "" msgstr ""
"O conteúdo traduzido tem que ser disponibilizado sob um <a href=\"http://pt." "O conteúdo traduzido tem que ser disponibilizado nos termos de uma <a href=\""
"wikipedia.org/wiki/Licença_de_software_livre\">licença de software livre</a>." "http://en.wikipedia.org/wiki/Free_software_license\">licença de softare "
"livre</a>."
#: weblate/html/accounts/hosting.html:37 #: weblate/html/accounts/hosting.html:37
msgid "" msgid ""
...@@ -986,10 +972,9 @@ msgid "Recent changes" ...@@ -986,10 +972,9 @@ msgid "Recent changes"
msgstr "Modificações recentes" msgstr "Modificações recentes"
#: weblate/html/accounts/user.html:47 #: weblate/html/accounts/user.html:47
#, fuzzy
#| msgid "Browse changes" #| msgid "Browse changes"
msgid "Browse all changes for user" msgid "Browse all changes for user"
msgstr "Ver as alterações" msgstr "Explorar todas as alterações do utilizador"
#: weblate/html/activity-tab.html:5 #: weblate/html/activity-tab.html:5
msgid "Activity in last 30 days" msgid "Activity in last 30 days"
...@@ -1159,24 +1144,18 @@ msgstr "" ...@@ -1159,24 +1144,18 @@ msgstr ""
"href=\"%(url)s\">a nossa documentação</a> para saber como melhorar." "href=\"%(url)s\">a nossa documentação</a> para saber como melhorar."
#: weblate/html/base.html:57 #: weblate/html/base.html:57
#, fuzzy
#| msgid "" #| msgid ""
#| "This Weblate instance hosts translations for various free software " #| "This Weblate instance hosts translations for various free software "
#| "projects." #| "projects."
msgid "Hosted Weblate, the place to translate your software project." msgid "Hosted Weblate, the place to translate your software project."
msgstr "" msgstr "Hosted Weblate, o local para traduzir o seu software."
"Esta instância do Weblate hospeda traduções de vários projetos de software "
"livre."
#: weblate/html/base.html:59 #: weblate/html/base.html:59
#, fuzzy
#| msgid "" #| msgid ""
#| "This Weblate instance hosts translations for various free software " #| "This Weblate instance hosts translations for various free software "
#| "projects." #| "projects."
msgid "This site runs Weblate for translating various software projects." msgid "This site runs Weblate for translating various software projects."
msgstr "" msgstr "Este sítio web utiliza o Weblate para traduzir diversos projetos."
"Esta instância do Weblate hospeda traduções de vários projetos de software "
"livre."
#: weblate/html/base.html:74 #: weblate/html/base.html:74
msgid "Toggle navigation" msgid "Toggle navigation"
...@@ -1191,10 +1170,9 @@ msgid "Your translations" ...@@ -1191,10 +1170,9 @@ msgid "Your translations"
msgstr "As suas traduções" msgstr "As suas traduções"
#: weblate/html/base.html:110 #: weblate/html/base.html:110
#, fuzzy
#| msgid "Registration" #| msgid "Registration"
msgid "Administration" msgid "Administration"
msgstr "Registo" msgstr "Administração"
#: weblate/html/base.html:112 #: weblate/html/base.html:112
msgid "Logout" msgid "Logout"
...@@ -1465,10 +1443,9 @@ msgid "TermBase eXchange (TBX)" ...@@ -1465,10 +1443,9 @@ msgid "TermBase eXchange (TBX)"
msgstr "TermBase eXchange (TBX)" msgstr "TermBase eXchange (TBX)"
#: weblate/html/dictionary.html:109 #: weblate/html/dictionary.html:109
#, fuzzy
#| msgid "Browse changes" #| msgid "Browse changes"
msgid "Browse all glossary changes" msgid "Browse all glossary changes"
msgstr "Ver as alterações" msgstr "Navegar nas alterações de glossário"
#: weblate/html/edit_dictionary.html:7 #: weblate/html/edit_dictionary.html:7
msgid "dictionaries" msgid "dictionaries"
...@@ -3662,7 +3639,7 @@ msgstr "Esta tradução está bloqueada neste momento." ...@@ -3662,7 +3639,7 @@ msgstr "Esta tradução está bloqueada neste momento."
#: weblate/html/translation.html:269 #: weblate/html/translation.html:269
msgid "Review" msgid "Review"
msgstr "Rever" msgstr "Revisão"
#: weblate/html/translation.html:271 #: weblate/html/translation.html:271
msgid "Review translations touched by other users." msgid "Review translations touched by other users."
...@@ -4879,7 +4856,7 @@ msgstr "A página principal do projecto de tradução." ...@@ -4879,7 +4856,7 @@ msgstr "A página principal do projecto de tradução."
#: weblate/trans/models/project.py:91 #: weblate/trans/models/project.py:91
msgid "Mailing list" msgid "Mailing list"
msgstr "Lista de endereços de correio electrónico" msgstr "Lista de correio"
#: weblate/trans/models/project.py:94 #: weblate/trans/models/project.py:94
msgid "Mailing list for translators." msgid "Mailing list for translators."
......
This diff is collapsed.
This diff is collapsed.
...@@ -3,25 +3,26 @@ ...@@ -3,25 +3,26 @@
# This file is distributed under the same license as the PACKAGE package. # This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
# #
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: weblate@lists.cihar.com\n" "Report-Msgid-Bugs-To: weblate@lists.cihar.com\n"
"POT-Creation-Date: 2015-12-22 10:51+0000\n" "POT-Creation-Date: 2015-12-22 10:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: 2016-01-14 15:11+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: Michal Čihař <michal@cihar.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: Thai "
"Language: \n" "<https://hosted.weblate.org/projects/weblate/javascript/th/>\n"
"Language: th\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 2.5-dev\n"
#. Translators: Verb for copy operation #. Translators: Verb for copy operation
#: weblate/static/loader-bootstrap.js:183 #: weblate/static/loader-bootstrap.js:183
msgid "Copy" msgid "Copy"
msgstr "" msgstr "คัดลอก"
#: weblate/static/loader-bootstrap.js:202 #: weblate/static/loader-bootstrap.js:202
#, javascript-format #, javascript-format
...@@ -47,31 +48,31 @@ msgstr "" ...@@ -47,31 +48,31 @@ msgstr ""
#: weblate/static/loader-bootstrap.js:699 #: weblate/static/loader-bootstrap.js:699
#: weblate/static/loader-bootstrap.js:701 #: weblate/static/loader-bootstrap.js:701
msgid "Sunday" msgid "Sunday"
msgstr "" msgstr "อาทิตย์"
#: weblate/static/loader-bootstrap.js:699 #: weblate/static/loader-bootstrap.js:699
msgid "Monday" msgid "Monday"
msgstr "" msgstr "วันจันทร์"
#: weblate/static/loader-bootstrap.js:699 #: weblate/static/loader-bootstrap.js:699
msgid "Tuesday" msgid "Tuesday"
msgstr "" msgstr "วันอังคาร"
#: weblate/static/loader-bootstrap.js:700 #: weblate/static/loader-bootstrap.js:700
msgid "Wednesday" msgid "Wednesday"
msgstr "" msgstr "วันพุธ"
#: weblate/static/loader-bootstrap.js:700 #: weblate/static/loader-bootstrap.js:700
msgid "Thursday" msgid "Thursday"
msgstr "" msgstr "วันพฤหัสบดี"
#: weblate/static/loader-bootstrap.js:700 #: weblate/static/loader-bootstrap.js:700
msgid "Friday" msgid "Friday"
msgstr "" msgstr "วันศุกร์"
#: weblate/static/loader-bootstrap.js:701 #: weblate/static/loader-bootstrap.js:701
msgid "Saturday" msgid "Saturday"
msgstr "" msgstr "วันเสาร์"
#: weblate/static/loader-bootstrap.js:704 #: weblate/static/loader-bootstrap.js:704
#: weblate/static/loader-bootstrap.js:711 #: weblate/static/loader-bootstrap.js:711
...@@ -147,51 +148,51 @@ msgstr "" ...@@ -147,51 +148,51 @@ msgstr ""
#: weblate/static/loader-bootstrap.js:724 #: weblate/static/loader-bootstrap.js:724
msgid "January" msgid "January"
msgstr "" msgstr "มกราคม"
#: weblate/static/loader-bootstrap.js:724 #: weblate/static/loader-bootstrap.js:724
msgid "February" msgid "February"
msgstr "" msgstr "กุมภาพันธ์"
#: weblate/static/loader-bootstrap.js:724 #: weblate/static/loader-bootstrap.js:724
msgid "March" msgid "March"
msgstr "" msgstr "มีนาคม"
#: weblate/static/loader-bootstrap.js:725 #: weblate/static/loader-bootstrap.js:725
msgid "April" msgid "April"
msgstr "" msgstr "เมษายน"
#: weblate/static/loader-bootstrap.js:725 #: weblate/static/loader-bootstrap.js:725
msgid "May" msgid "May"
msgstr "" msgstr "พฤษภาคม"
#: weblate/static/loader-bootstrap.js:725 #: weblate/static/loader-bootstrap.js:725
msgid "June" msgid "June"
msgstr "" msgstr "มิถุนายน"
#: weblate/static/loader-bootstrap.js:725 #: weblate/static/loader-bootstrap.js:725
msgid "July" msgid "July"
msgstr "" msgstr "กรกฎาคม"
#: weblate/static/loader-bootstrap.js:726 #: weblate/static/loader-bootstrap.js:726
msgid "August" msgid "August"
msgstr "" msgstr "สิงหาคม"
#: weblate/static/loader-bootstrap.js:726 #: weblate/static/loader-bootstrap.js:726
msgid "September" msgid "September"
msgstr "" msgstr "กันยายน"
#: weblate/static/loader-bootstrap.js:726 #: weblate/static/loader-bootstrap.js:726
msgid "October" msgid "October"
msgstr "" msgstr "ตุลาคม"
#: weblate/static/loader-bootstrap.js:727 #: weblate/static/loader-bootstrap.js:727
msgid "November" msgid "November"
msgstr "" msgstr "พฤศจิกายน"
#: weblate/static/loader-bootstrap.js:727 #: weblate/static/loader-bootstrap.js:727
msgid "December" msgid "December"
msgstr "" msgstr "ธันวาคม"
#: weblate/static/loader-bootstrap.js:730 #: weblate/static/loader-bootstrap.js:730
msgctxt "Short name of month" msgctxt "Short name of month"
...@@ -255,8 +256,8 @@ msgstr "" ...@@ -255,8 +256,8 @@ msgstr ""
#: weblate/static/loader-bootstrap.js:743 #: weblate/static/loader-bootstrap.js:743
msgid "Today" msgid "Today"
msgstr "" msgstr "วันนี้"
#: weblate/static/loader-bootstrap.js:744 #: weblate/static/loader-bootstrap.js:744
msgid "Clear" msgid "Clear"
msgstr "" msgstr "ล้าง"
This diff is collapsed.
...@@ -3,25 +3,26 @@ ...@@ -3,25 +3,26 @@
# This file is distributed under the same license as the PACKAGE package. # This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
# #
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: weblate@lists.cihar.com\n" "Report-Msgid-Bugs-To: weblate@lists.cihar.com\n"
"POT-Creation-Date: 2015-12-22 10:51+0000\n" "POT-Creation-Date: 2015-12-22 10:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: 2016-01-14 15:11+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: Michal Čihař <michal@cihar.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: Vietnamese "
"Language: \n" "<https://hosted.weblate.org/projects/weblate/javascript/vi/>\n"
"Language: vi\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 2.5-dev\n"
#. Translators: Verb for copy operation #. Translators: Verb for copy operation
#: weblate/static/loader-bootstrap.js:183 #: weblate/static/loader-bootstrap.js:183
msgid "Copy" msgid "Copy"
msgstr "" msgstr "Chép"
#: weblate/static/loader-bootstrap.js:202 #: weblate/static/loader-bootstrap.js:202
#, javascript-format #, javascript-format
...@@ -47,31 +48,31 @@ msgstr "" ...@@ -47,31 +48,31 @@ msgstr ""
#: weblate/static/loader-bootstrap.js:699 #: weblate/static/loader-bootstrap.js:699
#: weblate/static/loader-bootstrap.js:701 #: weblate/static/loader-bootstrap.js:701
msgid "Sunday" msgid "Sunday"
msgstr "" msgstr "Chủ nhật"
#: weblate/static/loader-bootstrap.js:699 #: weblate/static/loader-bootstrap.js:699
msgid "Monday" msgid "Monday"
msgstr "" msgstr "Thứ hai"
#: weblate/static/loader-bootstrap.js:699 #: weblate/static/loader-bootstrap.js:699
msgid "Tuesday" msgid "Tuesday"
msgstr "" msgstr "Thứ ba"
#: weblate/static/loader-bootstrap.js:700 #: weblate/static/loader-bootstrap.js:700
msgid "Wednesday" msgid "Wednesday"
msgstr "" msgstr "Thứ tư"
#: weblate/static/loader-bootstrap.js:700 #: weblate/static/loader-bootstrap.js:700
msgid "Thursday" msgid "Thursday"
msgstr "" msgstr "Thứ năm"
#: weblate/static/loader-bootstrap.js:700 #: weblate/static/loader-bootstrap.js:700
msgid "Friday" msgid "Friday"
msgstr "" msgstr "Thứ sáu"
#: weblate/static/loader-bootstrap.js:701 #: weblate/static/loader-bootstrap.js:701
msgid "Saturday" msgid "Saturday"
msgstr "" msgstr "Thứ bảy"
#: weblate/static/loader-bootstrap.js:704 #: weblate/static/loader-bootstrap.js:704
#: weblate/static/loader-bootstrap.js:711 #: weblate/static/loader-bootstrap.js:711
...@@ -147,51 +148,51 @@ msgstr "" ...@@ -147,51 +148,51 @@ msgstr ""
#: weblate/static/loader-bootstrap.js:724 #: weblate/static/loader-bootstrap.js:724
msgid "January" msgid "January"
msgstr "" msgstr "Tháng giêng"
#: weblate/static/loader-bootstrap.js:724 #: weblate/static/loader-bootstrap.js:724
msgid "February" msgid "February"
msgstr "" msgstr "Tháng hai"
#: weblate/static/loader-bootstrap.js:724 #: weblate/static/loader-bootstrap.js:724
msgid "March" msgid "March"
msgstr "" msgstr "Tháng ba"
#: weblate/static/loader-bootstrap.js:725 #: weblate/static/loader-bootstrap.js:725
msgid "April" msgid "April"
msgstr "" msgstr "Tháng tư"
#: weblate/static/loader-bootstrap.js:725 #: weblate/static/loader-bootstrap.js:725
msgid "May" msgid "May"
msgstr "" msgstr "Tháng năm"
#: weblate/static/loader-bootstrap.js:725 #: weblate/static/loader-bootstrap.js:725
msgid "June" msgid "June"
msgstr "" msgstr "Tháng sáu"
#: weblate/static/loader-bootstrap.js:725 #: weblate/static/loader-bootstrap.js:725
msgid "July" msgid "July"
msgstr "" msgstr "Tháng bảy"
#: weblate/static/loader-bootstrap.js:726 #: weblate/static/loader-bootstrap.js:726
msgid "August" msgid "August"
msgstr "" msgstr "Tháng tám"
#: weblate/static/loader-bootstrap.js:726 #: weblate/static/loader-bootstrap.js:726
msgid "September" msgid "September"
msgstr "" msgstr "Tháng chín"
#: weblate/static/loader-bootstrap.js:726 #: weblate/static/loader-bootstrap.js:726
msgid "October" msgid "October"
msgstr "" msgstr "Tháng mười"
#: weblate/static/loader-bootstrap.js:727 #: weblate/static/loader-bootstrap.js:727
msgid "November" msgid "November"
msgstr "" msgstr "Tháng mười một"
#: weblate/static/loader-bootstrap.js:727 #: weblate/static/loader-bootstrap.js:727
msgid "December" msgid "December"
msgstr "" msgstr "Tháng mười hai"
#: weblate/static/loader-bootstrap.js:730 #: weblate/static/loader-bootstrap.js:730
msgctxt "Short name of month" msgctxt "Short name of month"
...@@ -255,8 +256,8 @@ msgstr "" ...@@ -255,8 +256,8 @@ msgstr ""
#: weblate/static/loader-bootstrap.js:743 #: weblate/static/loader-bootstrap.js:743
msgid "Today" msgid "Today"
msgstr "" msgstr "Hôm nay"
#: weblate/static/loader-bootstrap.js:744 #: weblate/static/loader-bootstrap.js:744
msgid "Clear" msgid "Clear"
msgstr "" msgstr "Xóa sạch"
...@@ -20,12 +20,12 @@ ...@@ -20,12 +20,12 @@
from __future__ import print_function, unicode_literals from __future__ import print_function, unicode_literals
import importlib
import sys
# For some reasons, this fails in PyLint sometimes... # For some reasons, this fails in PyLint sometimes...
# pylint: disable=E0611,F0401 # pylint: disable=E0611,F0401
from distutils.version import LooseVersion from distutils.version import LooseVersion
from weblate.trans.vcs import GitRepository, HgRepository from weblate.trans.vcs import GitRepository, HgRepository
import importlib
import sys
def get_version_module(module, name, url, optional=False): def get_version_module(module, name, url, optional=False):
......
...@@ -19,9 +19,9 @@ ...@@ -19,9 +19,9 @@
# #
from __future__ import unicode_literals from __future__ import unicode_literals
import django
import os import os
from logging.handlers import SysLogHandler from logging.handlers import SysLogHandler
import django
# #
# Safety check for running with too old Django version # Safety check for running with too old Django version
...@@ -100,6 +100,7 @@ LANGUAGES = ( ...@@ -100,6 +100,7 @@ LANGUAGES = (
('he', 'עברית'), ('he', 'עברית'),
('hu', 'Magyar'), ('hu', 'Magyar'),
('id', 'Indonesia'), ('id', 'Indonesia'),
('it', 'Italiano'),
('ja', '日本語'), ('ja', '日本語'),
('ko', '한국어'), ('ko', '한국어'),
('ksh', 'Kölsch'), ('ksh', 'Kölsch'),
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
# #
from __future__ import unicode_literals from __future__ import unicode_literals
from weblate.trans.models import SubProject, IndexUpdate
from django.contrib.sites.models import Site from django.contrib.sites.models import Site
from django.shortcuts import render from django.shortcuts import render
from django.contrib.admin.views.decorators import staff_member_required from django.contrib.admin.views.decorators import staff_member_required
...@@ -27,6 +27,8 @@ from django.contrib import admin ...@@ -27,6 +27,8 @@ from django.contrib import admin
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from django.conf import settings from django.conf import settings
import django import django
from weblate.trans.models import SubProject, IndexUpdate
from weblate import settings_example from weblate import settings_example
from weblate import appsettings from weblate import appsettings
from weblate.accounts.avatar import HAS_LIBRAVATAR from weblate.accounts.avatar import HAS_LIBRAVATAR
......
...@@ -19,9 +19,11 @@ ...@@ -19,9 +19,11 @@
# #
from __future__ import unicode_literals from __future__ import unicode_literals
from weblate.trans.autofixes.base import AutoFix
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from weblate.trans.autofixes.base import AutoFix
class ReplaceTrailingDotsWithEllipsis(AutoFix): class ReplaceTrailingDotsWithEllipsis(AutoFix):
''' '''
......
...@@ -19,11 +19,14 @@ ...@@ -19,11 +19,14 @@
# #
from __future__ import unicode_literals from __future__ import unicode_literals
import re
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from weblate.trans.checks.base import ( from weblate.trans.checks.base import (
TargetCheck, TargetCheckWithFlag, CountingCheck TargetCheck, TargetCheckWithFlag, CountingCheck
) )
import re
class BeginNewlineCheck(TargetCheck): class BeginNewlineCheck(TargetCheck):
......
...@@ -18,9 +18,11 @@ ...@@ -18,9 +18,11 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import re
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from weblate.trans.checks.base import TargetCheck from weblate.trans.checks.base import TargetCheck
import re
PYTHON_PRINTF_MATCH = re.compile( PYTHON_PRINTF_MATCH = re.compile(
r''' r'''
......
...@@ -18,9 +18,11 @@ ...@@ -18,9 +18,11 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
from django.utils.translation import ugettext_lazy as _
from xml.etree import cElementTree from xml.etree import cElementTree
import re import re
from django.utils.translation import ugettext_lazy as _
from weblate.trans.checks.base import TargetCheck from weblate.trans.checks.base import TargetCheck
BBCODE_MATCH = re.compile( BBCODE_MATCH = re.compile(
......
...@@ -19,14 +19,17 @@ ...@@ -19,14 +19,17 @@
# #
from __future__ import unicode_literals from __future__ import unicode_literals
import re
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from weblate.trans.checks.base import TargetCheck from weblate.trans.checks.base import TargetCheck
from weblate.trans.checks.format import ( from weblate.trans.checks.format import (
PYTHON_PRINTF_MATCH, PHP_PRINTF_MATCH, C_PRINTF_MATCH, PYTHON_PRINTF_MATCH, PHP_PRINTF_MATCH, C_PRINTF_MATCH,
PYTHON_BRACE_MATCH, PYTHON_BRACE_MATCH,
) )
from weblate.trans.checks.data import SAME_BLACKLIST from weblate.trans.checks.data import SAME_BLACKLIST
import re
# Email address to ignore # Email address to ignore
EMAIL_RE = re.compile( EMAIL_RE = re.compile(
...@@ -60,8 +63,8 @@ TEMPLATE_RE = re.compile(r'{[a-z_-]+}|@[A-Z_]@') ...@@ -60,8 +63,8 @@ TEMPLATE_RE = re.compile(r'{[a-z_-]+}|@[A-Z_]@')
RST_MATCH = re.compile(r'(?::ref:`[^`]+`|``[^`]+``)') RST_MATCH = re.compile(r'(?::ref:`[^`]+`|``[^`]+``)')
SPLIT_RE = re.compile( SPLIT_RE = re.compile(
ur'(?:\&(?:nbsp|rsaquo|lt|gt|amp|ldquo|rdquo|times|quot);|' + r'(?:\&(?:nbsp|rsaquo|lt|gt|amp|ldquo|rdquo|times|quot);|' +
ur'[() ,.^`"\'\\/_<>!?;:|{}*^@%#&~=+\r\n✓—…\[\]0-9-])+' r'[() ,.^`"\'\\/_<>!?;:|{}*^@%#&~=+\r\n✓—…\[\]0-9-])+'
) )
# Docbook tags to ignore # Docbook tags to ignore
......
...@@ -19,10 +19,13 @@ ...@@ -19,10 +19,13 @@
# #
from __future__ import unicode_literals from __future__ import unicode_literals
import re
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from weblate.trans.checks.base import SourceCheck from weblate.trans.checks.base import SourceCheck
from weblate.trans.models.unitdata import Check from weblate.trans.models.unitdata import Check
import re
# Matches (s) not followed by alphanumeric chars or at the end # Matches (s) not followed by alphanumeric chars or at the end
PLURAL_MATCH = re.compile(r'\(s\)(\W|\Z)') PLURAL_MATCH = re.compile(r'\(s\)(\W|\Z)')
......
...@@ -18,9 +18,10 @@ ...@@ -18,9 +18,10 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
from datetime import datetime
import weblate import weblate
from weblate import appsettings from weblate import appsettings
from datetime import datetime
from weblate.trans.site import get_site_url from weblate.trans.site import get_site_url
from weblate.trans.models.project import Project from weblate.trans.models.project import Project
from weblate.trans.models.translation import Translation from weblate.trans.models.translation import Translation
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment