docker setup
This commit is contained in:
@ -0,0 +1,244 @@
|
||||
import inspect
|
||||
import re
|
||||
|
||||
from django.apps import apps as django_apps
|
||||
from django.conf import settings
|
||||
from django.core.exceptions import ImproperlyConfigured, PermissionDenied
|
||||
from django.middleware.csrf import rotate_token
|
||||
from django.utils.crypto import constant_time_compare
|
||||
from django.utils.module_loading import import_string
|
||||
from django.views.decorators.debug import sensitive_variables
|
||||
|
||||
from .signals import user_logged_in, user_logged_out, user_login_failed
|
||||
|
||||
SESSION_KEY = "_auth_user_id"
|
||||
BACKEND_SESSION_KEY = "_auth_user_backend"
|
||||
HASH_SESSION_KEY = "_auth_user_hash"
|
||||
REDIRECT_FIELD_NAME = "next"
|
||||
|
||||
|
||||
def load_backend(path):
|
||||
return import_string(path)()
|
||||
|
||||
|
||||
def _get_backends(return_tuples=False):
|
||||
backends = []
|
||||
for backend_path in settings.AUTHENTICATION_BACKENDS:
|
||||
backend = load_backend(backend_path)
|
||||
backends.append((backend, backend_path) if return_tuples else backend)
|
||||
if not backends:
|
||||
raise ImproperlyConfigured(
|
||||
"No authentication backends have been defined. Does "
|
||||
"AUTHENTICATION_BACKENDS contain anything?"
|
||||
)
|
||||
return backends
|
||||
|
||||
|
||||
def get_backends():
|
||||
return _get_backends(return_tuples=False)
|
||||
|
||||
|
||||
@sensitive_variables("credentials")
|
||||
def _clean_credentials(credentials):
|
||||
"""
|
||||
Clean a dictionary of credentials of potentially sensitive info before
|
||||
sending to less secure functions.
|
||||
|
||||
Not comprehensive - intended for user_login_failed signal
|
||||
"""
|
||||
SENSITIVE_CREDENTIALS = re.compile("api|token|key|secret|password|signature", re.I)
|
||||
CLEANSED_SUBSTITUTE = "********************"
|
||||
for key in credentials:
|
||||
if SENSITIVE_CREDENTIALS.search(key):
|
||||
credentials[key] = CLEANSED_SUBSTITUTE
|
||||
return credentials
|
||||
|
||||
|
||||
def _get_user_session_key(request):
|
||||
# This value in the session is always serialized to a string, so we need
|
||||
# to convert it back to Python whenever we access it.
|
||||
return get_user_model()._meta.pk.to_python(request.session[SESSION_KEY])
|
||||
|
||||
|
||||
@sensitive_variables("credentials")
|
||||
def authenticate(request=None, **credentials):
|
||||
"""
|
||||
If the given credentials are valid, return a User object.
|
||||
"""
|
||||
for backend, backend_path in _get_backends(return_tuples=True):
|
||||
backend_signature = inspect.signature(backend.authenticate)
|
||||
try:
|
||||
backend_signature.bind(request, **credentials)
|
||||
except TypeError:
|
||||
# This backend doesn't accept these credentials as arguments. Try
|
||||
# the next one.
|
||||
continue
|
||||
try:
|
||||
user = backend.authenticate(request, **credentials)
|
||||
except PermissionDenied:
|
||||
# This backend says to stop in our tracks - this user should not be
|
||||
# allowed in at all.
|
||||
break
|
||||
if user is None:
|
||||
continue
|
||||
# Annotate the user object with the path of the backend.
|
||||
user.backend = backend_path
|
||||
return user
|
||||
|
||||
# The credentials supplied are invalid to all backends, fire signal
|
||||
user_login_failed.send(
|
||||
sender=__name__, credentials=_clean_credentials(credentials), request=request
|
||||
)
|
||||
|
||||
|
||||
def login(request, user, backend=None):
|
||||
"""
|
||||
Persist a user id and a backend in the request. This way a user doesn't
|
||||
have to reauthenticate on every request. Note that data set during
|
||||
the anonymous session is retained when the user logs in.
|
||||
"""
|
||||
session_auth_hash = ""
|
||||
if user is None:
|
||||
user = request.user
|
||||
if hasattr(user, "get_session_auth_hash"):
|
||||
session_auth_hash = user.get_session_auth_hash()
|
||||
|
||||
if SESSION_KEY in request.session:
|
||||
if _get_user_session_key(request) != user.pk or (
|
||||
session_auth_hash
|
||||
and not constant_time_compare(
|
||||
request.session.get(HASH_SESSION_KEY, ""), session_auth_hash
|
||||
)
|
||||
):
|
||||
# To avoid reusing another user's session, create a new, empty
|
||||
# session if the existing session corresponds to a different
|
||||
# authenticated user.
|
||||
request.session.flush()
|
||||
else:
|
||||
request.session.cycle_key()
|
||||
|
||||
try:
|
||||
backend = backend or user.backend
|
||||
except AttributeError:
|
||||
backends = _get_backends(return_tuples=True)
|
||||
if len(backends) == 1:
|
||||
_, backend = backends[0]
|
||||
else:
|
||||
raise ValueError(
|
||||
"You have multiple authentication backends configured and "
|
||||
"therefore must provide the `backend` argument or set the "
|
||||
"`backend` attribute on the user."
|
||||
)
|
||||
else:
|
||||
if not isinstance(backend, str):
|
||||
raise TypeError(
|
||||
"backend must be a dotted import path string (got %r)." % backend
|
||||
)
|
||||
|
||||
request.session[SESSION_KEY] = user._meta.pk.value_to_string(user)
|
||||
request.session[BACKEND_SESSION_KEY] = backend
|
||||
request.session[HASH_SESSION_KEY] = session_auth_hash
|
||||
if hasattr(request, "user"):
|
||||
request.user = user
|
||||
rotate_token(request)
|
||||
user_logged_in.send(sender=user.__class__, request=request, user=user)
|
||||
|
||||
|
||||
def logout(request):
|
||||
"""
|
||||
Remove the authenticated user's ID from the request and flush their session
|
||||
data.
|
||||
"""
|
||||
# Dispatch the signal before the user is logged out so the receivers have a
|
||||
# chance to find out *who* logged out.
|
||||
user = getattr(request, "user", None)
|
||||
if not getattr(user, "is_authenticated", True):
|
||||
user = None
|
||||
user_logged_out.send(sender=user.__class__, request=request, user=user)
|
||||
request.session.flush()
|
||||
if hasattr(request, "user"):
|
||||
from django.contrib.auth.models import AnonymousUser
|
||||
|
||||
request.user = AnonymousUser()
|
||||
|
||||
|
||||
def get_user_model():
|
||||
"""
|
||||
Return the User model that is active in this project.
|
||||
"""
|
||||
try:
|
||||
return django_apps.get_model(settings.AUTH_USER_MODEL, require_ready=False)
|
||||
except ValueError:
|
||||
raise ImproperlyConfigured(
|
||||
"AUTH_USER_MODEL must be of the form 'app_label.model_name'"
|
||||
)
|
||||
except LookupError:
|
||||
raise ImproperlyConfigured(
|
||||
"AUTH_USER_MODEL refers to model '%s' that has not been installed"
|
||||
% settings.AUTH_USER_MODEL
|
||||
)
|
||||
|
||||
|
||||
def get_user(request):
|
||||
"""
|
||||
Return the user model instance associated with the given request session.
|
||||
If no user is retrieved, return an instance of `AnonymousUser`.
|
||||
"""
|
||||
from .models import AnonymousUser
|
||||
|
||||
user = None
|
||||
try:
|
||||
user_id = _get_user_session_key(request)
|
||||
backend_path = request.session[BACKEND_SESSION_KEY]
|
||||
except KeyError:
|
||||
pass
|
||||
else:
|
||||
if backend_path in settings.AUTHENTICATION_BACKENDS:
|
||||
backend = load_backend(backend_path)
|
||||
user = backend.get_user(user_id)
|
||||
# Verify the session
|
||||
if hasattr(user, "get_session_auth_hash"):
|
||||
session_hash = request.session.get(HASH_SESSION_KEY)
|
||||
if not session_hash:
|
||||
session_hash_verified = False
|
||||
else:
|
||||
session_auth_hash = user.get_session_auth_hash()
|
||||
session_hash_verified = constant_time_compare(
|
||||
session_hash, session_auth_hash
|
||||
)
|
||||
if not session_hash_verified:
|
||||
# If the current secret does not verify the session, try
|
||||
# with the fallback secrets and stop when a matching one is
|
||||
# found.
|
||||
if session_hash and any(
|
||||
constant_time_compare(session_hash, fallback_auth_hash)
|
||||
for fallback_auth_hash in user.get_session_auth_fallback_hash()
|
||||
):
|
||||
request.session.cycle_key()
|
||||
request.session[HASH_SESSION_KEY] = session_auth_hash
|
||||
else:
|
||||
request.session.flush()
|
||||
user = None
|
||||
|
||||
return user or AnonymousUser()
|
||||
|
||||
|
||||
def get_permission_codename(action, opts):
|
||||
"""
|
||||
Return the codename of the permission for the specified action.
|
||||
"""
|
||||
return "%s_%s" % (action, opts.model_name)
|
||||
|
||||
|
||||
def update_session_auth_hash(request, user):
|
||||
"""
|
||||
Updating a user's password logs out all sessions for the user.
|
||||
|
||||
Take the current request and the updated user object from which the new
|
||||
session hash will be derived and update the session hash appropriately to
|
||||
prevent a password change from logging out the session from which the
|
||||
password was changed.
|
||||
"""
|
||||
request.session.cycle_key()
|
||||
if hasattr(user, "get_session_auth_hash") and request.user == user:
|
||||
request.session[HASH_SESSION_KEY] = user.get_session_auth_hash()
|
@ -0,0 +1,230 @@
|
||||
from django.conf import settings
|
||||
from django.contrib import admin, messages
|
||||
from django.contrib.admin.options import IS_POPUP_VAR
|
||||
from django.contrib.admin.utils import unquote
|
||||
from django.contrib.auth import update_session_auth_hash
|
||||
from django.contrib.auth.forms import (
|
||||
AdminPasswordChangeForm,
|
||||
UserChangeForm,
|
||||
UserCreationForm,
|
||||
)
|
||||
from django.contrib.auth.models import Group, User
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from django.db import router, transaction
|
||||
from django.http import Http404, HttpResponseRedirect
|
||||
from django.template.response import TemplateResponse
|
||||
from django.urls import path, reverse
|
||||
from django.utils.decorators import method_decorator
|
||||
from django.utils.html import escape
|
||||
from django.utils.translation import gettext
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.views.decorators.csrf import csrf_protect
|
||||
from django.views.decorators.debug import sensitive_post_parameters
|
||||
|
||||
csrf_protect_m = method_decorator(csrf_protect)
|
||||
sensitive_post_parameters_m = method_decorator(sensitive_post_parameters())
|
||||
|
||||
|
||||
@admin.register(Group)
|
||||
class GroupAdmin(admin.ModelAdmin):
|
||||
search_fields = ("name",)
|
||||
ordering = ("name",)
|
||||
filter_horizontal = ("permissions",)
|
||||
|
||||
def formfield_for_manytomany(self, db_field, request=None, **kwargs):
|
||||
if db_field.name == "permissions":
|
||||
qs = kwargs.get("queryset", db_field.remote_field.model.objects)
|
||||
# Avoid a major performance hit resolving permission names which
|
||||
# triggers a content_type load:
|
||||
kwargs["queryset"] = qs.select_related("content_type")
|
||||
return super().formfield_for_manytomany(db_field, request=request, **kwargs)
|
||||
|
||||
|
||||
@admin.register(User)
|
||||
class UserAdmin(admin.ModelAdmin):
|
||||
add_form_template = "admin/auth/user/add_form.html"
|
||||
change_user_password_template = None
|
||||
fieldsets = (
|
||||
(None, {"fields": ("username", "password")}),
|
||||
(_("Personal info"), {"fields": ("first_name", "last_name", "email")}),
|
||||
(
|
||||
_("Permissions"),
|
||||
{
|
||||
"fields": (
|
||||
"is_active",
|
||||
"is_staff",
|
||||
"is_superuser",
|
||||
"groups",
|
||||
"user_permissions",
|
||||
),
|
||||
},
|
||||
),
|
||||
(_("Important dates"), {"fields": ("last_login", "date_joined")}),
|
||||
)
|
||||
add_fieldsets = (
|
||||
(
|
||||
None,
|
||||
{
|
||||
"classes": ("wide",),
|
||||
"fields": ("username", "password1", "password2"),
|
||||
},
|
||||
),
|
||||
)
|
||||
form = UserChangeForm
|
||||
add_form = UserCreationForm
|
||||
change_password_form = AdminPasswordChangeForm
|
||||
list_display = ("username", "email", "first_name", "last_name", "is_staff")
|
||||
list_filter = ("is_staff", "is_superuser", "is_active", "groups")
|
||||
search_fields = ("username", "first_name", "last_name", "email")
|
||||
ordering = ("username",)
|
||||
filter_horizontal = (
|
||||
"groups",
|
||||
"user_permissions",
|
||||
)
|
||||
|
||||
def get_fieldsets(self, request, obj=None):
|
||||
if not obj:
|
||||
return self.add_fieldsets
|
||||
return super().get_fieldsets(request, obj)
|
||||
|
||||
def get_form(self, request, obj=None, **kwargs):
|
||||
"""
|
||||
Use special form during user creation
|
||||
"""
|
||||
defaults = {}
|
||||
if obj is None:
|
||||
defaults["form"] = self.add_form
|
||||
defaults.update(kwargs)
|
||||
return super().get_form(request, obj, **defaults)
|
||||
|
||||
def get_urls(self):
|
||||
return [
|
||||
path(
|
||||
"<id>/password/",
|
||||
self.admin_site.admin_view(self.user_change_password),
|
||||
name="auth_user_password_change",
|
||||
),
|
||||
] + super().get_urls()
|
||||
|
||||
def lookup_allowed(self, lookup, value):
|
||||
# Don't allow lookups involving passwords.
|
||||
return not lookup.startswith("password") and super().lookup_allowed(
|
||||
lookup, value
|
||||
)
|
||||
|
||||
@sensitive_post_parameters_m
|
||||
@csrf_protect_m
|
||||
def add_view(self, request, form_url="", extra_context=None):
|
||||
with transaction.atomic(using=router.db_for_write(self.model)):
|
||||
return self._add_view(request, form_url, extra_context)
|
||||
|
||||
def _add_view(self, request, form_url="", extra_context=None):
|
||||
# It's an error for a user to have add permission but NOT change
|
||||
# permission for users. If we allowed such users to add users, they
|
||||
# could create superusers, which would mean they would essentially have
|
||||
# the permission to change users. To avoid the problem entirely, we
|
||||
# disallow users from adding users if they don't have change
|
||||
# permission.
|
||||
if not self.has_change_permission(request):
|
||||
if self.has_add_permission(request) and settings.DEBUG:
|
||||
# Raise Http404 in debug mode so that the user gets a helpful
|
||||
# error message.
|
||||
raise Http404(
|
||||
'Your user does not have the "Change user" permission. In '
|
||||
"order to add users, Django requires that your user "
|
||||
'account have both the "Add user" and "Change user" '
|
||||
"permissions set."
|
||||
)
|
||||
raise PermissionDenied
|
||||
if extra_context is None:
|
||||
extra_context = {}
|
||||
username_field = self.opts.get_field(self.model.USERNAME_FIELD)
|
||||
defaults = {
|
||||
"auto_populated_fields": (),
|
||||
"username_help_text": username_field.help_text,
|
||||
}
|
||||
extra_context.update(defaults)
|
||||
return super().add_view(request, form_url, extra_context)
|
||||
|
||||
@sensitive_post_parameters_m
|
||||
def user_change_password(self, request, id, form_url=""):
|
||||
user = self.get_object(request, unquote(id))
|
||||
if not self.has_change_permission(request, user):
|
||||
raise PermissionDenied
|
||||
if user is None:
|
||||
raise Http404(
|
||||
_("%(name)s object with primary key %(key)r does not exist.")
|
||||
% {
|
||||
"name": self.opts.verbose_name,
|
||||
"key": escape(id),
|
||||
}
|
||||
)
|
||||
if request.method == "POST":
|
||||
form = self.change_password_form(user, request.POST)
|
||||
if form.is_valid():
|
||||
form.save()
|
||||
change_message = self.construct_change_message(request, form, None)
|
||||
self.log_change(request, user, change_message)
|
||||
msg = gettext("Password changed successfully.")
|
||||
messages.success(request, msg)
|
||||
update_session_auth_hash(request, form.user)
|
||||
return HttpResponseRedirect(
|
||||
reverse(
|
||||
"%s:%s_%s_change"
|
||||
% (
|
||||
self.admin_site.name,
|
||||
user._meta.app_label,
|
||||
user._meta.model_name,
|
||||
),
|
||||
args=(user.pk,),
|
||||
)
|
||||
)
|
||||
else:
|
||||
form = self.change_password_form(user)
|
||||
|
||||
fieldsets = [(None, {"fields": list(form.base_fields)})]
|
||||
admin_form = admin.helpers.AdminForm(form, fieldsets, {})
|
||||
|
||||
context = {
|
||||
"title": _("Change password: %s") % escape(user.get_username()),
|
||||
"adminForm": admin_form,
|
||||
"form_url": form_url,
|
||||
"form": form,
|
||||
"is_popup": (IS_POPUP_VAR in request.POST or IS_POPUP_VAR in request.GET),
|
||||
"is_popup_var": IS_POPUP_VAR,
|
||||
"add": True,
|
||||
"change": False,
|
||||
"has_delete_permission": False,
|
||||
"has_change_permission": True,
|
||||
"has_absolute_url": False,
|
||||
"opts": self.opts,
|
||||
"original": user,
|
||||
"save_as": False,
|
||||
"show_save": True,
|
||||
**self.admin_site.each_context(request),
|
||||
}
|
||||
|
||||
request.current_app = self.admin_site.name
|
||||
|
||||
return TemplateResponse(
|
||||
request,
|
||||
self.change_user_password_template
|
||||
or "admin/auth/user/change_password.html",
|
||||
context,
|
||||
)
|
||||
|
||||
def response_add(self, request, obj, post_url_continue=None):
|
||||
"""
|
||||
Determine the HttpResponse for the add_view stage. It mostly defers to
|
||||
its superclass implementation but is customized because the User model
|
||||
has a slightly different workflow.
|
||||
"""
|
||||
# We should allow further modification of the user just added i.e. the
|
||||
# 'Save' button should behave like the 'Save and continue editing'
|
||||
# button except in two scenarios:
|
||||
# * The user has pressed the 'Save and add another' button
|
||||
# * We are adding a user in a popup
|
||||
if "_addanother" not in request.POST and IS_POPUP_VAR not in request.POST:
|
||||
request.POST = request.POST.copy()
|
||||
request.POST["_continue"] = 1
|
||||
return super().response_add(request, obj, post_url_continue)
|
@ -0,0 +1,30 @@
|
||||
from django.apps import AppConfig
|
||||
from django.core import checks
|
||||
from django.db.models.query_utils import DeferredAttribute
|
||||
from django.db.models.signals import post_migrate
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from . import get_user_model
|
||||
from .checks import check_models_permissions, check_user_model
|
||||
from .management import create_permissions
|
||||
from .signals import user_logged_in
|
||||
|
||||
|
||||
class AuthConfig(AppConfig):
|
||||
default_auto_field = "django.db.models.AutoField"
|
||||
name = "django.contrib.auth"
|
||||
verbose_name = _("Authentication and Authorization")
|
||||
|
||||
def ready(self):
|
||||
post_migrate.connect(
|
||||
create_permissions,
|
||||
dispatch_uid="django.contrib.auth.management.create_permissions",
|
||||
)
|
||||
last_login_field = getattr(get_user_model(), "last_login", None)
|
||||
# Register the handler only if UserModel.last_login is a field.
|
||||
if isinstance(last_login_field, DeferredAttribute):
|
||||
from .models import update_last_login
|
||||
|
||||
user_logged_in.connect(update_last_login, dispatch_uid="update_last_login")
|
||||
checks.register(check_user_model, checks.Tags.models)
|
||||
checks.register(check_models_permissions, checks.Tags.models)
|
@ -0,0 +1,249 @@
|
||||
import warnings
|
||||
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.contrib.auth.models import Permission
|
||||
from django.db.models import Exists, OuterRef, Q
|
||||
from django.utils.deprecation import RemovedInDjango50Warning
|
||||
from django.utils.inspect import func_supports_parameter
|
||||
|
||||
UserModel = get_user_model()
|
||||
|
||||
|
||||
class BaseBackend:
|
||||
def authenticate(self, request, **kwargs):
|
||||
return None
|
||||
|
||||
def get_user(self, user_id):
|
||||
return None
|
||||
|
||||
def get_user_permissions(self, user_obj, obj=None):
|
||||
return set()
|
||||
|
||||
def get_group_permissions(self, user_obj, obj=None):
|
||||
return set()
|
||||
|
||||
def get_all_permissions(self, user_obj, obj=None):
|
||||
return {
|
||||
*self.get_user_permissions(user_obj, obj=obj),
|
||||
*self.get_group_permissions(user_obj, obj=obj),
|
||||
}
|
||||
|
||||
def has_perm(self, user_obj, perm, obj=None):
|
||||
return perm in self.get_all_permissions(user_obj, obj=obj)
|
||||
|
||||
|
||||
class ModelBackend(BaseBackend):
|
||||
"""
|
||||
Authenticates against settings.AUTH_USER_MODEL.
|
||||
"""
|
||||
|
||||
def authenticate(self, request, username=None, password=None, **kwargs):
|
||||
if username is None:
|
||||
username = kwargs.get(UserModel.USERNAME_FIELD)
|
||||
if username is None or password is None:
|
||||
return
|
||||
try:
|
||||
user = UserModel._default_manager.get_by_natural_key(username)
|
||||
except UserModel.DoesNotExist:
|
||||
# Run the default password hasher once to reduce the timing
|
||||
# difference between an existing and a nonexistent user (#20760).
|
||||
UserModel().set_password(password)
|
||||
else:
|
||||
if user.check_password(password) and self.user_can_authenticate(user):
|
||||
return user
|
||||
|
||||
def user_can_authenticate(self, user):
|
||||
"""
|
||||
Reject users with is_active=False. Custom user models that don't have
|
||||
that attribute are allowed.
|
||||
"""
|
||||
return getattr(user, "is_active", True)
|
||||
|
||||
def _get_user_permissions(self, user_obj):
|
||||
return user_obj.user_permissions.all()
|
||||
|
||||
def _get_group_permissions(self, user_obj):
|
||||
user_groups_field = get_user_model()._meta.get_field("groups")
|
||||
user_groups_query = "group__%s" % user_groups_field.related_query_name()
|
||||
return Permission.objects.filter(**{user_groups_query: user_obj})
|
||||
|
||||
def _get_permissions(self, user_obj, obj, from_name):
|
||||
"""
|
||||
Return the permissions of `user_obj` from `from_name`. `from_name` can
|
||||
be either "group" or "user" to return permissions from
|
||||
`_get_group_permissions` or `_get_user_permissions` respectively.
|
||||
"""
|
||||
if not user_obj.is_active or user_obj.is_anonymous or obj is not None:
|
||||
return set()
|
||||
|
||||
perm_cache_name = "_%s_perm_cache" % from_name
|
||||
if not hasattr(user_obj, perm_cache_name):
|
||||
if user_obj.is_superuser:
|
||||
perms = Permission.objects.all()
|
||||
else:
|
||||
perms = getattr(self, "_get_%s_permissions" % from_name)(user_obj)
|
||||
perms = perms.values_list("content_type__app_label", "codename").order_by()
|
||||
setattr(
|
||||
user_obj, perm_cache_name, {"%s.%s" % (ct, name) for ct, name in perms}
|
||||
)
|
||||
return getattr(user_obj, perm_cache_name)
|
||||
|
||||
def get_user_permissions(self, user_obj, obj=None):
|
||||
"""
|
||||
Return a set of permission strings the user `user_obj` has from their
|
||||
`user_permissions`.
|
||||
"""
|
||||
return self._get_permissions(user_obj, obj, "user")
|
||||
|
||||
def get_group_permissions(self, user_obj, obj=None):
|
||||
"""
|
||||
Return a set of permission strings the user `user_obj` has from the
|
||||
groups they belong.
|
||||
"""
|
||||
return self._get_permissions(user_obj, obj, "group")
|
||||
|
||||
def get_all_permissions(self, user_obj, obj=None):
|
||||
if not user_obj.is_active or user_obj.is_anonymous or obj is not None:
|
||||
return set()
|
||||
if not hasattr(user_obj, "_perm_cache"):
|
||||
user_obj._perm_cache = super().get_all_permissions(user_obj)
|
||||
return user_obj._perm_cache
|
||||
|
||||
def has_perm(self, user_obj, perm, obj=None):
|
||||
return user_obj.is_active and super().has_perm(user_obj, perm, obj=obj)
|
||||
|
||||
def has_module_perms(self, user_obj, app_label):
|
||||
"""
|
||||
Return True if user_obj has any permissions in the given app_label.
|
||||
"""
|
||||
return user_obj.is_active and any(
|
||||
perm[: perm.index(".")] == app_label
|
||||
for perm in self.get_all_permissions(user_obj)
|
||||
)
|
||||
|
||||
def with_perm(self, perm, is_active=True, include_superusers=True, obj=None):
|
||||
"""
|
||||
Return users that have permission "perm". By default, filter out
|
||||
inactive users and include superusers.
|
||||
"""
|
||||
if isinstance(perm, str):
|
||||
try:
|
||||
app_label, codename = perm.split(".")
|
||||
except ValueError:
|
||||
raise ValueError(
|
||||
"Permission name should be in the form "
|
||||
"app_label.permission_codename."
|
||||
)
|
||||
elif not isinstance(perm, Permission):
|
||||
raise TypeError(
|
||||
"The `perm` argument must be a string or a permission instance."
|
||||
)
|
||||
|
||||
if obj is not None:
|
||||
return UserModel._default_manager.none()
|
||||
|
||||
permission_q = Q(group__user=OuterRef("pk")) | Q(user=OuterRef("pk"))
|
||||
if isinstance(perm, Permission):
|
||||
permission_q &= Q(pk=perm.pk)
|
||||
else:
|
||||
permission_q &= Q(codename=codename, content_type__app_label=app_label)
|
||||
|
||||
user_q = Exists(Permission.objects.filter(permission_q))
|
||||
if include_superusers:
|
||||
user_q |= Q(is_superuser=True)
|
||||
if is_active is not None:
|
||||
user_q &= Q(is_active=is_active)
|
||||
|
||||
return UserModel._default_manager.filter(user_q)
|
||||
|
||||
def get_user(self, user_id):
|
||||
try:
|
||||
user = UserModel._default_manager.get(pk=user_id)
|
||||
except UserModel.DoesNotExist:
|
||||
return None
|
||||
return user if self.user_can_authenticate(user) else None
|
||||
|
||||
|
||||
class AllowAllUsersModelBackend(ModelBackend):
|
||||
def user_can_authenticate(self, user):
|
||||
return True
|
||||
|
||||
|
||||
class RemoteUserBackend(ModelBackend):
|
||||
"""
|
||||
This backend is to be used in conjunction with the ``RemoteUserMiddleware``
|
||||
found in the middleware module of this package, and is used when the server
|
||||
is handling authentication outside of Django.
|
||||
|
||||
By default, the ``authenticate`` method creates ``User`` objects for
|
||||
usernames that don't already exist in the database. Subclasses can disable
|
||||
this behavior by setting the ``create_unknown_user`` attribute to
|
||||
``False``.
|
||||
"""
|
||||
|
||||
# Create a User object if not already in the database?
|
||||
create_unknown_user = True
|
||||
|
||||
def authenticate(self, request, remote_user):
|
||||
"""
|
||||
The username passed as ``remote_user`` is considered trusted. Return
|
||||
the ``User`` object with the given username. Create a new ``User``
|
||||
object if ``create_unknown_user`` is ``True``.
|
||||
|
||||
Return None if ``create_unknown_user`` is ``False`` and a ``User``
|
||||
object with the given username is not found in the database.
|
||||
"""
|
||||
if not remote_user:
|
||||
return
|
||||
created = False
|
||||
user = None
|
||||
username = self.clean_username(remote_user)
|
||||
|
||||
# Note that this could be accomplished in one try-except clause, but
|
||||
# instead we use get_or_create when creating unknown users since it has
|
||||
# built-in safeguards for multiple threads.
|
||||
if self.create_unknown_user:
|
||||
user, created = UserModel._default_manager.get_or_create(
|
||||
**{UserModel.USERNAME_FIELD: username}
|
||||
)
|
||||
else:
|
||||
try:
|
||||
user = UserModel._default_manager.get_by_natural_key(username)
|
||||
except UserModel.DoesNotExist:
|
||||
pass
|
||||
|
||||
# RemovedInDjango50Warning: When the deprecation ends, replace with:
|
||||
# user = self.configure_user(request, user, created=created)
|
||||
if func_supports_parameter(self.configure_user, "created"):
|
||||
user = self.configure_user(request, user, created=created)
|
||||
else:
|
||||
warnings.warn(
|
||||
f"`created=True` must be added to the signature of "
|
||||
f"{self.__class__.__qualname__}.configure_user().",
|
||||
category=RemovedInDjango50Warning,
|
||||
)
|
||||
if created:
|
||||
user = self.configure_user(request, user)
|
||||
return user if self.user_can_authenticate(user) else None
|
||||
|
||||
def clean_username(self, username):
|
||||
"""
|
||||
Perform any cleaning on the "username" prior to using it to get or
|
||||
create the user object. Return the cleaned username.
|
||||
|
||||
By default, return the username unchanged.
|
||||
"""
|
||||
return username
|
||||
|
||||
def configure_user(self, request, user, created=True):
|
||||
"""
|
||||
Configure a user and return the updated user.
|
||||
|
||||
By default, return the user unmodified.
|
||||
"""
|
||||
return user
|
||||
|
||||
|
||||
class AllowAllUsersRemoteUserBackend(RemoteUserBackend):
|
||||
def user_can_authenticate(self, user):
|
||||
return True
|
@ -0,0 +1,167 @@
|
||||
"""
|
||||
This module allows importing AbstractBaseUser even when django.contrib.auth is
|
||||
not in INSTALLED_APPS.
|
||||
"""
|
||||
import unicodedata
|
||||
import warnings
|
||||
|
||||
from django.conf import settings
|
||||
from django.contrib.auth import password_validation
|
||||
from django.contrib.auth.hashers import (
|
||||
check_password,
|
||||
is_password_usable,
|
||||
make_password,
|
||||
)
|
||||
from django.db import models
|
||||
from django.utils.crypto import get_random_string, salted_hmac
|
||||
from django.utils.deprecation import RemovedInDjango51Warning
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
|
||||
class BaseUserManager(models.Manager):
|
||||
@classmethod
|
||||
def normalize_email(cls, email):
|
||||
"""
|
||||
Normalize the email address by lowercasing the domain part of it.
|
||||
"""
|
||||
email = email or ""
|
||||
try:
|
||||
email_name, domain_part = email.strip().rsplit("@", 1)
|
||||
except ValueError:
|
||||
pass
|
||||
else:
|
||||
email = email_name + "@" + domain_part.lower()
|
||||
return email
|
||||
|
||||
def make_random_password(
|
||||
self,
|
||||
length=10,
|
||||
allowed_chars="abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789",
|
||||
):
|
||||
"""
|
||||
Generate a random password with the given length and given
|
||||
allowed_chars. The default value of allowed_chars does not have "I" or
|
||||
"O" or letters and digits that look similar -- just to avoid confusion.
|
||||
"""
|
||||
warnings.warn(
|
||||
"BaseUserManager.make_random_password() is deprecated.",
|
||||
category=RemovedInDjango51Warning,
|
||||
stacklevel=2,
|
||||
)
|
||||
return get_random_string(length, allowed_chars)
|
||||
|
||||
def get_by_natural_key(self, username):
|
||||
return self.get(**{self.model.USERNAME_FIELD: username})
|
||||
|
||||
|
||||
class AbstractBaseUser(models.Model):
|
||||
password = models.CharField(_("password"), max_length=128)
|
||||
last_login = models.DateTimeField(_("last login"), blank=True, null=True)
|
||||
|
||||
is_active = True
|
||||
|
||||
REQUIRED_FIELDS = []
|
||||
|
||||
# Stores the raw password if set_password() is called so that it can
|
||||
# be passed to password_changed() after the model is saved.
|
||||
_password = None
|
||||
|
||||
class Meta:
|
||||
abstract = True
|
||||
|
||||
def __str__(self):
|
||||
return self.get_username()
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
super().save(*args, **kwargs)
|
||||
if self._password is not None:
|
||||
password_validation.password_changed(self._password, self)
|
||||
self._password = None
|
||||
|
||||
def get_username(self):
|
||||
"""Return the username for this User."""
|
||||
return getattr(self, self.USERNAME_FIELD)
|
||||
|
||||
def clean(self):
|
||||
setattr(self, self.USERNAME_FIELD, self.normalize_username(self.get_username()))
|
||||
|
||||
def natural_key(self):
|
||||
return (self.get_username(),)
|
||||
|
||||
@property
|
||||
def is_anonymous(self):
|
||||
"""
|
||||
Always return False. This is a way of comparing User objects to
|
||||
anonymous users.
|
||||
"""
|
||||
return False
|
||||
|
||||
@property
|
||||
def is_authenticated(self):
|
||||
"""
|
||||
Always return True. This is a way to tell if the user has been
|
||||
authenticated in templates.
|
||||
"""
|
||||
return True
|
||||
|
||||
def set_password(self, raw_password):
|
||||
self.password = make_password(raw_password)
|
||||
self._password = raw_password
|
||||
|
||||
def check_password(self, raw_password):
|
||||
"""
|
||||
Return a boolean of whether the raw_password was correct. Handles
|
||||
hashing formats behind the scenes.
|
||||
"""
|
||||
|
||||
def setter(raw_password):
|
||||
self.set_password(raw_password)
|
||||
# Password hash upgrades shouldn't be considered password changes.
|
||||
self._password = None
|
||||
self.save(update_fields=["password"])
|
||||
|
||||
return check_password(raw_password, self.password, setter)
|
||||
|
||||
def set_unusable_password(self):
|
||||
# Set a value that will never be a valid hash
|
||||
self.password = make_password(None)
|
||||
|
||||
def has_usable_password(self):
|
||||
"""
|
||||
Return False if set_unusable_password() has been called for this user.
|
||||
"""
|
||||
return is_password_usable(self.password)
|
||||
|
||||
def get_session_auth_hash(self):
|
||||
"""
|
||||
Return an HMAC of the password field.
|
||||
"""
|
||||
return self._get_session_auth_hash()
|
||||
|
||||
def get_session_auth_fallback_hash(self):
|
||||
for fallback_secret in settings.SECRET_KEY_FALLBACKS:
|
||||
yield self._get_session_auth_hash(secret=fallback_secret)
|
||||
|
||||
def _get_session_auth_hash(self, secret=None):
|
||||
key_salt = "django.contrib.auth.models.AbstractBaseUser.get_session_auth_hash"
|
||||
return salted_hmac(
|
||||
key_salt,
|
||||
self.password,
|
||||
secret=secret,
|
||||
algorithm="sha256",
|
||||
).hexdigest()
|
||||
|
||||
@classmethod
|
||||
def get_email_field_name(cls):
|
||||
try:
|
||||
return cls.EMAIL_FIELD
|
||||
except AttributeError:
|
||||
return "email"
|
||||
|
||||
@classmethod
|
||||
def normalize_username(cls, username):
|
||||
return (
|
||||
unicodedata.normalize("NFKC", username)
|
||||
if isinstance(username, str)
|
||||
else username
|
||||
)
|
@ -0,0 +1,220 @@
|
||||
from itertools import chain
|
||||
from types import MethodType
|
||||
|
||||
from django.apps import apps
|
||||
from django.conf import settings
|
||||
from django.core import checks
|
||||
|
||||
from .management import _get_builtin_permissions
|
||||
|
||||
|
||||
def check_user_model(app_configs=None, **kwargs):
|
||||
if app_configs is None:
|
||||
cls = apps.get_model(settings.AUTH_USER_MODEL)
|
||||
else:
|
||||
app_label, model_name = settings.AUTH_USER_MODEL.split(".")
|
||||
for app_config in app_configs:
|
||||
if app_config.label == app_label:
|
||||
cls = app_config.get_model(model_name)
|
||||
break
|
||||
else:
|
||||
# Checks might be run against a set of app configs that don't
|
||||
# include the specified user model. In this case we simply don't
|
||||
# perform the checks defined below.
|
||||
return []
|
||||
|
||||
errors = []
|
||||
|
||||
# Check that REQUIRED_FIELDS is a list
|
||||
if not isinstance(cls.REQUIRED_FIELDS, (list, tuple)):
|
||||
errors.append(
|
||||
checks.Error(
|
||||
"'REQUIRED_FIELDS' must be a list or tuple.",
|
||||
obj=cls,
|
||||
id="auth.E001",
|
||||
)
|
||||
)
|
||||
|
||||
# Check that the USERNAME FIELD isn't included in REQUIRED_FIELDS.
|
||||
if cls.USERNAME_FIELD in cls.REQUIRED_FIELDS:
|
||||
errors.append(
|
||||
checks.Error(
|
||||
"The field named as the 'USERNAME_FIELD' "
|
||||
"for a custom user model must not be included in 'REQUIRED_FIELDS'.",
|
||||
hint=(
|
||||
"The 'USERNAME_FIELD' is currently set to '%s', you "
|
||||
"should remove '%s' from the 'REQUIRED_FIELDS'."
|
||||
% (cls.USERNAME_FIELD, cls.USERNAME_FIELD)
|
||||
),
|
||||
obj=cls,
|
||||
id="auth.E002",
|
||||
)
|
||||
)
|
||||
|
||||
# Check that the username field is unique
|
||||
if not cls._meta.get_field(cls.USERNAME_FIELD).unique and not any(
|
||||
constraint.fields == (cls.USERNAME_FIELD,)
|
||||
for constraint in cls._meta.total_unique_constraints
|
||||
):
|
||||
if settings.AUTHENTICATION_BACKENDS == [
|
||||
"django.contrib.auth.backends.ModelBackend"
|
||||
]:
|
||||
errors.append(
|
||||
checks.Error(
|
||||
"'%s.%s' must be unique because it is named as the "
|
||||
"'USERNAME_FIELD'." % (cls._meta.object_name, cls.USERNAME_FIELD),
|
||||
obj=cls,
|
||||
id="auth.E003",
|
||||
)
|
||||
)
|
||||
else:
|
||||
errors.append(
|
||||
checks.Warning(
|
||||
"'%s.%s' is named as the 'USERNAME_FIELD', but it is not unique."
|
||||
% (cls._meta.object_name, cls.USERNAME_FIELD),
|
||||
hint=(
|
||||
"Ensure that your authentication backend(s) can handle "
|
||||
"non-unique usernames."
|
||||
),
|
||||
obj=cls,
|
||||
id="auth.W004",
|
||||
)
|
||||
)
|
||||
|
||||
if isinstance(cls().is_anonymous, MethodType):
|
||||
errors.append(
|
||||
checks.Critical(
|
||||
"%s.is_anonymous must be an attribute or property rather than "
|
||||
"a method. Ignoring this is a security issue as anonymous "
|
||||
"users will be treated as authenticated!" % cls,
|
||||
obj=cls,
|
||||
id="auth.C009",
|
||||
)
|
||||
)
|
||||
if isinstance(cls().is_authenticated, MethodType):
|
||||
errors.append(
|
||||
checks.Critical(
|
||||
"%s.is_authenticated must be an attribute or property rather "
|
||||
"than a method. Ignoring this is a security issue as anonymous "
|
||||
"users will be treated as authenticated!" % cls,
|
||||
obj=cls,
|
||||
id="auth.C010",
|
||||
)
|
||||
)
|
||||
return errors
|
||||
|
||||
|
||||
def check_models_permissions(app_configs=None, **kwargs):
|
||||
if app_configs is None:
|
||||
models = apps.get_models()
|
||||
else:
|
||||
models = chain.from_iterable(
|
||||
app_config.get_models() for app_config in app_configs
|
||||
)
|
||||
|
||||
Permission = apps.get_model("auth", "Permission")
|
||||
permission_name_max_length = Permission._meta.get_field("name").max_length
|
||||
permission_codename_max_length = Permission._meta.get_field("codename").max_length
|
||||
errors = []
|
||||
|
||||
for model in models:
|
||||
opts = model._meta
|
||||
builtin_permissions = dict(_get_builtin_permissions(opts))
|
||||
# Check builtin permission name length.
|
||||
max_builtin_permission_name_length = (
|
||||
max(len(name) for name in builtin_permissions.values())
|
||||
if builtin_permissions
|
||||
else 0
|
||||
)
|
||||
if max_builtin_permission_name_length > permission_name_max_length:
|
||||
verbose_name_max_length = permission_name_max_length - (
|
||||
max_builtin_permission_name_length - len(opts.verbose_name_raw)
|
||||
)
|
||||
errors.append(
|
||||
checks.Error(
|
||||
"The verbose_name of model '%s' must be at most %d "
|
||||
"characters for its builtin permission names to be at "
|
||||
"most %d characters."
|
||||
% (opts.label, verbose_name_max_length, permission_name_max_length),
|
||||
obj=model,
|
||||
id="auth.E007",
|
||||
)
|
||||
)
|
||||
# Check builtin permission codename length.
|
||||
max_builtin_permission_codename_length = (
|
||||
max(len(codename) for codename in builtin_permissions.keys())
|
||||
if builtin_permissions
|
||||
else 0
|
||||
)
|
||||
if max_builtin_permission_codename_length > permission_codename_max_length:
|
||||
model_name_max_length = permission_codename_max_length - (
|
||||
max_builtin_permission_codename_length - len(opts.model_name)
|
||||
)
|
||||
errors.append(
|
||||
checks.Error(
|
||||
"The name of model '%s' must be at most %d characters "
|
||||
"for its builtin permission codenames to be at most %d "
|
||||
"characters."
|
||||
% (
|
||||
opts.label,
|
||||
model_name_max_length,
|
||||
permission_codename_max_length,
|
||||
),
|
||||
obj=model,
|
||||
id="auth.E011",
|
||||
)
|
||||
)
|
||||
codenames = set()
|
||||
for codename, name in opts.permissions:
|
||||
# Check custom permission name length.
|
||||
if len(name) > permission_name_max_length:
|
||||
errors.append(
|
||||
checks.Error(
|
||||
"The permission named '%s' of model '%s' is longer "
|
||||
"than %d characters."
|
||||
% (
|
||||
name,
|
||||
opts.label,
|
||||
permission_name_max_length,
|
||||
),
|
||||
obj=model,
|
||||
id="auth.E008",
|
||||
)
|
||||
)
|
||||
# Check custom permission codename length.
|
||||
if len(codename) > permission_codename_max_length:
|
||||
errors.append(
|
||||
checks.Error(
|
||||
"The permission codenamed '%s' of model '%s' is "
|
||||
"longer than %d characters."
|
||||
% (
|
||||
codename,
|
||||
opts.label,
|
||||
permission_codename_max_length,
|
||||
),
|
||||
obj=model,
|
||||
id="auth.E012",
|
||||
)
|
||||
)
|
||||
# Check custom permissions codename clashing.
|
||||
if codename in builtin_permissions:
|
||||
errors.append(
|
||||
checks.Error(
|
||||
"The permission codenamed '%s' clashes with a builtin "
|
||||
"permission for model '%s'." % (codename, opts.label),
|
||||
obj=model,
|
||||
id="auth.E005",
|
||||
)
|
||||
)
|
||||
elif codename in codenames:
|
||||
errors.append(
|
||||
checks.Error(
|
||||
"The permission codenamed '%s' is duplicated for "
|
||||
"model '%s'." % (codename, opts.label),
|
||||
obj=model,
|
||||
id="auth.E006",
|
||||
)
|
||||
)
|
||||
codenames.add(codename)
|
||||
|
||||
return errors
|
Binary file not shown.
@ -0,0 +1,67 @@
|
||||
# PermWrapper and PermLookupDict proxy the permissions system into objects that
|
||||
# the template system can understand.
|
||||
|
||||
|
||||
class PermLookupDict:
|
||||
def __init__(self, user, app_label):
|
||||
self.user, self.app_label = user, app_label
|
||||
|
||||
def __repr__(self):
|
||||
return str(self.user.get_all_permissions())
|
||||
|
||||
def __getitem__(self, perm_name):
|
||||
return self.user.has_perm("%s.%s" % (self.app_label, perm_name))
|
||||
|
||||
def __iter__(self):
|
||||
# To fix 'item in perms.someapp' and __getitem__ interaction we need to
|
||||
# define __iter__. See #18979 for details.
|
||||
raise TypeError("PermLookupDict is not iterable.")
|
||||
|
||||
def __bool__(self):
|
||||
return self.user.has_module_perms(self.app_label)
|
||||
|
||||
|
||||
class PermWrapper:
|
||||
def __init__(self, user):
|
||||
self.user = user
|
||||
|
||||
def __repr__(self):
|
||||
return f"{self.__class__.__qualname__}({self.user!r})"
|
||||
|
||||
def __getitem__(self, app_label):
|
||||
return PermLookupDict(self.user, app_label)
|
||||
|
||||
def __iter__(self):
|
||||
# I am large, I contain multitudes.
|
||||
raise TypeError("PermWrapper is not iterable.")
|
||||
|
||||
def __contains__(self, perm_name):
|
||||
"""
|
||||
Lookup by "someapp" or "someapp.someperm" in perms.
|
||||
"""
|
||||
if "." not in perm_name:
|
||||
# The name refers to module.
|
||||
return bool(self[perm_name])
|
||||
app_label, perm_name = perm_name.split(".", 1)
|
||||
return self[app_label][perm_name]
|
||||
|
||||
|
||||
def auth(request):
|
||||
"""
|
||||
Return context variables required by apps that use Django's authentication
|
||||
system.
|
||||
|
||||
If there is no 'user' attribute in the request, use AnonymousUser (from
|
||||
django.contrib.auth).
|
||||
"""
|
||||
if hasattr(request, "user"):
|
||||
user = request.user
|
||||
else:
|
||||
from django.contrib.auth.models import AnonymousUser
|
||||
|
||||
user = AnonymousUser()
|
||||
|
||||
return {
|
||||
"user": user,
|
||||
"perms": PermWrapper(user),
|
||||
}
|
@ -0,0 +1,82 @@
|
||||
from functools import wraps
|
||||
from urllib.parse import urlparse
|
||||
|
||||
from django.conf import settings
|
||||
from django.contrib.auth import REDIRECT_FIELD_NAME
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from django.shortcuts import resolve_url
|
||||
|
||||
|
||||
def user_passes_test(
|
||||
test_func, login_url=None, redirect_field_name=REDIRECT_FIELD_NAME
|
||||
):
|
||||
"""
|
||||
Decorator for views that checks that the user passes the given test,
|
||||
redirecting to the log-in page if necessary. The test should be a callable
|
||||
that takes the user object and returns True if the user passes.
|
||||
"""
|
||||
|
||||
def decorator(view_func):
|
||||
@wraps(view_func)
|
||||
def _wrapper_view(request, *args, **kwargs):
|
||||
if test_func(request.user):
|
||||
return view_func(request, *args, **kwargs)
|
||||
path = request.build_absolute_uri()
|
||||
resolved_login_url = resolve_url(login_url or settings.LOGIN_URL)
|
||||
# If the login url is the same scheme and net location then just
|
||||
# use the path as the "next" url.
|
||||
login_scheme, login_netloc = urlparse(resolved_login_url)[:2]
|
||||
current_scheme, current_netloc = urlparse(path)[:2]
|
||||
if (not login_scheme or login_scheme == current_scheme) and (
|
||||
not login_netloc or login_netloc == current_netloc
|
||||
):
|
||||
path = request.get_full_path()
|
||||
from django.contrib.auth.views import redirect_to_login
|
||||
|
||||
return redirect_to_login(path, resolved_login_url, redirect_field_name)
|
||||
|
||||
return _wrapper_view
|
||||
|
||||
return decorator
|
||||
|
||||
|
||||
def login_required(
|
||||
function=None, redirect_field_name=REDIRECT_FIELD_NAME, login_url=None
|
||||
):
|
||||
"""
|
||||
Decorator for views that checks that the user is logged in, redirecting
|
||||
to the log-in page if necessary.
|
||||
"""
|
||||
actual_decorator = user_passes_test(
|
||||
lambda u: u.is_authenticated,
|
||||
login_url=login_url,
|
||||
redirect_field_name=redirect_field_name,
|
||||
)
|
||||
if function:
|
||||
return actual_decorator(function)
|
||||
return actual_decorator
|
||||
|
||||
|
||||
def permission_required(perm, login_url=None, raise_exception=False):
|
||||
"""
|
||||
Decorator for views that checks whether a user has a particular permission
|
||||
enabled, redirecting to the log-in page if necessary.
|
||||
If the raise_exception parameter is given the PermissionDenied exception
|
||||
is raised.
|
||||
"""
|
||||
|
||||
def check_perms(user):
|
||||
if isinstance(perm, str):
|
||||
perms = (perm,)
|
||||
else:
|
||||
perms = perm
|
||||
# First check if the user has the permission (even anon users)
|
||||
if user.has_perms(perms):
|
||||
return True
|
||||
# In case the 403 handler should be called raise the exception
|
||||
if raise_exception:
|
||||
raise PermissionDenied
|
||||
# As the last resort, show the login form
|
||||
return False
|
||||
|
||||
return user_passes_test(check_perms, login_url=login_url)
|
@ -0,0 +1,510 @@
|
||||
import unicodedata
|
||||
|
||||
from django import forms
|
||||
from django.contrib.auth import authenticate, get_user_model, password_validation
|
||||
from django.contrib.auth.hashers import UNUSABLE_PASSWORD_PREFIX, identify_hasher
|
||||
from django.contrib.auth.models import User
|
||||
from django.contrib.auth.tokens import default_token_generator
|
||||
from django.contrib.sites.shortcuts import get_current_site
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.core.mail import EmailMultiAlternatives
|
||||
from django.template import loader
|
||||
from django.utils.encoding import force_bytes
|
||||
from django.utils.http import urlsafe_base64_encode
|
||||
from django.utils.text import capfirst
|
||||
from django.utils.translation import gettext
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
UserModel = get_user_model()
|
||||
|
||||
|
||||
def _unicode_ci_compare(s1, s2):
|
||||
"""
|
||||
Perform case-insensitive comparison of two identifiers, using the
|
||||
recommended algorithm from Unicode Technical Report 36, section
|
||||
2.11.2(B)(2).
|
||||
"""
|
||||
return (
|
||||
unicodedata.normalize("NFKC", s1).casefold()
|
||||
== unicodedata.normalize("NFKC", s2).casefold()
|
||||
)
|
||||
|
||||
|
||||
class ReadOnlyPasswordHashWidget(forms.Widget):
|
||||
template_name = "auth/widgets/read_only_password_hash.html"
|
||||
read_only = True
|
||||
|
||||
def get_context(self, name, value, attrs):
|
||||
context = super().get_context(name, value, attrs)
|
||||
summary = []
|
||||
if not value or value.startswith(UNUSABLE_PASSWORD_PREFIX):
|
||||
summary.append({"label": gettext("No password set.")})
|
||||
else:
|
||||
try:
|
||||
hasher = identify_hasher(value)
|
||||
except ValueError:
|
||||
summary.append(
|
||||
{
|
||||
"label": gettext(
|
||||
"Invalid password format or unknown hashing algorithm."
|
||||
)
|
||||
}
|
||||
)
|
||||
else:
|
||||
for key, value_ in hasher.safe_summary(value).items():
|
||||
summary.append({"label": gettext(key), "value": value_})
|
||||
context["summary"] = summary
|
||||
return context
|
||||
|
||||
def id_for_label(self, id_):
|
||||
return None
|
||||
|
||||
|
||||
class ReadOnlyPasswordHashField(forms.Field):
|
||||
widget = ReadOnlyPasswordHashWidget
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
kwargs.setdefault("required", False)
|
||||
kwargs.setdefault("disabled", True)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
|
||||
class UsernameField(forms.CharField):
|
||||
def to_python(self, value):
|
||||
return unicodedata.normalize("NFKC", super().to_python(value))
|
||||
|
||||
def widget_attrs(self, widget):
|
||||
return {
|
||||
**super().widget_attrs(widget),
|
||||
"autocapitalize": "none",
|
||||
"autocomplete": "username",
|
||||
}
|
||||
|
||||
|
||||
class BaseUserCreationForm(forms.ModelForm):
|
||||
"""
|
||||
A form that creates a user, with no privileges, from the given username and
|
||||
password.
|
||||
"""
|
||||
|
||||
error_messages = {
|
||||
"password_mismatch": _("The two password fields didn’t match."),
|
||||
}
|
||||
password1 = forms.CharField(
|
||||
label=_("Password"),
|
||||
strip=False,
|
||||
widget=forms.PasswordInput(attrs={"autocomplete": "new-password"}),
|
||||
help_text=password_validation.password_validators_help_text_html(),
|
||||
)
|
||||
password2 = forms.CharField(
|
||||
label=_("Password confirmation"),
|
||||
widget=forms.PasswordInput(attrs={"autocomplete": "new-password"}),
|
||||
strip=False,
|
||||
help_text=_("Enter the same password as before, for verification."),
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = User
|
||||
fields = ("username",)
|
||||
field_classes = {"username": UsernameField}
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
if self._meta.model.USERNAME_FIELD in self.fields:
|
||||
self.fields[self._meta.model.USERNAME_FIELD].widget.attrs[
|
||||
"autofocus"
|
||||
] = True
|
||||
|
||||
def clean_password2(self):
|
||||
password1 = self.cleaned_data.get("password1")
|
||||
password2 = self.cleaned_data.get("password2")
|
||||
if password1 and password2 and password1 != password2:
|
||||
raise ValidationError(
|
||||
self.error_messages["password_mismatch"],
|
||||
code="password_mismatch",
|
||||
)
|
||||
return password2
|
||||
|
||||
def _post_clean(self):
|
||||
super()._post_clean()
|
||||
# Validate the password after self.instance is updated with form data
|
||||
# by super().
|
||||
password = self.cleaned_data.get("password2")
|
||||
if password:
|
||||
try:
|
||||
password_validation.validate_password(password, self.instance)
|
||||
except ValidationError as error:
|
||||
self.add_error("password2", error)
|
||||
|
||||
def save(self, commit=True):
|
||||
user = super().save(commit=False)
|
||||
user.set_password(self.cleaned_data["password1"])
|
||||
if commit:
|
||||
user.save()
|
||||
if hasattr(self, "save_m2m"):
|
||||
self.save_m2m()
|
||||
return user
|
||||
|
||||
|
||||
class UserCreationForm(BaseUserCreationForm):
|
||||
def clean_username(self):
|
||||
"""Reject usernames that differ only in case."""
|
||||
username = self.cleaned_data.get("username")
|
||||
if (
|
||||
username
|
||||
and self._meta.model.objects.filter(username__iexact=username).exists()
|
||||
):
|
||||
self._update_errors(
|
||||
ValidationError(
|
||||
{
|
||||
"username": self.instance.unique_error_message(
|
||||
self._meta.model, ["username"]
|
||||
)
|
||||
}
|
||||
)
|
||||
)
|
||||
else:
|
||||
return username
|
||||
|
||||
|
||||
class UserChangeForm(forms.ModelForm):
|
||||
password = ReadOnlyPasswordHashField(
|
||||
label=_("Password"),
|
||||
help_text=_(
|
||||
"Raw passwords are not stored, so there is no way to see this "
|
||||
"user’s password, but you can change the password using "
|
||||
'<a href="{}">this form</a>.'
|
||||
),
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = User
|
||||
fields = "__all__"
|
||||
field_classes = {"username": UsernameField}
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
password = self.fields.get("password")
|
||||
if password:
|
||||
password.help_text = password.help_text.format(
|
||||
f"../../{self.instance.pk}/password/"
|
||||
)
|
||||
user_permissions = self.fields.get("user_permissions")
|
||||
if user_permissions:
|
||||
user_permissions.queryset = user_permissions.queryset.select_related(
|
||||
"content_type"
|
||||
)
|
||||
|
||||
|
||||
class AuthenticationForm(forms.Form):
|
||||
"""
|
||||
Base class for authenticating users. Extend this to get a form that accepts
|
||||
username/password logins.
|
||||
"""
|
||||
|
||||
username = UsernameField(widget=forms.TextInput(attrs={"autofocus": True}))
|
||||
password = forms.CharField(
|
||||
label=_("Password"),
|
||||
strip=False,
|
||||
widget=forms.PasswordInput(attrs={"autocomplete": "current-password"}),
|
||||
)
|
||||
|
||||
error_messages = {
|
||||
"invalid_login": _(
|
||||
"Please enter a correct %(username)s and password. Note that both "
|
||||
"fields may be case-sensitive."
|
||||
),
|
||||
"inactive": _("This account is inactive."),
|
||||
}
|
||||
|
||||
def __init__(self, request=None, *args, **kwargs):
|
||||
"""
|
||||
The 'request' parameter is set for custom auth use by subclasses.
|
||||
The form data comes in via the standard 'data' kwarg.
|
||||
"""
|
||||
self.request = request
|
||||
self.user_cache = None
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
# Set the max length and label for the "username" field.
|
||||
self.username_field = UserModel._meta.get_field(UserModel.USERNAME_FIELD)
|
||||
username_max_length = self.username_field.max_length or 254
|
||||
self.fields["username"].max_length = username_max_length
|
||||
self.fields["username"].widget.attrs["maxlength"] = username_max_length
|
||||
if self.fields["username"].label is None:
|
||||
self.fields["username"].label = capfirst(self.username_field.verbose_name)
|
||||
|
||||
def clean(self):
|
||||
username = self.cleaned_data.get("username")
|
||||
password = self.cleaned_data.get("password")
|
||||
|
||||
if username is not None and password:
|
||||
self.user_cache = authenticate(
|
||||
self.request, username=username, password=password
|
||||
)
|
||||
if self.user_cache is None:
|
||||
raise self.get_invalid_login_error()
|
||||
else:
|
||||
self.confirm_login_allowed(self.user_cache)
|
||||
|
||||
return self.cleaned_data
|
||||
|
||||
def confirm_login_allowed(self, user):
|
||||
"""
|
||||
Controls whether the given User may log in. This is a policy setting,
|
||||
independent of end-user authentication. This default behavior is to
|
||||
allow login by active users, and reject login by inactive users.
|
||||
|
||||
If the given user cannot log in, this method should raise a
|
||||
``ValidationError``.
|
||||
|
||||
If the given user may log in, this method should return None.
|
||||
"""
|
||||
if not user.is_active:
|
||||
raise ValidationError(
|
||||
self.error_messages["inactive"],
|
||||
code="inactive",
|
||||
)
|
||||
|
||||
def get_user(self):
|
||||
return self.user_cache
|
||||
|
||||
def get_invalid_login_error(self):
|
||||
return ValidationError(
|
||||
self.error_messages["invalid_login"],
|
||||
code="invalid_login",
|
||||
params={"username": self.username_field.verbose_name},
|
||||
)
|
||||
|
||||
|
||||
class PasswordResetForm(forms.Form):
|
||||
email = forms.EmailField(
|
||||
label=_("Email"),
|
||||
max_length=254,
|
||||
widget=forms.EmailInput(attrs={"autocomplete": "email"}),
|
||||
)
|
||||
|
||||
def send_mail(
|
||||
self,
|
||||
subject_template_name,
|
||||
email_template_name,
|
||||
context,
|
||||
from_email,
|
||||
to_email,
|
||||
html_email_template_name=None,
|
||||
):
|
||||
"""
|
||||
Send a django.core.mail.EmailMultiAlternatives to `to_email`.
|
||||
"""
|
||||
subject = loader.render_to_string(subject_template_name, context)
|
||||
# Email subject *must not* contain newlines
|
||||
subject = "".join(subject.splitlines())
|
||||
body = loader.render_to_string(email_template_name, context)
|
||||
|
||||
email_message = EmailMultiAlternatives(subject, body, from_email, [to_email])
|
||||
if html_email_template_name is not None:
|
||||
html_email = loader.render_to_string(html_email_template_name, context)
|
||||
email_message.attach_alternative(html_email, "text/html")
|
||||
|
||||
email_message.send()
|
||||
|
||||
def get_users(self, email):
|
||||
"""Given an email, return matching user(s) who should receive a reset.
|
||||
|
||||
This allows subclasses to more easily customize the default policies
|
||||
that prevent inactive users and users with unusable passwords from
|
||||
resetting their password.
|
||||
"""
|
||||
email_field_name = UserModel.get_email_field_name()
|
||||
active_users = UserModel._default_manager.filter(
|
||||
**{
|
||||
"%s__iexact" % email_field_name: email,
|
||||
"is_active": True,
|
||||
}
|
||||
)
|
||||
return (
|
||||
u
|
||||
for u in active_users
|
||||
if u.has_usable_password()
|
||||
and _unicode_ci_compare(email, getattr(u, email_field_name))
|
||||
)
|
||||
|
||||
def save(
|
||||
self,
|
||||
domain_override=None,
|
||||
subject_template_name="registration/password_reset_subject.txt",
|
||||
email_template_name="registration/password_reset_email.html",
|
||||
use_https=False,
|
||||
token_generator=default_token_generator,
|
||||
from_email=None,
|
||||
request=None,
|
||||
html_email_template_name=None,
|
||||
extra_email_context=None,
|
||||
):
|
||||
"""
|
||||
Generate a one-use only link for resetting password and send it to the
|
||||
user.
|
||||
"""
|
||||
email = self.cleaned_data["email"]
|
||||
if not domain_override:
|
||||
current_site = get_current_site(request)
|
||||
site_name = current_site.name
|
||||
domain = current_site.domain
|
||||
else:
|
||||
site_name = domain = domain_override
|
||||
email_field_name = UserModel.get_email_field_name()
|
||||
for user in self.get_users(email):
|
||||
user_email = getattr(user, email_field_name)
|
||||
context = {
|
||||
"email": user_email,
|
||||
"domain": domain,
|
||||
"site_name": site_name,
|
||||
"uid": urlsafe_base64_encode(force_bytes(user.pk)),
|
||||
"user": user,
|
||||
"token": token_generator.make_token(user),
|
||||
"protocol": "https" if use_https else "http",
|
||||
**(extra_email_context or {}),
|
||||
}
|
||||
self.send_mail(
|
||||
subject_template_name,
|
||||
email_template_name,
|
||||
context,
|
||||
from_email,
|
||||
user_email,
|
||||
html_email_template_name=html_email_template_name,
|
||||
)
|
||||
|
||||
|
||||
class SetPasswordForm(forms.Form):
|
||||
"""
|
||||
A form that lets a user set their password without entering the old
|
||||
password
|
||||
"""
|
||||
|
||||
error_messages = {
|
||||
"password_mismatch": _("The two password fields didn’t match."),
|
||||
}
|
||||
new_password1 = forms.CharField(
|
||||
label=_("New password"),
|
||||
widget=forms.PasswordInput(attrs={"autocomplete": "new-password"}),
|
||||
strip=False,
|
||||
help_text=password_validation.password_validators_help_text_html(),
|
||||
)
|
||||
new_password2 = forms.CharField(
|
||||
label=_("New password confirmation"),
|
||||
strip=False,
|
||||
widget=forms.PasswordInput(attrs={"autocomplete": "new-password"}),
|
||||
)
|
||||
|
||||
def __init__(self, user, *args, **kwargs):
|
||||
self.user = user
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
def clean_new_password2(self):
|
||||
password1 = self.cleaned_data.get("new_password1")
|
||||
password2 = self.cleaned_data.get("new_password2")
|
||||
if password1 and password2 and password1 != password2:
|
||||
raise ValidationError(
|
||||
self.error_messages["password_mismatch"],
|
||||
code="password_mismatch",
|
||||
)
|
||||
password_validation.validate_password(password2, self.user)
|
||||
return password2
|
||||
|
||||
def save(self, commit=True):
|
||||
password = self.cleaned_data["new_password1"]
|
||||
self.user.set_password(password)
|
||||
if commit:
|
||||
self.user.save()
|
||||
return self.user
|
||||
|
||||
|
||||
class PasswordChangeForm(SetPasswordForm):
|
||||
"""
|
||||
A form that lets a user change their password by entering their old
|
||||
password.
|
||||
"""
|
||||
|
||||
error_messages = {
|
||||
**SetPasswordForm.error_messages,
|
||||
"password_incorrect": _(
|
||||
"Your old password was entered incorrectly. Please enter it again."
|
||||
),
|
||||
}
|
||||
old_password = forms.CharField(
|
||||
label=_("Old password"),
|
||||
strip=False,
|
||||
widget=forms.PasswordInput(
|
||||
attrs={"autocomplete": "current-password", "autofocus": True}
|
||||
),
|
||||
)
|
||||
|
||||
field_order = ["old_password", "new_password1", "new_password2"]
|
||||
|
||||
def clean_old_password(self):
|
||||
"""
|
||||
Validate that the old_password field is correct.
|
||||
"""
|
||||
old_password = self.cleaned_data["old_password"]
|
||||
if not self.user.check_password(old_password):
|
||||
raise ValidationError(
|
||||
self.error_messages["password_incorrect"],
|
||||
code="password_incorrect",
|
||||
)
|
||||
return old_password
|
||||
|
||||
|
||||
class AdminPasswordChangeForm(forms.Form):
|
||||
"""
|
||||
A form used to change the password of a user in the admin interface.
|
||||
"""
|
||||
|
||||
error_messages = {
|
||||
"password_mismatch": _("The two password fields didn’t match."),
|
||||
}
|
||||
required_css_class = "required"
|
||||
password1 = forms.CharField(
|
||||
label=_("Password"),
|
||||
widget=forms.PasswordInput(
|
||||
attrs={"autocomplete": "new-password", "autofocus": True}
|
||||
),
|
||||
strip=False,
|
||||
help_text=password_validation.password_validators_help_text_html(),
|
||||
)
|
||||
password2 = forms.CharField(
|
||||
label=_("Password (again)"),
|
||||
widget=forms.PasswordInput(attrs={"autocomplete": "new-password"}),
|
||||
strip=False,
|
||||
help_text=_("Enter the same password as before, for verification."),
|
||||
)
|
||||
|
||||
def __init__(self, user, *args, **kwargs):
|
||||
self.user = user
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
def clean_password2(self):
|
||||
password1 = self.cleaned_data.get("password1")
|
||||
password2 = self.cleaned_data.get("password2")
|
||||
if password1 and password2 and password1 != password2:
|
||||
raise ValidationError(
|
||||
self.error_messages["password_mismatch"],
|
||||
code="password_mismatch",
|
||||
)
|
||||
password_validation.validate_password(password2, self.user)
|
||||
return password2
|
||||
|
||||
def save(self, commit=True):
|
||||
"""Save the new password."""
|
||||
password = self.cleaned_data["password1"]
|
||||
self.user.set_password(password)
|
||||
if commit:
|
||||
self.user.save()
|
||||
return self.user
|
||||
|
||||
@property
|
||||
def changed_data(self):
|
||||
data = super().changed_data
|
||||
for name in self.fields:
|
||||
if name not in data:
|
||||
return []
|
||||
return ["password"]
|
@ -0,0 +1,43 @@
|
||||
from django import db
|
||||
from django.contrib import auth
|
||||
|
||||
UserModel = auth.get_user_model()
|
||||
|
||||
|
||||
def check_password(environ, username, password):
|
||||
"""
|
||||
Authenticate against Django's auth database.
|
||||
|
||||
mod_wsgi docs specify None, True, False as return value depending
|
||||
on whether the user exists and authenticates.
|
||||
"""
|
||||
# db connection state is managed similarly to the wsgi handler
|
||||
# as mod_wsgi may call these functions outside of a request/response cycle
|
||||
db.reset_queries()
|
||||
try:
|
||||
try:
|
||||
user = UserModel._default_manager.get_by_natural_key(username)
|
||||
except UserModel.DoesNotExist:
|
||||
return None
|
||||
if not user.is_active:
|
||||
return None
|
||||
return user.check_password(password)
|
||||
finally:
|
||||
db.close_old_connections()
|
||||
|
||||
|
||||
def groups_for_user(environ, username):
|
||||
"""
|
||||
Authorize a user based on groups
|
||||
"""
|
||||
db.reset_queries()
|
||||
try:
|
||||
try:
|
||||
user = UserModel._default_manager.get_by_natural_key(username)
|
||||
except UserModel.DoesNotExist:
|
||||
return []
|
||||
if not user.is_active:
|
||||
return []
|
||||
return [group.name.encode() for group in user.groups.all()]
|
||||
finally:
|
||||
db.close_old_connections()
|
@ -0,0 +1,884 @@
|
||||
import base64
|
||||
import binascii
|
||||
import functools
|
||||
import hashlib
|
||||
import importlib
|
||||
import math
|
||||
import warnings
|
||||
|
||||
from django.conf import settings
|
||||
from django.core.exceptions import ImproperlyConfigured
|
||||
from django.core.signals import setting_changed
|
||||
from django.dispatch import receiver
|
||||
from django.utils.crypto import (
|
||||
RANDOM_STRING_CHARS,
|
||||
constant_time_compare,
|
||||
get_random_string,
|
||||
md5,
|
||||
pbkdf2,
|
||||
)
|
||||
from django.utils.deprecation import RemovedInDjango50Warning, RemovedInDjango51Warning
|
||||
from django.utils.module_loading import import_string
|
||||
from django.utils.translation import gettext_noop as _
|
||||
|
||||
UNUSABLE_PASSWORD_PREFIX = "!" # This will never be a valid encoded hash
|
||||
UNUSABLE_PASSWORD_SUFFIX_LENGTH = (
|
||||
40 # number of random chars to add after UNUSABLE_PASSWORD_PREFIX
|
||||
)
|
||||
|
||||
|
||||
def is_password_usable(encoded):
|
||||
"""
|
||||
Return True if this password wasn't generated by
|
||||
User.set_unusable_password(), i.e. make_password(None).
|
||||
"""
|
||||
return encoded is None or not encoded.startswith(UNUSABLE_PASSWORD_PREFIX)
|
||||
|
||||
|
||||
def check_password(password, encoded, setter=None, preferred="default"):
|
||||
"""
|
||||
Return a boolean of whether the raw password matches the three
|
||||
part encoded digest.
|
||||
|
||||
If setter is specified, it'll be called when you need to
|
||||
regenerate the password.
|
||||
"""
|
||||
if password is None or not is_password_usable(encoded):
|
||||
return False
|
||||
|
||||
preferred = get_hasher(preferred)
|
||||
try:
|
||||
hasher = identify_hasher(encoded)
|
||||
except ValueError:
|
||||
# encoded is gibberish or uses a hasher that's no longer installed.
|
||||
return False
|
||||
|
||||
hasher_changed = hasher.algorithm != preferred.algorithm
|
||||
must_update = hasher_changed or preferred.must_update(encoded)
|
||||
is_correct = hasher.verify(password, encoded)
|
||||
|
||||
# If the hasher didn't change (we don't protect against enumeration if it
|
||||
# does) and the password should get updated, try to close the timing gap
|
||||
# between the work factor of the current encoded password and the default
|
||||
# work factor.
|
||||
if not is_correct and not hasher_changed and must_update:
|
||||
hasher.harden_runtime(password, encoded)
|
||||
|
||||
if setter and is_correct and must_update:
|
||||
setter(password)
|
||||
return is_correct
|
||||
|
||||
|
||||
def make_password(password, salt=None, hasher="default"):
|
||||
"""
|
||||
Turn a plain-text password into a hash for database storage
|
||||
|
||||
Same as encode() but generate a new random salt. If password is None then
|
||||
return a concatenation of UNUSABLE_PASSWORD_PREFIX and a random string,
|
||||
which disallows logins. Additional random string reduces chances of gaining
|
||||
access to staff or superuser accounts. See ticket #20079 for more info.
|
||||
"""
|
||||
if password is None:
|
||||
return UNUSABLE_PASSWORD_PREFIX + get_random_string(
|
||||
UNUSABLE_PASSWORD_SUFFIX_LENGTH
|
||||
)
|
||||
if not isinstance(password, (bytes, str)):
|
||||
raise TypeError(
|
||||
"Password must be a string or bytes, got %s." % type(password).__qualname__
|
||||
)
|
||||
hasher = get_hasher(hasher)
|
||||
salt = salt or hasher.salt()
|
||||
return hasher.encode(password, salt)
|
||||
|
||||
|
||||
@functools.lru_cache
|
||||
def get_hashers():
|
||||
hashers = []
|
||||
for hasher_path in settings.PASSWORD_HASHERS:
|
||||
hasher_cls = import_string(hasher_path)
|
||||
hasher = hasher_cls()
|
||||
if not getattr(hasher, "algorithm"):
|
||||
raise ImproperlyConfigured(
|
||||
"hasher doesn't specify an algorithm name: %s" % hasher_path
|
||||
)
|
||||
hashers.append(hasher)
|
||||
return hashers
|
||||
|
||||
|
||||
@functools.lru_cache
|
||||
def get_hashers_by_algorithm():
|
||||
return {hasher.algorithm: hasher for hasher in get_hashers()}
|
||||
|
||||
|
||||
@receiver(setting_changed)
|
||||
def reset_hashers(*, setting, **kwargs):
|
||||
if setting == "PASSWORD_HASHERS":
|
||||
get_hashers.cache_clear()
|
||||
get_hashers_by_algorithm.cache_clear()
|
||||
|
||||
|
||||
def get_hasher(algorithm="default"):
|
||||
"""
|
||||
Return an instance of a loaded password hasher.
|
||||
|
||||
If algorithm is 'default', return the default hasher. Lazily import hashers
|
||||
specified in the project's settings file if needed.
|
||||
"""
|
||||
if hasattr(algorithm, "algorithm"):
|
||||
return algorithm
|
||||
|
||||
elif algorithm == "default":
|
||||
return get_hashers()[0]
|
||||
|
||||
else:
|
||||
hashers = get_hashers_by_algorithm()
|
||||
try:
|
||||
return hashers[algorithm]
|
||||
except KeyError:
|
||||
raise ValueError(
|
||||
"Unknown password hashing algorithm '%s'. "
|
||||
"Did you specify it in the PASSWORD_HASHERS "
|
||||
"setting?" % algorithm
|
||||
)
|
||||
|
||||
|
||||
def identify_hasher(encoded):
|
||||
"""
|
||||
Return an instance of a loaded password hasher.
|
||||
|
||||
Identify hasher algorithm by examining encoded hash, and call
|
||||
get_hasher() to return hasher. Raise ValueError if
|
||||
algorithm cannot be identified, or if hasher is not loaded.
|
||||
"""
|
||||
# Ancient versions of Django created plain MD5 passwords and accepted
|
||||
# MD5 passwords with an empty salt.
|
||||
if (len(encoded) == 32 and "$" not in encoded) or (
|
||||
len(encoded) == 37 and encoded.startswith("md5$$")
|
||||
):
|
||||
algorithm = "unsalted_md5"
|
||||
# Ancient versions of Django accepted SHA1 passwords with an empty salt.
|
||||
elif len(encoded) == 46 and encoded.startswith("sha1$$"):
|
||||
algorithm = "unsalted_sha1"
|
||||
else:
|
||||
algorithm = encoded.split("$", 1)[0]
|
||||
return get_hasher(algorithm)
|
||||
|
||||
|
||||
def mask_hash(hash, show=6, char="*"):
|
||||
"""
|
||||
Return the given hash, with only the first ``show`` number shown. The
|
||||
rest are masked with ``char`` for security reasons.
|
||||
"""
|
||||
masked = hash[:show]
|
||||
masked += char * len(hash[show:])
|
||||
return masked
|
||||
|
||||
|
||||
def must_update_salt(salt, expected_entropy):
|
||||
# Each character in the salt provides log_2(len(alphabet)) bits of entropy.
|
||||
return len(salt) * math.log2(len(RANDOM_STRING_CHARS)) < expected_entropy
|
||||
|
||||
|
||||
class BasePasswordHasher:
|
||||
"""
|
||||
Abstract base class for password hashers
|
||||
|
||||
When creating your own hasher, you need to override algorithm,
|
||||
verify(), encode() and safe_summary().
|
||||
|
||||
PasswordHasher objects are immutable.
|
||||
"""
|
||||
|
||||
algorithm = None
|
||||
library = None
|
||||
salt_entropy = 128
|
||||
|
||||
def _load_library(self):
|
||||
if self.library is not None:
|
||||
if isinstance(self.library, (tuple, list)):
|
||||
name, mod_path = self.library
|
||||
else:
|
||||
mod_path = self.library
|
||||
try:
|
||||
module = importlib.import_module(mod_path)
|
||||
except ImportError as e:
|
||||
raise ValueError(
|
||||
"Couldn't load %r algorithm library: %s"
|
||||
% (self.__class__.__name__, e)
|
||||
)
|
||||
return module
|
||||
raise ValueError(
|
||||
"Hasher %r doesn't specify a library attribute" % self.__class__.__name__
|
||||
)
|
||||
|
||||
def salt(self):
|
||||
"""
|
||||
Generate a cryptographically secure nonce salt in ASCII with an entropy
|
||||
of at least `salt_entropy` bits.
|
||||
"""
|
||||
# Each character in the salt provides
|
||||
# log_2(len(alphabet)) bits of entropy.
|
||||
char_count = math.ceil(self.salt_entropy / math.log2(len(RANDOM_STRING_CHARS)))
|
||||
return get_random_string(char_count, allowed_chars=RANDOM_STRING_CHARS)
|
||||
|
||||
def verify(self, password, encoded):
|
||||
"""Check if the given password is correct."""
|
||||
raise NotImplementedError(
|
||||
"subclasses of BasePasswordHasher must provide a verify() method"
|
||||
)
|
||||
|
||||
def _check_encode_args(self, password, salt):
|
||||
if password is None:
|
||||
raise TypeError("password must be provided.")
|
||||
if not salt or "$" in salt:
|
||||
raise ValueError("salt must be provided and cannot contain $.")
|
||||
|
||||
def encode(self, password, salt):
|
||||
"""
|
||||
Create an encoded database value.
|
||||
|
||||
The result is normally formatted as "algorithm$salt$hash" and
|
||||
must be fewer than 128 characters.
|
||||
"""
|
||||
raise NotImplementedError(
|
||||
"subclasses of BasePasswordHasher must provide an encode() method"
|
||||
)
|
||||
|
||||
def decode(self, encoded):
|
||||
"""
|
||||
Return a decoded database value.
|
||||
|
||||
The result is a dictionary and should contain `algorithm`, `hash`, and
|
||||
`salt`. Extra keys can be algorithm specific like `iterations` or
|
||||
`work_factor`.
|
||||
"""
|
||||
raise NotImplementedError(
|
||||
"subclasses of BasePasswordHasher must provide a decode() method."
|
||||
)
|
||||
|
||||
def safe_summary(self, encoded):
|
||||
"""
|
||||
Return a summary of safe values.
|
||||
|
||||
The result is a dictionary and will be used where the password field
|
||||
must be displayed to construct a safe representation of the password.
|
||||
"""
|
||||
raise NotImplementedError(
|
||||
"subclasses of BasePasswordHasher must provide a safe_summary() method"
|
||||
)
|
||||
|
||||
def must_update(self, encoded):
|
||||
return False
|
||||
|
||||
def harden_runtime(self, password, encoded):
|
||||
"""
|
||||
Bridge the runtime gap between the work factor supplied in `encoded`
|
||||
and the work factor suggested by this hasher.
|
||||
|
||||
Taking PBKDF2 as an example, if `encoded` contains 20000 iterations and
|
||||
`self.iterations` is 30000, this method should run password through
|
||||
another 10000 iterations of PBKDF2. Similar approaches should exist
|
||||
for any hasher that has a work factor. If not, this method should be
|
||||
defined as a no-op to silence the warning.
|
||||
"""
|
||||
warnings.warn(
|
||||
"subclasses of BasePasswordHasher should provide a harden_runtime() method"
|
||||
)
|
||||
|
||||
|
||||
class PBKDF2PasswordHasher(BasePasswordHasher):
|
||||
"""
|
||||
Secure password hashing using the PBKDF2 algorithm (recommended)
|
||||
|
||||
Configured to use PBKDF2 + HMAC + SHA256.
|
||||
The result is a 64 byte binary string. Iterations may be changed
|
||||
safely but you must rename the algorithm if you change SHA256.
|
||||
"""
|
||||
|
||||
algorithm = "pbkdf2_sha256"
|
||||
iterations = 600000
|
||||
digest = hashlib.sha256
|
||||
|
||||
def encode(self, password, salt, iterations=None):
|
||||
self._check_encode_args(password, salt)
|
||||
iterations = iterations or self.iterations
|
||||
hash = pbkdf2(password, salt, iterations, digest=self.digest)
|
||||
hash = base64.b64encode(hash).decode("ascii").strip()
|
||||
return "%s$%d$%s$%s" % (self.algorithm, iterations, salt, hash)
|
||||
|
||||
def decode(self, encoded):
|
||||
algorithm, iterations, salt, hash = encoded.split("$", 3)
|
||||
assert algorithm == self.algorithm
|
||||
return {
|
||||
"algorithm": algorithm,
|
||||
"hash": hash,
|
||||
"iterations": int(iterations),
|
||||
"salt": salt,
|
||||
}
|
||||
|
||||
def verify(self, password, encoded):
|
||||
decoded = self.decode(encoded)
|
||||
encoded_2 = self.encode(password, decoded["salt"], decoded["iterations"])
|
||||
return constant_time_compare(encoded, encoded_2)
|
||||
|
||||
def safe_summary(self, encoded):
|
||||
decoded = self.decode(encoded)
|
||||
return {
|
||||
_("algorithm"): decoded["algorithm"],
|
||||
_("iterations"): decoded["iterations"],
|
||||
_("salt"): mask_hash(decoded["salt"]),
|
||||
_("hash"): mask_hash(decoded["hash"]),
|
||||
}
|
||||
|
||||
def must_update(self, encoded):
|
||||
decoded = self.decode(encoded)
|
||||
update_salt = must_update_salt(decoded["salt"], self.salt_entropy)
|
||||
return (decoded["iterations"] != self.iterations) or update_salt
|
||||
|
||||
def harden_runtime(self, password, encoded):
|
||||
decoded = self.decode(encoded)
|
||||
extra_iterations = self.iterations - decoded["iterations"]
|
||||
if extra_iterations > 0:
|
||||
self.encode(password, decoded["salt"], extra_iterations)
|
||||
|
||||
|
||||
class PBKDF2SHA1PasswordHasher(PBKDF2PasswordHasher):
|
||||
"""
|
||||
Alternate PBKDF2 hasher which uses SHA1, the default PRF
|
||||
recommended by PKCS #5. This is compatible with other
|
||||
implementations of PBKDF2, such as openssl's
|
||||
PKCS5_PBKDF2_HMAC_SHA1().
|
||||
"""
|
||||
|
||||
algorithm = "pbkdf2_sha1"
|
||||
digest = hashlib.sha1
|
||||
|
||||
|
||||
class Argon2PasswordHasher(BasePasswordHasher):
|
||||
"""
|
||||
Secure password hashing using the argon2 algorithm.
|
||||
|
||||
This is the winner of the Password Hashing Competition 2013-2015
|
||||
(https://password-hashing.net). It requires the argon2-cffi library which
|
||||
depends on native C code and might cause portability issues.
|
||||
"""
|
||||
|
||||
algorithm = "argon2"
|
||||
library = "argon2"
|
||||
|
||||
time_cost = 2
|
||||
memory_cost = 102400
|
||||
parallelism = 8
|
||||
|
||||
def encode(self, password, salt):
|
||||
argon2 = self._load_library()
|
||||
params = self.params()
|
||||
data = argon2.low_level.hash_secret(
|
||||
password.encode(),
|
||||
salt.encode(),
|
||||
time_cost=params.time_cost,
|
||||
memory_cost=params.memory_cost,
|
||||
parallelism=params.parallelism,
|
||||
hash_len=params.hash_len,
|
||||
type=params.type,
|
||||
)
|
||||
return self.algorithm + data.decode("ascii")
|
||||
|
||||
def decode(self, encoded):
|
||||
argon2 = self._load_library()
|
||||
algorithm, rest = encoded.split("$", 1)
|
||||
assert algorithm == self.algorithm
|
||||
params = argon2.extract_parameters("$" + rest)
|
||||
variety, *_, b64salt, hash = rest.split("$")
|
||||
# Add padding.
|
||||
b64salt += "=" * (-len(b64salt) % 4)
|
||||
salt = base64.b64decode(b64salt).decode("latin1")
|
||||
return {
|
||||
"algorithm": algorithm,
|
||||
"hash": hash,
|
||||
"memory_cost": params.memory_cost,
|
||||
"parallelism": params.parallelism,
|
||||
"salt": salt,
|
||||
"time_cost": params.time_cost,
|
||||
"variety": variety,
|
||||
"version": params.version,
|
||||
"params": params,
|
||||
}
|
||||
|
||||
def verify(self, password, encoded):
|
||||
argon2 = self._load_library()
|
||||
algorithm, rest = encoded.split("$", 1)
|
||||
assert algorithm == self.algorithm
|
||||
try:
|
||||
return argon2.PasswordHasher().verify("$" + rest, password)
|
||||
except argon2.exceptions.VerificationError:
|
||||
return False
|
||||
|
||||
def safe_summary(self, encoded):
|
||||
decoded = self.decode(encoded)
|
||||
return {
|
||||
_("algorithm"): decoded["algorithm"],
|
||||
_("variety"): decoded["variety"],
|
||||
_("version"): decoded["version"],
|
||||
_("memory cost"): decoded["memory_cost"],
|
||||
_("time cost"): decoded["time_cost"],
|
||||
_("parallelism"): decoded["parallelism"],
|
||||
_("salt"): mask_hash(decoded["salt"]),
|
||||
_("hash"): mask_hash(decoded["hash"]),
|
||||
}
|
||||
|
||||
def must_update(self, encoded):
|
||||
decoded = self.decode(encoded)
|
||||
current_params = decoded["params"]
|
||||
new_params = self.params()
|
||||
# Set salt_len to the salt_len of the current parameters because salt
|
||||
# is explicitly passed to argon2.
|
||||
new_params.salt_len = current_params.salt_len
|
||||
update_salt = must_update_salt(decoded["salt"], self.salt_entropy)
|
||||
return (current_params != new_params) or update_salt
|
||||
|
||||
def harden_runtime(self, password, encoded):
|
||||
# The runtime for Argon2 is too complicated to implement a sensible
|
||||
# hardening algorithm.
|
||||
pass
|
||||
|
||||
def params(self):
|
||||
argon2 = self._load_library()
|
||||
# salt_len is a noop, because we provide our own salt.
|
||||
return argon2.Parameters(
|
||||
type=argon2.low_level.Type.ID,
|
||||
version=argon2.low_level.ARGON2_VERSION,
|
||||
salt_len=argon2.DEFAULT_RANDOM_SALT_LENGTH,
|
||||
hash_len=argon2.DEFAULT_HASH_LENGTH,
|
||||
time_cost=self.time_cost,
|
||||
memory_cost=self.memory_cost,
|
||||
parallelism=self.parallelism,
|
||||
)
|
||||
|
||||
|
||||
class BCryptSHA256PasswordHasher(BasePasswordHasher):
|
||||
"""
|
||||
Secure password hashing using the bcrypt algorithm (recommended)
|
||||
|
||||
This is considered by many to be the most secure algorithm but you
|
||||
must first install the bcrypt library. Please be warned that
|
||||
this library depends on native C code and might cause portability
|
||||
issues.
|
||||
"""
|
||||
|
||||
algorithm = "bcrypt_sha256"
|
||||
digest = hashlib.sha256
|
||||
library = ("bcrypt", "bcrypt")
|
||||
rounds = 12
|
||||
|
||||
def salt(self):
|
||||
bcrypt = self._load_library()
|
||||
return bcrypt.gensalt(self.rounds)
|
||||
|
||||
def encode(self, password, salt):
|
||||
bcrypt = self._load_library()
|
||||
password = password.encode()
|
||||
# Hash the password prior to using bcrypt to prevent password
|
||||
# truncation as described in #20138.
|
||||
if self.digest is not None:
|
||||
# Use binascii.hexlify() because a hex encoded bytestring is str.
|
||||
password = binascii.hexlify(self.digest(password).digest())
|
||||
|
||||
data = bcrypt.hashpw(password, salt)
|
||||
return "%s$%s" % (self.algorithm, data.decode("ascii"))
|
||||
|
||||
def decode(self, encoded):
|
||||
algorithm, empty, algostr, work_factor, data = encoded.split("$", 4)
|
||||
assert algorithm == self.algorithm
|
||||
return {
|
||||
"algorithm": algorithm,
|
||||
"algostr": algostr,
|
||||
"checksum": data[22:],
|
||||
"salt": data[:22],
|
||||
"work_factor": int(work_factor),
|
||||
}
|
||||
|
||||
def verify(self, password, encoded):
|
||||
algorithm, data = encoded.split("$", 1)
|
||||
assert algorithm == self.algorithm
|
||||
encoded_2 = self.encode(password, data.encode("ascii"))
|
||||
return constant_time_compare(encoded, encoded_2)
|
||||
|
||||
def safe_summary(self, encoded):
|
||||
decoded = self.decode(encoded)
|
||||
return {
|
||||
_("algorithm"): decoded["algorithm"],
|
||||
_("work factor"): decoded["work_factor"],
|
||||
_("salt"): mask_hash(decoded["salt"]),
|
||||
_("checksum"): mask_hash(decoded["checksum"]),
|
||||
}
|
||||
|
||||
def must_update(self, encoded):
|
||||
decoded = self.decode(encoded)
|
||||
return decoded["work_factor"] != self.rounds
|
||||
|
||||
def harden_runtime(self, password, encoded):
|
||||
_, data = encoded.split("$", 1)
|
||||
salt = data[:29] # Length of the salt in bcrypt.
|
||||
rounds = data.split("$")[2]
|
||||
# work factor is logarithmic, adding one doubles the load.
|
||||
diff = 2 ** (self.rounds - int(rounds)) - 1
|
||||
while diff > 0:
|
||||
self.encode(password, salt.encode("ascii"))
|
||||
diff -= 1
|
||||
|
||||
|
||||
class BCryptPasswordHasher(BCryptSHA256PasswordHasher):
|
||||
"""
|
||||
Secure password hashing using the bcrypt algorithm
|
||||
|
||||
This is considered by many to be the most secure algorithm but you
|
||||
must first install the bcrypt library. Please be warned that
|
||||
this library depends on native C code and might cause portability
|
||||
issues.
|
||||
|
||||
This hasher does not first hash the password which means it is subject to
|
||||
bcrypt's 72 bytes password truncation. Most use cases should prefer the
|
||||
BCryptSHA256PasswordHasher.
|
||||
"""
|
||||
|
||||
algorithm = "bcrypt"
|
||||
digest = None
|
||||
|
||||
|
||||
class ScryptPasswordHasher(BasePasswordHasher):
|
||||
"""
|
||||
Secure password hashing using the Scrypt algorithm.
|
||||
"""
|
||||
|
||||
algorithm = "scrypt"
|
||||
block_size = 8
|
||||
maxmem = 0
|
||||
parallelism = 1
|
||||
work_factor = 2**14
|
||||
|
||||
def encode(self, password, salt, n=None, r=None, p=None):
|
||||
self._check_encode_args(password, salt)
|
||||
n = n or self.work_factor
|
||||
r = r or self.block_size
|
||||
p = p or self.parallelism
|
||||
hash_ = hashlib.scrypt(
|
||||
password.encode(),
|
||||
salt=salt.encode(),
|
||||
n=n,
|
||||
r=r,
|
||||
p=p,
|
||||
maxmem=self.maxmem,
|
||||
dklen=64,
|
||||
)
|
||||
hash_ = base64.b64encode(hash_).decode("ascii").strip()
|
||||
return "%s$%d$%s$%d$%d$%s" % (self.algorithm, n, salt, r, p, hash_)
|
||||
|
||||
def decode(self, encoded):
|
||||
algorithm, work_factor, salt, block_size, parallelism, hash_ = encoded.split(
|
||||
"$", 6
|
||||
)
|
||||
assert algorithm == self.algorithm
|
||||
return {
|
||||
"algorithm": algorithm,
|
||||
"work_factor": int(work_factor),
|
||||
"salt": salt,
|
||||
"block_size": int(block_size),
|
||||
"parallelism": int(parallelism),
|
||||
"hash": hash_,
|
||||
}
|
||||
|
||||
def verify(self, password, encoded):
|
||||
decoded = self.decode(encoded)
|
||||
encoded_2 = self.encode(
|
||||
password,
|
||||
decoded["salt"],
|
||||
decoded["work_factor"],
|
||||
decoded["block_size"],
|
||||
decoded["parallelism"],
|
||||
)
|
||||
return constant_time_compare(encoded, encoded_2)
|
||||
|
||||
def safe_summary(self, encoded):
|
||||
decoded = self.decode(encoded)
|
||||
return {
|
||||
_("algorithm"): decoded["algorithm"],
|
||||
_("work factor"): decoded["work_factor"],
|
||||
_("block size"): decoded["block_size"],
|
||||
_("parallelism"): decoded["parallelism"],
|
||||
_("salt"): mask_hash(decoded["salt"]),
|
||||
_("hash"): mask_hash(decoded["hash"]),
|
||||
}
|
||||
|
||||
def must_update(self, encoded):
|
||||
decoded = self.decode(encoded)
|
||||
return (
|
||||
decoded["work_factor"] != self.work_factor
|
||||
or decoded["block_size"] != self.block_size
|
||||
or decoded["parallelism"] != self.parallelism
|
||||
)
|
||||
|
||||
def harden_runtime(self, password, encoded):
|
||||
# The runtime for Scrypt is too complicated to implement a sensible
|
||||
# hardening algorithm.
|
||||
pass
|
||||
|
||||
|
||||
# RemovedInDjango51Warning.
|
||||
class SHA1PasswordHasher(BasePasswordHasher):
|
||||
"""
|
||||
The SHA1 password hashing algorithm (not recommended)
|
||||
"""
|
||||
|
||||
algorithm = "sha1"
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
warnings.warn(
|
||||
"django.contrib.auth.hashers.SHA1PasswordHasher is deprecated.",
|
||||
RemovedInDjango51Warning,
|
||||
stacklevel=2,
|
||||
)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
def encode(self, password, salt):
|
||||
self._check_encode_args(password, salt)
|
||||
hash = hashlib.sha1((salt + password).encode()).hexdigest()
|
||||
return "%s$%s$%s" % (self.algorithm, salt, hash)
|
||||
|
||||
def decode(self, encoded):
|
||||
algorithm, salt, hash = encoded.split("$", 2)
|
||||
assert algorithm == self.algorithm
|
||||
return {
|
||||
"algorithm": algorithm,
|
||||
"hash": hash,
|
||||
"salt": salt,
|
||||
}
|
||||
|
||||
def verify(self, password, encoded):
|
||||
decoded = self.decode(encoded)
|
||||
encoded_2 = self.encode(password, decoded["salt"])
|
||||
return constant_time_compare(encoded, encoded_2)
|
||||
|
||||
def safe_summary(self, encoded):
|
||||
decoded = self.decode(encoded)
|
||||
return {
|
||||
_("algorithm"): decoded["algorithm"],
|
||||
_("salt"): mask_hash(decoded["salt"], show=2),
|
||||
_("hash"): mask_hash(decoded["hash"]),
|
||||
}
|
||||
|
||||
def must_update(self, encoded):
|
||||
decoded = self.decode(encoded)
|
||||
return must_update_salt(decoded["salt"], self.salt_entropy)
|
||||
|
||||
def harden_runtime(self, password, encoded):
|
||||
pass
|
||||
|
||||
|
||||
class MD5PasswordHasher(BasePasswordHasher):
|
||||
"""
|
||||
The Salted MD5 password hashing algorithm (not recommended)
|
||||
"""
|
||||
|
||||
algorithm = "md5"
|
||||
|
||||
def encode(self, password, salt):
|
||||
self._check_encode_args(password, salt)
|
||||
hash = md5((salt + password).encode()).hexdigest()
|
||||
return "%s$%s$%s" % (self.algorithm, salt, hash)
|
||||
|
||||
def decode(self, encoded):
|
||||
algorithm, salt, hash = encoded.split("$", 2)
|
||||
assert algorithm == self.algorithm
|
||||
return {
|
||||
"algorithm": algorithm,
|
||||
"hash": hash,
|
||||
"salt": salt,
|
||||
}
|
||||
|
||||
def verify(self, password, encoded):
|
||||
decoded = self.decode(encoded)
|
||||
encoded_2 = self.encode(password, decoded["salt"])
|
||||
return constant_time_compare(encoded, encoded_2)
|
||||
|
||||
def safe_summary(self, encoded):
|
||||
decoded = self.decode(encoded)
|
||||
return {
|
||||
_("algorithm"): decoded["algorithm"],
|
||||
_("salt"): mask_hash(decoded["salt"], show=2),
|
||||
_("hash"): mask_hash(decoded["hash"]),
|
||||
}
|
||||
|
||||
def must_update(self, encoded):
|
||||
decoded = self.decode(encoded)
|
||||
return must_update_salt(decoded["salt"], self.salt_entropy)
|
||||
|
||||
def harden_runtime(self, password, encoded):
|
||||
pass
|
||||
|
||||
|
||||
# RemovedInDjango51Warning.
|
||||
class UnsaltedSHA1PasswordHasher(BasePasswordHasher):
|
||||
"""
|
||||
Very insecure algorithm that you should *never* use; store SHA1 hashes
|
||||
with an empty salt.
|
||||
|
||||
This class is implemented because Django used to accept such password
|
||||
hashes. Some older Django installs still have these values lingering
|
||||
around so we need to handle and upgrade them properly.
|
||||
"""
|
||||
|
||||
algorithm = "unsalted_sha1"
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
warnings.warn(
|
||||
"django.contrib.auth.hashers.UnsaltedSHA1PasswordHasher is deprecated.",
|
||||
RemovedInDjango51Warning,
|
||||
stacklevel=2,
|
||||
)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
def salt(self):
|
||||
return ""
|
||||
|
||||
def encode(self, password, salt):
|
||||
if salt != "":
|
||||
raise ValueError("salt must be empty.")
|
||||
hash = hashlib.sha1(password.encode()).hexdigest()
|
||||
return "sha1$$%s" % hash
|
||||
|
||||
def decode(self, encoded):
|
||||
assert encoded.startswith("sha1$$")
|
||||
return {
|
||||
"algorithm": self.algorithm,
|
||||
"hash": encoded[6:],
|
||||
"salt": None,
|
||||
}
|
||||
|
||||
def verify(self, password, encoded):
|
||||
encoded_2 = self.encode(password, "")
|
||||
return constant_time_compare(encoded, encoded_2)
|
||||
|
||||
def safe_summary(self, encoded):
|
||||
decoded = self.decode(encoded)
|
||||
return {
|
||||
_("algorithm"): decoded["algorithm"],
|
||||
_("hash"): mask_hash(decoded["hash"]),
|
||||
}
|
||||
|
||||
def harden_runtime(self, password, encoded):
|
||||
pass
|
||||
|
||||
|
||||
# RemovedInDjango51Warning.
|
||||
class UnsaltedMD5PasswordHasher(BasePasswordHasher):
|
||||
"""
|
||||
Incredibly insecure algorithm that you should *never* use; stores unsalted
|
||||
MD5 hashes without the algorithm prefix, also accepts MD5 hashes with an
|
||||
empty salt.
|
||||
|
||||
This class is implemented because Django used to store passwords this way
|
||||
and to accept such password hashes. Some older Django installs still have
|
||||
these values lingering around so we need to handle and upgrade them
|
||||
properly.
|
||||
"""
|
||||
|
||||
algorithm = "unsalted_md5"
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
warnings.warn(
|
||||
"django.contrib.auth.hashers.UnsaltedMD5PasswordHasher is deprecated.",
|
||||
RemovedInDjango51Warning,
|
||||
stacklevel=2,
|
||||
)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
def salt(self):
|
||||
return ""
|
||||
|
||||
def encode(self, password, salt):
|
||||
if salt != "":
|
||||
raise ValueError("salt must be empty.")
|
||||
return md5(password.encode()).hexdigest()
|
||||
|
||||
def decode(self, encoded):
|
||||
return {
|
||||
"algorithm": self.algorithm,
|
||||
"hash": encoded,
|
||||
"salt": None,
|
||||
}
|
||||
|
||||
def verify(self, password, encoded):
|
||||
if len(encoded) == 37 and encoded.startswith("md5$$"):
|
||||
encoded = encoded[5:]
|
||||
encoded_2 = self.encode(password, "")
|
||||
return constant_time_compare(encoded, encoded_2)
|
||||
|
||||
def safe_summary(self, encoded):
|
||||
decoded = self.decode(encoded)
|
||||
return {
|
||||
_("algorithm"): decoded["algorithm"],
|
||||
_("hash"): mask_hash(decoded["hash"], show=3),
|
||||
}
|
||||
|
||||
def harden_runtime(self, password, encoded):
|
||||
pass
|
||||
|
||||
|
||||
# RemovedInDjango50Warning.
|
||||
class CryptPasswordHasher(BasePasswordHasher):
|
||||
"""
|
||||
Password hashing using UNIX crypt (not recommended)
|
||||
|
||||
The crypt module is not supported on all platforms.
|
||||
"""
|
||||
|
||||
algorithm = "crypt"
|
||||
library = "crypt"
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
warnings.warn(
|
||||
"django.contrib.auth.hashers.CryptPasswordHasher is deprecated.",
|
||||
RemovedInDjango50Warning,
|
||||
stacklevel=2,
|
||||
)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
def salt(self):
|
||||
return get_random_string(2)
|
||||
|
||||
def encode(self, password, salt):
|
||||
crypt = self._load_library()
|
||||
if len(salt) != 2:
|
||||
raise ValueError("salt must be of length 2.")
|
||||
hash = crypt.crypt(password, salt)
|
||||
if hash is None: # A platform like OpenBSD with a dummy crypt module.
|
||||
raise TypeError("hash must be provided.")
|
||||
# we don't need to store the salt, but Django used to do this
|
||||
return "%s$%s$%s" % (self.algorithm, "", hash)
|
||||
|
||||
def decode(self, encoded):
|
||||
algorithm, salt, hash = encoded.split("$", 2)
|
||||
assert algorithm == self.algorithm
|
||||
return {
|
||||
"algorithm": algorithm,
|
||||
"hash": hash,
|
||||
"salt": salt,
|
||||
}
|
||||
|
||||
def verify(self, password, encoded):
|
||||
crypt = self._load_library()
|
||||
decoded = self.decode(encoded)
|
||||
data = crypt.crypt(password, decoded["hash"])
|
||||
return constant_time_compare(decoded["hash"], data)
|
||||
|
||||
def safe_summary(self, encoded):
|
||||
decoded = self.decode(encoded)
|
||||
return {
|
||||
_("algorithm"): decoded["algorithm"],
|
||||
_("salt"): decoded["salt"],
|
||||
_("hash"): mask_hash(decoded["hash"], show=3),
|
||||
}
|
||||
|
||||
def harden_runtime(self, password, encoded):
|
||||
pass
|
Binary file not shown.
@ -0,0 +1,304 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# F Wolff <friedel@translate.org.za>, 2019-2020
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-09-08 17:27+0200\n"
|
||||
"PO-Revision-Date: 2020-07-20 17:08+0000\n"
|
||||
"Last-Translator: F Wolff <friedel@translate.org.za>\n"
|
||||
"Language-Team: Afrikaans (http://www.transifex.com/django/django/language/"
|
||||
"af/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: af\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Persoonlike inligting"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Toestemmings"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Belangrike datums"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "%(name)s-objek met primêre sleutel %(key)r bestaan nie."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Wagwoord is suksesvol verander."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Verander wagwoord: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "Waarmerking en magtiging"
|
||||
|
||||
msgid "password"
|
||||
msgstr "wagwoord"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "laas aangemeld"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "Geen wagwoord gestel nie."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "Ongeldige wagwoordformaat of onbekende hutsalgoritme."
|
||||
|
||||
msgid "The two password fields didn’t match."
|
||||
msgstr "Die twee wagwoordvelde stem nie ooreen nie"
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Wagwoord"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Wagwoordbevestiging"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "Tik die wagwoord net soos tevore om te bevestig."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
"Rou wagwoorde word nie gestoor nie, dus is daar geen manier om die gebruiker "
|
||||
"se wagwoord te sien nie, maar die wagwoord kan gewysig word met <a href="
|
||||
"\"{}\">hierdie vorm</a>."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"Tik asb. 'n korrekte %(username)s en wagwoord. Neem kennis dat altwee velde "
|
||||
"moontlik kassensitief is."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "Dié rekening is nie aktief nie."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "E-pos"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Nuwe wagwoord"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Bevestiging van nuwe wagwoord"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr "Die ou wagwoord is verkeerd ingetik. Tik dit asb. weer in."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Ou wagwoord"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Wagwoord (weer)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "algoritme"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "iterasies"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "sout"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "hutswaarde"
|
||||
|
||||
msgid "variety"
|
||||
msgstr "variëteit"
|
||||
|
||||
msgid "version"
|
||||
msgstr "weergawe"
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr "geheuekoste"
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "tydkoste"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr "parallelisme"
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "werkfaktor"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "kontrolesom"
|
||||
|
||||
msgid "name"
|
||||
msgstr "naam"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "inhoudtipe"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "kodenaam"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "toestemming"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "toestemmings"
|
||||
|
||||
msgid "group"
|
||||
msgstr "groep"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "groepe"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "supergebruikerstatus"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"Dui aan dat die gebruiker alle toestemmings het sonder om hulle eksplisiet "
|
||||
"toe te ken."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"Die groepe waaraan die gebruiker behoort. ’n Gebruiker sal alle toestemmings "
|
||||
"hê wat aan elkeen van sy groepe gegee is."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "gebruikertoestemmings"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "Spesifieke toestemmings vir dié gebruiker."
|
||||
|
||||
msgid "username"
|
||||
msgstr "gebruikernaam"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr ""
|
||||
"Vereis. Hoogstens 150 karakters. Slegs: letters, syfers en die karakters @/./"
|
||||
"+/-/_"
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "’n Gebruiker met daardie gebruikernaam bestaan reeds."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "naam"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "van"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "e-posadres"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "personeelstatus"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "Dui aan of die gebruiker by dié adminwerf kan aanmeld."
|
||||
|
||||
msgid "active"
|
||||
msgstr "aktief"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Dui aan of dié gebruiker as aktief gesien moet word. Neem merkie weg in "
|
||||
"plaas van om rekeninge te skrap."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "datum aangesluit"
|
||||
|
||||
msgid "user"
|
||||
msgstr "gebruiker"
|
||||
|
||||
msgid "users"
|
||||
msgstr "gebruikers"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
"Dié wagwoord is te kort. Dit moet ten minste %(min_length)d karakter bevat."
|
||||
msgstr[1] ""
|
||||
"Dié wagwoord is te kort. Dit moet ten minste %(min_length)d karakters bevat."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] "’n Wagwoord moet ten minste %(min_length)d karakter bevat."
|
||||
msgstr[1] "’n Wagwoord moet ten minste %(min_length)d karakters bevat."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "Die wagwoord is te soortgelyk aan die %(verbose_name)s."
|
||||
|
||||
msgid "Your password can’t be too similar to your other personal information."
|
||||
msgstr ""
|
||||
"Die wagwoord mag nie soortgelyk wees aan u ander persoonlike inligting nie."
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "Dié wagwoord is te algemeen."
|
||||
|
||||
msgid "Your password can’t be a commonly used password."
|
||||
msgstr "U wagwoord mag nie ’n algemeen gebruikte wagwoord wees nie."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "Dié wagwoord is heeltemal numeries."
|
||||
|
||||
msgid "Your password can’t be entirely numeric."
|
||||
msgstr "Die wagwoord mag nie geheel numeries wees nie."
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "Wagwoordherstel op %(site_name)s"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Tik 'n geldige gebruikernaam. Dié waarde mag slegs alfabetletters, syfers en "
|
||||
"die karakters @/./+/-/_ bevat."
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Tik 'n geldige gebruikernaam. Dié waarde mag slegs letters, syfers en die "
|
||||
"karakters @/./+/-/_ bevat."
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Afgemeld"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "Wagwoordherstel"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "Wagwoordherstel gestuur"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "Tik nuwe wagwoord"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "Herstel van wagwoord onsuksesvol"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "Herstel van wagwoord is voltooi"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "Wagwoordverandering"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "Verandering van wagwoord was suksesvol"
|
Binary file not shown.
@ -0,0 +1,319 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Ahmad Khayyat <akhayyat@gmail.com>, 2013,2021
|
||||
# Bashar Al-Abdulhadi, 2015-2016,2021
|
||||
# Bashar Al-Abdulhadi, 2014
|
||||
# Eyad Toma <d.eyad.t@gmail.com>, 2013
|
||||
# Jannis Leidel <jannis@leidel.info>, 2011
|
||||
# Omar Lajam, 2020
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-09-21 10:22+0200\n"
|
||||
"PO-Revision-Date: 2021-10-15 21:38+0000\n"
|
||||
"Last-Translator: Bashar Al-Abdulhadi\n"
|
||||
"Language-Team: Arabic (http://www.transifex.com/django/django/language/ar/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ar\n"
|
||||
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
|
||||
"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "المعلومات الشخصية"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "الصلاحيات"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "تواريخ مهمة"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "العنصر من نوع %(name)s ذو الحقل الأساسي %(key)r غير موجود."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "تم تغيير كلمة المرور بنجاح."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "غيّر كلمة المرور: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "المصادقة والتفويض"
|
||||
|
||||
msgid "password"
|
||||
msgstr "كلمة المرور"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "آخر دخول"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "لم يتم تعيين كلمة المرور."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr ""
|
||||
"صيغة كلمة المرور غير صحيحة أو أن خوارزمية البعثرة (hashing) غير معروفة."
|
||||
|
||||
msgid "The two password fields didn’t match."
|
||||
msgstr "حقلا كلمة المرور غير متطابقين."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "كلمة المرور"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "تأكيد كلمة المرور"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "أدخل كلمة المرور أعلاه مرة أخرى لتأكيدها."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
"لا يتم حفظ كلمات المرور بصورتها الأصلية، لذلك لا يمكنك عرض كلمة مرور هذا "
|
||||
"المستخدم، لكن يمكنك تغييرها باستخدام <a href=\"{}\">هذا النموذج</a>"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr "الرجاء إدخال %(username)s وكلمة السر الصحيحين."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "هذا الحساب غير نشط."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "بريد إلكتروني"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "كلمة المرور الجديدة"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "تأكيد كلمة المرور الجديدة"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr "كلمة مرورك القديمة غير صحيحة. رجاءً أدخلها مرة أخرى."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "كلمة المرور القديمة"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "كلمة المرور (مجدداً)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "خوارزمية"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "التكرارات"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "salt"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "hash"
|
||||
|
||||
msgid "variety"
|
||||
msgstr "منوّع"
|
||||
|
||||
msgid "version"
|
||||
msgstr "إصدار"
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr "استهلاك الذاكرة"
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "المدة المطلوبة"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr "التوازي"
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "عامل العمل"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "تدقيق المجموع"
|
||||
|
||||
msgid "block size"
|
||||
msgstr "مقاس الكتله (البلوك)"
|
||||
|
||||
msgid "name"
|
||||
msgstr "الاسم"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "نوع المحتوى"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "الاسم الرمزي"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "الصلاحية"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "الصلاحيات"
|
||||
|
||||
msgid "group"
|
||||
msgstr "مجموعة"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "المجموعات"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "حالة المستخدم الفائق"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"يقضي بأن هذا المستخدم يمتلك كافة الصلاحيات دون الحاجة لمنحها له تصريحاً."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"المجموعات التي ينتمي إليها هذا المستخدم. يحصل المستخدم على كافة الصلاحيات "
|
||||
"الممنوحة لكل مجموعة ينتمي إليها."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "صلاحيات المستخدم"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "صلاحيات خاصة بهذا المستخدم."
|
||||
|
||||
msgid "username"
|
||||
msgstr "اسم المستخدم"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr "مطلوب. 150 رمزاً أو أقل، مكونة من حروف وأرقام و @/./+/-/_ فقط"
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "هناك مستخدم موجود مسبقاً بهذا الاسم."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "الاسم الأول"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "الاسم الأخير"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "عنوان بريد إلكتروني"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "حالة الطاقم"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "يحدد ما إذا كان يمكن للمستخدم الدخول إلى موقع الإدارة هذا."
|
||||
|
||||
msgid "active"
|
||||
msgstr "نشط"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"يحدد ما إذا كان المستخدم سيُعامل على أنّه نشط. أزل تحديد هذا الحقل بدلاً من حذف "
|
||||
"الحسابات."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "تاريخ الانضمام"
|
||||
|
||||
msgid "user"
|
||||
msgstr "مستخدم"
|
||||
|
||||
msgid "users"
|
||||
msgstr "المستخدمون"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
"كلمة المرور هذه قصيرة جدا. يجب أن تتكون من %(min_length)d حرف على الأقل."
|
||||
msgstr[1] ""
|
||||
"كلمة المرور هذه قصيرة جدا. يجب أن تتكون من %(min_length)d حرف واحد على الأقل."
|
||||
msgstr[2] ""
|
||||
"كلمة المرور هذه قصيرة جدا. يجب أن تتكون من %(min_length)d حرفين على الأقل."
|
||||
msgstr[3] ""
|
||||
"كلمة المرور هذه قصيرة جدا. يجب أن تتكون من %(min_length)d حروف على الأقل."
|
||||
msgstr[4] ""
|
||||
"كلمة المرور هذه قصيرة جدا. يجب أن تتكون من %(min_length)d حرف على الأقل."
|
||||
msgstr[5] ""
|
||||
"كلمة المرور هذه قصيرة جداً. يجب أن تتكون من %(min_length)d رمزاً على الأقل."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] "كلمة المرور الخاصة بك يجب أن تتضمن %(min_length)d حرف على الأقل."
|
||||
msgstr[1] ""
|
||||
"كلمة المرور الخاصة بك يجب أن تتضمن %(min_length)d حرف واحد على الأقل."
|
||||
msgstr[2] "كلمة المرور الخاصة بك يجب أن تتضمن %(min_length)d حرفين على الأقل."
|
||||
msgstr[3] "كلمة المرور الخاصة بك يجب أن تتضمن %(min_length)d حروف على الأقل."
|
||||
msgstr[4] "كلمة المرور الخاصة بك يجب أن تتضمن %(min_length)d أحرف على الأقل."
|
||||
msgstr[5] "يجب أن تتكون كلمة المرور من %(min_length)d رمزاً على الأقل."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "كلمة المرور مشابهة جداً لـ %(verbose_name)s."
|
||||
|
||||
msgid "Your password can’t be too similar to your other personal information."
|
||||
msgstr "لا يمكن لكلمة المرور أن تكون مشابهة للمعلومات الشخصية الأخرى."
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "كلمة المرور هذه شائعة جداً."
|
||||
|
||||
msgid "Your password can’t be a commonly used password."
|
||||
msgstr "لا يمكن أن تكون كلمة المرور شائعة الاستخدام."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "كلمة المرور هذه تتكون من أرقام فقط."
|
||||
|
||||
msgid "Your password can’t be entirely numeric."
|
||||
msgstr "لا يمكن أن تكون كلمة المرور مكونة من أرقام فقط."
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "إعادة تعيين كلمة المرور على %(site_name)s"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"أدخل اسم مستخدم صحيحاً. يمكن أن يتكون اسم المستخدم من أحرف إنجليزية وأرقام و "
|
||||
"الرموز @/./+/-/_ فقط."
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"أدخل اسم مستخدم صحيحاً. يمكن أن يتكون اسم المستخدم من حروف وأرقام و الرموز "
|
||||
"@/./+/-/_ فقط."
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "تم الخروج"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "إعادة ضبط كلمة المرور"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr " تم ارسال إعادة ضبط كلمة المرور"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "أدخل كلمة المرور الجديدة"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "فشل عملية إعادة تعيين كلمة المرور"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "تمت إعادة ضبط كلمة المرور"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "تغيير كلمة المرور"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "تم تغيير كلمة المرور بنجاح"
|
Binary file not shown.
@ -0,0 +1,320 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Jihad Bahmaid Al-Halki, 2022
|
||||
# Riterix <infosrabah@gmail.com>, 2019
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-09-21 10:22+0200\n"
|
||||
"PO-Revision-Date: 2022-07-25 08:09+0000\n"
|
||||
"Last-Translator: Jihad Bahmaid Al-Halki\n"
|
||||
"Language-Team: Arabic (Algeria) (http://www.transifex.com/django/django/"
|
||||
"language/ar_DZ/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ar_DZ\n"
|
||||
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
|
||||
"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "المعلومات الشخصية"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "الصلاحيات"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "تواريخ مهمة"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "العنصر %(name)s الذي به الحقل الأساسي %(key)r غير موجود."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "تم تغيير كلمة المرور بنجاح."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "غيّر كلمة المرور: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "المصادقة والتخويل"
|
||||
|
||||
msgid "password"
|
||||
msgstr "كلمة المرور"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "آخر دخول"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "لا يوجد كلمة سر حتى الآن."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "تنسيق كلمة المرور غير صالح أو خوارزمية التجزئة غير معروفة."
|
||||
|
||||
msgid "The two password fields didn’t match."
|
||||
msgstr "حقلا كلمتي المرور غير متطابقين."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "كلمة المرور"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "تأكيد كلمة المرور"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "أدخل كلمة المرور أعلاه مرة أخرى لتأكيدها."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
"لا يتم تخزين كلمات المرور الخام ، لذلك لا توجد طريقة لرؤية كلمة مرور هذا "
|
||||
"المستخدم ، ولكن يمكنك تغيير كلمة المرور باستخدام <a href=\\\"{}\\\">هذا "
|
||||
"النموذج</a>."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"الرجاء إدخال %(username)s وكلمة المرور الصحيحين. لاحظ أن كلا الحقلين قد يكون "
|
||||
"حساسًا لحالة الأحرف."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "هذا الحساب غير نشط."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "بريد إلكتروني"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "كلمة المرور الجديدة"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "تأكيد كلمة المرور الجديدة"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr "كلمة مرورك القديمة غير صحيحة. رجاءً أدخلها مرة أخرى."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "كلمة المرور القديمة"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "كلمة المرور (مجدداً)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "خوارزمية"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "التكرارات"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "salt"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "hash"
|
||||
|
||||
msgid "variety"
|
||||
msgstr "تنوع"
|
||||
|
||||
msgid "version"
|
||||
msgstr "إصدار"
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr "تكلفة الذاكرة"
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "تكلفة الوقت"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr "تواز"
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "عامل العمل"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "تدقيق المجموع"
|
||||
|
||||
msgid "block size"
|
||||
msgstr "حجم البلوك (Block)"
|
||||
|
||||
msgid "name"
|
||||
msgstr "الاسم"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "نوع المحتوى"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "الاسم الرمزي"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "الصلاحية"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "الصلاحيات"
|
||||
|
||||
msgid "group"
|
||||
msgstr "مجموعة"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "المجموعات"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "حالة المستخدم الخارق"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"حدد بأن هذا المستخدم يمتلك كافة الصلاحيات دون الحاجة لتحديدها له تصريحا."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"المجموعات التي ينتمي إليها هذا المستخدم. ويمكن للمستخدم الحصول على كافة "
|
||||
"الأذونات الممنوحة لكل من مجموعاتهم."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "صلاحيات المستخدم"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "صلاحيات خاصة لهذا المستخدم."
|
||||
|
||||
msgid "username"
|
||||
msgstr "اسم المستخدم"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr "مطلوب. 150 حرف أو أقل. الحروف والأرقام و @ /. / + / - / _ فقط."
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "هناك مستخدم موجود مسبقاً بهذا الاسم."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "الاسم الأول"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "الاسم الأخير"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "عنوان بريد إلكتروني"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "حالة الطاقم"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "يحدد ما إذا كان المستخدم يستطيع الدخول إلى موقع الإدارة هذا."
|
||||
|
||||
msgid "active"
|
||||
msgstr "نشط"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"يحدد ما إذا كان المستخدم سيُعامل على أنّه نشط. أزل تحديد ها الخيار بدلاً من حذف "
|
||||
"الحسابات."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "تاريخ الانضمام"
|
||||
|
||||
msgid "user"
|
||||
msgstr "مستخدم"
|
||||
|
||||
msgid "users"
|
||||
msgstr "المستخدمين"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
"كلمة المرور هذه قصيرة جدا. يجب أن تتكون من %(min_length)d حرف على الأقل."
|
||||
msgstr[1] ""
|
||||
"كلمة المرور هذه قصيرة جدا. يجب أن تتكون من %(min_length)d حرف واحد على الأقل."
|
||||
msgstr[2] ""
|
||||
"كلمة المرور هذه قصيرة جدا. يجب أن تتكون من %(min_length)d حرفين على الأقل."
|
||||
msgstr[3] ""
|
||||
"كلمة المرور هذه قصيرة جدا. يجب أن تتكون من %(min_length)d حروف على الأقل."
|
||||
msgstr[4] ""
|
||||
"كلمة المرور هذه قصيرة جدا. يجب أن تتكون من %(min_length)d حرف على الأقل."
|
||||
msgstr[5] ""
|
||||
"كلمة المرور هذه قصيرة جدا. يجب أن تتكون من %(min_length)d حرف على الأقل."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] "كلمة المرور الخاصة بك يجب أن تتضمن %(min_length)d حرف على الأقل."
|
||||
msgstr[1] ""
|
||||
"كلمة المرور الخاصة بك يجب أن تتضمن %(min_length)d حرف واحد على الأقل."
|
||||
msgstr[2] "كلمة المرور الخاصة بك يجب أن تتضمن %(min_length)d حرفين على الأقل."
|
||||
msgstr[3] "كلمة المرور الخاصة بك يجب أن تتضمن %(min_length)d حروف على الأقل."
|
||||
msgstr[4] "كلمة المرور الخاصة بك يجب أن تتضمن %(min_length)d أحرف على الأقل."
|
||||
msgstr[5] "كلمة المرور الخاصة بك يجب أن تتضمن %(min_length)d حرف على الأقل."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "كلمة المرور هذه مشابة جدا لـ %(verbose_name)s."
|
||||
|
||||
msgid "Your password can’t be too similar to your other personal information."
|
||||
msgstr ""
|
||||
"كلمة المرور الخاصة بكم لا يمكن أن تكون مشابة لأي من المعلومات الشخصية الأخرى "
|
||||
"الخاصة بك."
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "كلمة المرور هذه شائعة جدا."
|
||||
|
||||
msgid "Your password can’t be a commonly used password."
|
||||
msgstr "كلمة المرور الخاصة بك لا يمكن أن تكون كلمة مرور مستخدمة بشكل شائع."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "كلمة المرور هذه تتكون من أرقام فقط."
|
||||
|
||||
msgid "Your password can’t be entirely numeric."
|
||||
msgstr "كلمة المرور الخاصة بك لا يمكن أن تكون أرقام فقط."
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "إعادة تعيين كلمة المرور على %(site_name)s"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"أدخل اسم مستخدم صالح. قد تحتوي هذه القيمة على الأحرف الإنجليزية والأرقام "
|
||||
"والأحرف @ /. / + / - / _."
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"أدخل اسم مستخدم صالح. قد تحتوي هذه القيمة على الأحرف والأرقام والأحرف @ /. / "
|
||||
"+ / - / _."
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "تم الخروج"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "إعادة ضبط كلمة المرور"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "إعادة ضبط كلمة المرور تم ارسالها"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "أدخل كلمة المرور الجديدة"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "فشل عملية إعادة تعيين كلمة المرور"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "تم إعادة ضبط كلمة المرور بنجاح"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "تغيير كلمة المرور"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "تم تغيير كلمة المرور بنجاح"
|
Binary file not shown.
@ -0,0 +1,284 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Ḷḷumex03 <tornes@opmbx.org>, 2014
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-24 13:46+0200\n"
|
||||
"PO-Revision-Date: 2017-09-24 14:24+0000\n"
|
||||
"Last-Translator: Jannis Leidel <jannis@leidel.info>\n"
|
||||
"Language-Team: Asturian (http://www.transifex.com/django/django/language/"
|
||||
"ast/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ast\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Información personal"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Permisos"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Dates importantes"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr ""
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Contraseña camudada con ésitu."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Camudar contraseña: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr ""
|
||||
|
||||
msgid "password"
|
||||
msgstr "contraseña"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "aniciu de sesión caberu"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "Nun s'afitó la contraseña."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "Formatu de contraseña inválidu o algoritmu hash inválidu."
|
||||
|
||||
msgid "The two password fields didn't match."
|
||||
msgstr "Nun concasen los dos campos de contraseña."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Contraseña"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Confirmación de contraseña"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user's "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "Esta cuenta ta inactiva"
|
||||
|
||||
msgid "Email"
|
||||
msgstr "Corréu"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Contraseña nueva"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr ""
|
||||
|
||||
msgid "Old password"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr ""
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "algoritmu"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr ""
|
||||
|
||||
msgid "salt"
|
||||
msgstr ""
|
||||
|
||||
msgid "hash"
|
||||
msgstr ""
|
||||
|
||||
msgid "variety"
|
||||
msgstr ""
|
||||
|
||||
msgid "version"
|
||||
msgstr ""
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr ""
|
||||
|
||||
msgid "time cost"
|
||||
msgstr ""
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr ""
|
||||
|
||||
msgid "work factor"
|
||||
msgstr ""
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "suma de comprobación"
|
||||
|
||||
msgid "name"
|
||||
msgstr "nome"
|
||||
|
||||
msgid "content type"
|
||||
msgstr ""
|
||||
|
||||
msgid "codename"
|
||||
msgstr ""
|
||||
|
||||
msgid "permission"
|
||||
msgstr "permisu"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "permisos"
|
||||
|
||||
msgid "group"
|
||||
msgstr "grupu"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "grupos"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "estáu de superusuariu"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "permisos d'usuariu"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr ""
|
||||
|
||||
msgid "username"
|
||||
msgstr "nome d'usuariu"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr ""
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Yá esiste un usuariu con esi nome d'usuariu."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "nome"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "apellíos"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "direición de corréu"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr ""
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr ""
|
||||
|
||||
msgid "active"
|
||||
msgstr "activu"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
|
||||
msgid "date joined"
|
||||
msgstr ""
|
||||
|
||||
msgid "user"
|
||||
msgstr "usuariu"
|
||||
|
||||
msgid "users"
|
||||
msgstr "usuarios"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr ""
|
||||
|
||||
msgid "Your password can't be too similar to your other personal information."
|
||||
msgstr ""
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr ""
|
||||
|
||||
msgid "Your password can't be a commonly used password."
|
||||
msgstr ""
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr ""
|
||||
|
||||
msgid "Your password can't be entirely numeric."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password change"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr ""
|
Binary file not shown.
@ -0,0 +1,304 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Ali Ismayilov <ali@ismailov.info>, 2011
|
||||
# Emin Mastizada <emin@linux.com>, 2018,2020
|
||||
# Emin Mastizada <emin@linux.com>, 2016
|
||||
# Nicat Məmmədov <n1c4t97@gmail.com>, 2022
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-09-21 10:22+0200\n"
|
||||
"PO-Revision-Date: 2022-07-25 08:09+0000\n"
|
||||
"Last-Translator: Nicat Məmmədov <n1c4t97@gmail.com>\n"
|
||||
"Language-Team: Azerbaijani (http://www.transifex.com/django/django/language/"
|
||||
"az/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: az\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Şəxsi məlumat"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "İcazələr"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Vacib tarixlər"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "Əsas %(key)r açarı ilə %(name)s obyekti mövcud deyil."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Şifrə uğurla dəyişdirildi."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Şifrəni dəyiş: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "Təsdiqləmə və Səlahiyyət"
|
||||
|
||||
msgid "password"
|
||||
msgstr "şifrə"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "son dəfə daxil olub"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "Şifrə təyin olunmayıb."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "Xətalı şifrə formatı və ya bilinməyən heş alqoritması."
|
||||
|
||||
msgid "The two password fields didn’t match."
|
||||
msgstr "Şifrə xanalarının dəyərləri eyni deyil."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Şifrə"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Şifrənin təsdiqi"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "Təsdiqləmək üçün əvvəlki ilə eyni şifrəni daxil edin."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
"Şifrələr açıq formada saxlanılmadığı üçün bu istifadəçinin şifrəsini görmək "
|
||||
"mümkün deyil, amma <a href=\"{}\">bu formadan</a> istifadə edərək şifrəni "
|
||||
"dəyişə bilərsiz."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"Lütfən düzgün %(username)s və şifrə daxil edin. Nəzərə alın ki, hər ikisi də "
|
||||
"böyük-kiçik hərflərə həssasdırlar."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "Bu hesab qeyri-aktivdir."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "E-poçt"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Yeni şifrə"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Yeni şifrənin təsdiqi"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr "Köhnə şifrəni yanlış daxil etdiniz. Zəhmət olmasa bir daha yoxlayın."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Köhnə şifrə"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Şifrə (bir daha)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "alqoritm"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "təkrarlama"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "duz"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "heş"
|
||||
|
||||
msgid "variety"
|
||||
msgstr "müxtəliflik"
|
||||
|
||||
msgid "version"
|
||||
msgstr "versiya"
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr "yaddaş xərci"
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "vaxt xərci"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr "paralellik"
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "iş faktoru"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "yoxlama dəyəri"
|
||||
|
||||
msgid "block size"
|
||||
msgstr ""
|
||||
|
||||
msgid "name"
|
||||
msgstr "ad"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "məzmun növü"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "kod adı"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "icazə"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "icazələr"
|
||||
|
||||
msgid "group"
|
||||
msgstr "qrup"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "qruplar"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "superistifadəçi statusu"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr "İstifadəçiyə bütün icazələri verir."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"Bu istifadəçinin aid olduğu qruplar. İstifadə bu qruplardan hər birinə "
|
||||
"verilən bütün icazələri alacaq."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "səlahiyyətləri"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "Bu istifadəçiyə aid xüsusi icazələr."
|
||||
|
||||
msgid "username"
|
||||
msgstr "istifadəçi adı"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr "Tələb edilir. Ən az 150 simvol. Ancaq hərf, rəqəm və @/./+/-/_."
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Bu istifadəçi adı altında başqa istifadəçi var."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "ad"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "soyad"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "e-poçt ünvanı"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "admin statusu"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "İstifadəçinin admin panelinə daxil olub, olmayacağını təyin edir."
|
||||
|
||||
msgid "active"
|
||||
msgstr "Aktiv"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"İstifadəçinin aktiv və ya qeyri-aktiv olmasını təyin edir. Hesabları silmək "
|
||||
"əvəzinə bundan istifadə edin."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "qoşulub"
|
||||
|
||||
msgid "user"
|
||||
msgstr "istifadəçi"
|
||||
|
||||
msgid "users"
|
||||
msgstr "istifadəçilər"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] "Bu parol çox qısadır. Ən az %(min_length)d işarə olmalıdır."
|
||||
msgstr[1] ""
|
||||
"Bu şifrə çox qısadır. Ən az %(min_length)d simvoldan ibarət olmalıdır."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] "Parolunuz ən az %(min_length)d işarə olmalıdır."
|
||||
msgstr[1] "Şifrəniz ən az %(min_length)d simvoldan ibarət olmalıdır."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "Şifrəniz %(verbose_name)s ilə çox bənzərdir."
|
||||
|
||||
msgid "Your password can’t be too similar to your other personal information."
|
||||
msgstr "Şifrəniz digər şəxsi məlumatlarınıza çox bənzərdir."
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "Bu şifrə çox asandır."
|
||||
|
||||
msgid "Your password can’t be a commonly used password."
|
||||
msgstr "Şifrəniz çox istifadə edilən, ümumişlək olmamalıdır."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "Bu şifrə ancaq rəqəmlərdən ibarətdir."
|
||||
|
||||
msgid "Your password can’t be entirely numeric."
|
||||
msgstr "Şifrəniz ancaq rəqəmlərdən ibarət ola bilməz."
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "%(site_name)s, şifrənin sıfırlanması"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Düzgün istifadəçi adı daxil edin. Bu dəyən ancaq İngiliscə hərflərdən, rəqəm "
|
||||
"və @/./+/-/_ işarətlərindən ibarət ola bilər."
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Düzgün istifadəçi adı daxil edin. Bu dəyən ancaq hərf, rəqəm və @/./+/-/_ "
|
||||
"işarətlərindən ibarət ola bilər."
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Çıxdınız"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "Şifrənin sıfırlanması"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "Şifrə sıfırlanması göndərildi"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "Yeni şifrəni daxil edin"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "Şifrə sıfırlanması uğursuz oldu"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "Şifrə sıfırlanması tamamlandı"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "Şifrənin dəyişdirilməsi"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "Şifrə uğurla dəyişdirildi"
|
Binary file not shown.
@ -0,0 +1,313 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Viktar Palstsiuk <vipals@gmail.com>, 2015
|
||||
# znotdead <zhirafchik@gmail.com>, 2016-2017,2019,2021,2023
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-03-17 03:19-0500\n"
|
||||
"PO-Revision-Date: 2023-04-25 08:09+0000\n"
|
||||
"Last-Translator: znotdead <zhirafchik@gmail.com>, 2016-2017,2019,2021,2023\n"
|
||||
"Language-Team: Belarusian (http://www.transifex.com/django/django/language/"
|
||||
"be/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: be\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || "
|
||||
"(n%100>=11 && n%100<=14)? 2 : 3);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Асабістыя зьвесткі"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Дазволы"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Важныя даты"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "Аб'ект %(name)s з першасным ключом %(key)r не існуе."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Пароль зьмянілі."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Зьмяніць пароль: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "Аўтэнтыфікацыя і аўтарызацыя"
|
||||
|
||||
msgid "password"
|
||||
msgstr "пароль"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "апошні раз уваходзіў"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "Пароль не зададзены."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "Няправільны фармат паролю або невядомы алгарытм хэшавання."
|
||||
|
||||
msgid "The two password fields didn’t match."
|
||||
msgstr "Не супадаюць паролі ў двух палях."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Пароль"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Пацьвердзіце пароль"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "Дзеля пэўнасьці набярыце такі самы пароль яшчэ раз."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
"Паролі не захоўваюцца ў такім выглядзе, як іх набралі, таму ўбачыць пароль "
|
||||
"карыстальніка нельга, але яго можна зьмяніць выкарыстоўваючы<a "
|
||||
"href=\"{}\">гэту форму </a>."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"Калі ласка, увядзіце правільны %(username)s і пароль. Адзначым, што абодва "
|
||||
"палі могуць быць адчувальныя да рэгістра."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "Рахунак ня дзейнічае."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "Электронная пошта"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Новы пароль"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Пацьвердзіце новы пароль"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr "Пазначылі неадпаведны стары пароль. Набярыце яго зноўку."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Стары пароль"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Пароль (яшчэ раз)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "альґарытм"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "паўтарэньні"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "соль"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "скарот"
|
||||
|
||||
msgid "variety"
|
||||
msgstr "мноства"
|
||||
|
||||
msgid "version"
|
||||
msgstr "версія"
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr "кошт памяці"
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "кошт часу"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr "паралелізм"
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "множнік працы"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "кантрольная сума"
|
||||
|
||||
msgid "block size"
|
||||
msgstr "памер блока"
|
||||
|
||||
msgid "name"
|
||||
msgstr "назва"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "від змесціва"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "найменьне"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "дазвол"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "дазволы"
|
||||
|
||||
msgid "group"
|
||||
msgstr "суполка"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "суполкі"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "становішча спраўніка"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"Паказвае, ці мае карыстальнік усе дазволы без таго, каб іх яўна прызначаць."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"Суполкі, у якія ўваходзіць карыстальнік. Карыстальнік атрымае дазволы, якія "
|
||||
"мае кожная ягоная суполка."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "дазволы карыстальніка"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "Адмысловыя правы для гэтага карыстальніка."
|
||||
|
||||
msgid "username"
|
||||
msgstr "імя карыстальніка"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr "Абавязковае поле. Да 150 знакаў. Толькі літары, лічбы ды @/./+/-/_."
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Карыстальнік з такім іменем ужо існуе."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "імя"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "прозьвішча"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "адрас электроннай пошты"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "становішча"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "Паказвае, ці можа карыстальнік ўваходзіць на кіраўнічую пляцоўку."
|
||||
|
||||
msgid "active"
|
||||
msgstr "дзейны"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Паказвае, ці трэба ставіцца да карыстальніка як да дзейнага. Замест таго "
|
||||
"каб, каб выдаляць рахунак, зраіце карыстальніка нядзейным."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "калі далучылі"
|
||||
|
||||
msgid "user"
|
||||
msgstr "карыстальнік"
|
||||
|
||||
msgid "users"
|
||||
msgstr "карыстальнікі"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
"Гэты пароль занадта кароткі. Ён павінен мець не менш %(min_length)d сімвал."
|
||||
msgstr[1] ""
|
||||
"Гэты пароль занадта кароткі. Ён павінен мець не менш %(min_length)d сімвала."
|
||||
msgstr[2] ""
|
||||
"Гэты пароль занадта кароткі. Ён павінен мець не менш %(min_length)d сімвалаў."
|
||||
msgstr[3] ""
|
||||
"Гэты пароль занадта кароткі. Ён павінен мець не менш %(min_length)d сімвалаў."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] "Ваш пароль павінен мець не менш %(min_length)d сімвал."
|
||||
msgstr[1] "Ваш пароль павінен мець не менш %(min_length)d сімвала."
|
||||
msgstr[2] "Ваш пароль павінен мець не менш %(min_length)d сімвалаў."
|
||||
msgstr[3] "Ваш пароль павінен мець не менш %(min_length)d сімвалаў."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "Пароль занадта падобны да %(verbose_name)s."
|
||||
|
||||
msgid "Your password can’t be too similar to your other personal information."
|
||||
msgstr ""
|
||||
"Ваш пароль ня можа быць занадта падобным да вашай іншай асабістай інфармацыі."
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "Гэты пароль занадта распаўсюджаны."
|
||||
|
||||
msgid "Your password can’t be a commonly used password."
|
||||
msgstr "Ваш пароль ня можа быць адным з шырока распаўсюджаных пароляў."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "Гэты пароль цалкам лікавы."
|
||||
|
||||
msgid "Your password can’t be entirely numeric."
|
||||
msgstr "Ваш пароль ня можа быць цалкам лікавым."
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "Узнавіць пароль на %(site_name)s"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only unaccented lowercase a-z "
|
||||
"and uppercase A-Z letters, numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Увядзіце імя карыстальніка. Гэта значэнне можа ўтрымліваць толькі малыя "
|
||||
"літары a-z і вялікія літары A-Z, лічбы і сімвалы @/./+/-/_."
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Увядзіце імя карыстальніка. Гэта значэнне можа ўтрымліваць толькі літары, "
|
||||
"лічбы і сімвалы @/./+/-/_."
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Не ўвайшоў"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "Аднаўленне пароля"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "Запыт на аднаўленне пароля адасланы"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "Пазначце новы пароль"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "Не ўдалося аднавіць пароль"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "Аднаўленне пароля скончана"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "Змена пароля"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "Змена пароля прайшла паспяхова"
|
Binary file not shown.
@ -0,0 +1,311 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# arneatec <arneatec@gmail.com>, 2022
|
||||
# Boris Chervenkov <office@sentido.bg>, 2012
|
||||
# Georgi Kostadinov <grgkostadinov@gmail.com>, 2012
|
||||
# Jannis Leidel <jannis@leidel.info>, 2011
|
||||
# Lyuboslav Petrov <petrov.lyuboslav@gmail.com>, 2014
|
||||
# Todor Lubenov <tlubenov@gmail.com>, 2015
|
||||
# Venelin Stoykov <vkstoykov@gmail.com>, 2015-2016
|
||||
# vestimir <vestimir@gmail.com>, 2014
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-09-21 10:22+0200\n"
|
||||
"PO-Revision-Date: 2022-04-24 20:19+0000\n"
|
||||
"Last-Translator: arneatec <arneatec@gmail.com>, 2022\n"
|
||||
"Language-Team: Bulgarian (http://www.transifex.com/django/django/language/"
|
||||
"bg/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: bg\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Лична информация"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Права"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Важни дати"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "%(name)s обект с първичен ключ %(key)r не съществува."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Паролата беше променена успешно. "
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Промени парола: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "Аутентикация и оторизация"
|
||||
|
||||
msgid "password"
|
||||
msgstr "парола"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "последно вписване"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "Не е зададена парола."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "Невалиден формат за парола или неизвестен алгоритъм за хеширане."
|
||||
|
||||
msgid "The two password fields didn’t match."
|
||||
msgstr "Двете полета за паролата не съвпадат. "
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Парола"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Потвърждение на паролата"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "Въведете същата парола като преди, за да потвърдите."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
"Паролите не се съхраняват в чист вид, така че е невъзможно да видите "
|
||||
"паролата на този потребител, но можете да промените паролата чрез <a "
|
||||
"href=\"{}\">този формуляр</a>."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"Моля, въведете правилните %(username)s и парола. Имайте предвид, че и двете "
|
||||
"полета могат да бъдат с малки или главни букви."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "Този профил е неактивен."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "Имейл"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Нова парола"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Потвърждение на новата парола"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr "Въвели сте погрешна стара парола. Въведете я отново. "
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Стара парола"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Парола (отново)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "алгоритъм"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "повторения"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "salt"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "хеш"
|
||||
|
||||
msgid "variety"
|
||||
msgstr "разнообразие"
|
||||
|
||||
msgid "version"
|
||||
msgstr "версия"
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr "разход памет"
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "разход време"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr "паралелизъм"
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "работен фактор"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "чексума"
|
||||
|
||||
msgid "block size"
|
||||
msgstr "размер на блока"
|
||||
|
||||
msgid "name"
|
||||
msgstr "име"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "тип на съдържанието"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "код"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "право"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "права"
|
||||
|
||||
msgid "group"
|
||||
msgstr "група"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "групи"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "статут на супер-потребител"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"Указва, че този потребител има всички права (без да има нужда да се "
|
||||
"изброяват изрично)."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"Групите на които този потребител принадлежи. Потребителят ще получи всички "
|
||||
"разрешения, дадени на всяка една от своите групи."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "права на потребител"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "Специфични права за този потребител"
|
||||
|
||||
msgid "username"
|
||||
msgstr "потребител"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr "Задължително. 150 знака или по-малко. Букви, цифри и @/./+/-/_ ."
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Потребител с това потребителско име вече съществува. "
|
||||
|
||||
msgid "first name"
|
||||
msgstr "собствено име"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "фамилно име"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "имейл адрес"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "статус на персонал"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "Указва дали този потребител има достъп до административния панел."
|
||||
|
||||
msgid "active"
|
||||
msgstr "активен"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Указва дали този потребител трябва да се третира като активен. Премахнете "
|
||||
"тази отметката, вместо да изтривате профили."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "дата на регистриране"
|
||||
|
||||
msgid "user"
|
||||
msgstr "потребител"
|
||||
|
||||
msgid "users"
|
||||
msgstr "потребители"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
"Паролата е прекалено къса. Трябва да съдържа поне %(min_length)d символ."
|
||||
msgstr[1] ""
|
||||
"Паролата е прекалено къса. Трябва да съдържа поне %(min_length)d символа."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] "Вашата парола трябва да съдържа поне %(min_length)d символ."
|
||||
msgstr[1] "Вашата парола трябва да съдържа поне %(min_length)d символа."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "Паролата е много подобна на %(verbose_name)s."
|
||||
|
||||
msgid "Your password can’t be too similar to your other personal information."
|
||||
msgstr "Вашата парола не може да прилича на останалата Ви лична информация."
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "Тази парола е често срещана."
|
||||
|
||||
msgid "Your password can’t be a commonly used password."
|
||||
msgstr "Вашата парола не може да бъде често срещана."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "Тази парола е изцяло от цифри."
|
||||
|
||||
msgid "Your password can’t be entirely numeric."
|
||||
msgstr "Вашата парола не може да бъде само от цифри."
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "Промяна на парола за %(site_name)s"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Въведете валидно потребителско име. То може да съдържа само букви на "
|
||||
"латиница, цифри и @/./+/-/_ символи."
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Въведете валидно потребителско име. То може да съдържа само букви, цифри и "
|
||||
"@/./+/-/_ символи."
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Извън системата"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "Забравена парола"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "Нулиране на паролата е изпратено"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "Въведете нова парола"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "Неуспешна промяна на паролата "
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "Промяната на парола завърши"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "Промяна на парола"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "Паролата е сменена успешно"
|
Binary file not shown.
@ -0,0 +1,286 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Jannis Leidel <jannis@leidel.info>, 2011
|
||||
# Tahmid Rafi <rafi.tahmid@gmail.com>, 2014
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-24 13:46+0200\n"
|
||||
"PO-Revision-Date: 2017-09-24 14:24+0000\n"
|
||||
"Last-Translator: Jannis Leidel <jannis@leidel.info>\n"
|
||||
"Language-Team: Bengali (http://www.transifex.com/django/django/language/"
|
||||
"bn/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: bn\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "ব্যক্তিগত তথ্য"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "অনুমোদন"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "গুরুত্বপূর্ণ তারিখ"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr ""
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "পাসওয়ার্ড বদল সফল হয়েছে।"
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "পাসওয়ার্ড বদলানঃ %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr ""
|
||||
|
||||
msgid "password"
|
||||
msgstr "পাসওয়ার্ড"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "সর্বশেষ প্রবেশ"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "কোনো পাসওয়ার্ড সেট করা হয় নি।"
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "অবৈধ পাসওয়ার্ড ফরম্যাট অথবা অজ্ঞাত হ্যাশিং অ্যালগরিদম।"
|
||||
|
||||
msgid "The two password fields didn't match."
|
||||
msgstr "পাসওয়ার্ড দুটো মেলেনি।"
|
||||
|
||||
msgid "Password"
|
||||
msgstr "পাসওয়ার্ড"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "পাসওয়ার্ড নিশ্চিত করুন"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user's "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "এই একাউন্টটি কার্যকর নয়।"
|
||||
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
msgid "New password"
|
||||
msgstr "নতুন পাসওয়ার্ড"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "নতুন পাসওয়ার্ড নিশ্চিতকরণ"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr ""
|
||||
"আপনার পুরনো পাসওয়ার্ড ঠিকভাবে প্রবেশ করানো হয়নি। অনুগ্রহপূর্বক সঠিক পাসওয়ার্ড দিন।"
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "পুরনো পাসওয়ার্ড"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "পাসওয়ার্ড (পুনরায়)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "অ্যালগরিদম"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "ইটারেশন"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "সল্ট"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "হ্যাশ"
|
||||
|
||||
msgid "variety"
|
||||
msgstr ""
|
||||
|
||||
msgid "version"
|
||||
msgstr ""
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr ""
|
||||
|
||||
msgid "time cost"
|
||||
msgstr ""
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr ""
|
||||
|
||||
msgid "work factor"
|
||||
msgstr ""
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "চেকসাম"
|
||||
|
||||
msgid "name"
|
||||
msgstr "নাম"
|
||||
|
||||
msgid "content type"
|
||||
msgstr ""
|
||||
|
||||
msgid "codename"
|
||||
msgstr "কোডনাম"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "অনুমোদন"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "অনুমোদন"
|
||||
|
||||
msgid "group"
|
||||
msgstr "দল"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "দল সমূহ"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "সুপারইউজার মর্যাদা"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr "সদস্যকে সকল ধরণের অনুমতি প্রদান করে।"
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "সদস্যের অনুমোদন সমূহ"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "এই ব্যবহারকারীর জন্য নির্দিষ্ট পারমিশন।"
|
||||
|
||||
msgid "username"
|
||||
msgstr "সদস্যনাম"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr ""
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "এই সদস্যনামে একজন সদস্য আছেন।"
|
||||
|
||||
msgid "first name"
|
||||
msgstr "প্রথম নাম"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "শেষ নাম"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "ইমেইল অ্যাড্রেস"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "স্টাফ মর্যাদা"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "সদস্যকে প্রশাসন সাইটে প্রবেশাধিকার প্রদান।"
|
||||
|
||||
msgid "active"
|
||||
msgstr "সচল"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr "সদস্যকে সচল হিসেবে নির্ধারণ করুন। একাউন্ট মুছে ফেলার বদলে এটি ব্যবহার করুন।"
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "যোগদানের তারিখ"
|
||||
|
||||
msgid "user"
|
||||
msgstr "সদস্য"
|
||||
|
||||
msgid "users"
|
||||
msgstr "সদস্যগণ"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr ""
|
||||
|
||||
msgid "Your password can't be too similar to your other personal information."
|
||||
msgstr ""
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr ""
|
||||
|
||||
msgid "Your password can't be a commonly used password."
|
||||
msgstr ""
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr ""
|
||||
|
||||
msgid "Your password can't be entirely numeric."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "প্রস্থান সম্পন্ন"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "পাসওয়ার্ড রিসেট"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "নতুন পাসওয়ার্ড দিন"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "পাসওয়ার্ড রিসেট সফল হয়নি"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "পাসওয়ার্ড রিসেট সম্পন্ন হয়েছে"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "পাসওয়ার্ড পরিবর্তন"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "পাসওয়ার্ড পরিবর্তন সফল হয়েছে"
|
Binary file not shown.
@ -0,0 +1,293 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Fulup <fulup.jakez@gmail.com>, 2012
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-24 13:46+0200\n"
|
||||
"PO-Revision-Date: 2017-09-24 14:24+0000\n"
|
||||
"Last-Translator: Jannis Leidel <jannis@leidel.info>\n"
|
||||
"Language-Team: Breton (http://www.transifex.com/django/django/language/br/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: br\n"
|
||||
"Plural-Forms: nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !"
|
||||
"=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n"
|
||||
"%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > "
|
||||
"19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 "
|
||||
"&& n % 1000000 == 0) ? 3 : 4);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr ""
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr ""
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr ""
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr ""
|
||||
|
||||
msgid "password"
|
||||
msgstr "ger-tremen"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "kevreet da ziwezhañ"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr ""
|
||||
|
||||
msgid "The two password fields didn't match."
|
||||
msgstr ""
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Ger-tremen"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user's "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr ""
|
||||
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Ger-tremen nevez"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Kadarnaat ar ger-tremen nevez"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr ""
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Ger-tremen kozh"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Ger-tremen (adarre)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr ""
|
||||
|
||||
msgid "iterations"
|
||||
msgstr ""
|
||||
|
||||
msgid "salt"
|
||||
msgstr ""
|
||||
|
||||
msgid "hash"
|
||||
msgstr ""
|
||||
|
||||
msgid "variety"
|
||||
msgstr ""
|
||||
|
||||
msgid "version"
|
||||
msgstr ""
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr ""
|
||||
|
||||
msgid "time cost"
|
||||
msgstr ""
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr ""
|
||||
|
||||
msgid "work factor"
|
||||
msgstr ""
|
||||
|
||||
msgid "checksum"
|
||||
msgstr ""
|
||||
|
||||
msgid "name"
|
||||
msgstr "anv"
|
||||
|
||||
msgid "content type"
|
||||
msgstr ""
|
||||
|
||||
msgid "codename"
|
||||
msgstr ""
|
||||
|
||||
msgid "permission"
|
||||
msgstr ""
|
||||
|
||||
msgid "permissions"
|
||||
msgstr ""
|
||||
|
||||
msgid "group"
|
||||
msgstr "strollad"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "strolladoù"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr ""
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr ""
|
||||
|
||||
msgid "username"
|
||||
msgstr ""
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr ""
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr ""
|
||||
|
||||
msgid "first name"
|
||||
msgstr "anv-bihan"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "anv-familh"
|
||||
|
||||
msgid "email address"
|
||||
msgstr ""
|
||||
|
||||
msgid "staff status"
|
||||
msgstr ""
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr ""
|
||||
|
||||
msgid "active"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
|
||||
msgid "date joined"
|
||||
msgstr ""
|
||||
|
||||
msgid "user"
|
||||
msgstr "implijer"
|
||||
|
||||
msgid "users"
|
||||
msgstr "implijerien"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
msgstr[3] ""
|
||||
msgstr[4] ""
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
msgstr[3] ""
|
||||
msgstr[4] ""
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr ""
|
||||
|
||||
msgid "Your password can't be too similar to your other personal information."
|
||||
msgstr ""
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr ""
|
||||
|
||||
msgid "Your password can't be a commonly used password."
|
||||
msgstr ""
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr ""
|
||||
|
||||
msgid "Your password can't be entirely numeric."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Digevreet"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password change"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr ""
|
Binary file not shown.
@ -0,0 +1,296 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Arza Grbic <arza.grbic@gmail.com>, 2021
|
||||
# Jannis Leidel <jannis@leidel.info>, 2011
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-09-21 10:22+0200\n"
|
||||
"PO-Revision-Date: 2021-09-27 17:56+0000\n"
|
||||
"Last-Translator: Arza Grbic <arza.grbic@gmail.com>\n"
|
||||
"Language-Team: Bosnian (http://www.transifex.com/django/django/language/"
|
||||
"bs/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: bs\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Lični podaci"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Dozvole"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Važni datumi"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "%(name)s objekat sa primarnim ključem %(key)r ne postoji."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Lozinka uspješno izmjenjena."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Izmjeni lozinku: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr ""
|
||||
|
||||
msgid "password"
|
||||
msgstr "lozinka"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "posljednja prijava"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "Lozinka nije postavljena."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "Neispravan format lozinke ili nepoznat hashing algoritam."
|
||||
|
||||
msgid "The two password fields didn’t match."
|
||||
msgstr ""
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Lozinka"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Potvrda lozinke"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "Ovaj nalog je neaktivan."
|
||||
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Nova lozinka"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Potvrda nove lozinke"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr "Vaša stara lozinka nije pravilno unesena. Unesite je ponovo."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Stara lozinka"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Lozinka (ponovite)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr ""
|
||||
|
||||
msgid "iterations"
|
||||
msgstr ""
|
||||
|
||||
msgid "salt"
|
||||
msgstr ""
|
||||
|
||||
msgid "hash"
|
||||
msgstr ""
|
||||
|
||||
msgid "variety"
|
||||
msgstr ""
|
||||
|
||||
msgid "version"
|
||||
msgstr ""
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr ""
|
||||
|
||||
msgid "time cost"
|
||||
msgstr ""
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr ""
|
||||
|
||||
msgid "work factor"
|
||||
msgstr ""
|
||||
|
||||
msgid "checksum"
|
||||
msgstr ""
|
||||
|
||||
msgid "block size"
|
||||
msgstr ""
|
||||
|
||||
msgid "name"
|
||||
msgstr "ime"
|
||||
|
||||
msgid "content type"
|
||||
msgstr ""
|
||||
|
||||
msgid "codename"
|
||||
msgstr "šifra dozvole"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "dozvola"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "dozvole"
|
||||
|
||||
msgid "group"
|
||||
msgstr "grupa"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "grupe"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "status administratora"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"Označava da li korisnik ima sve dozvole bez dodjeljivanja pojedinačnih "
|
||||
"dozvola."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "korisničke dozvole"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr ""
|
||||
|
||||
msgid "username"
|
||||
msgstr "korisničko ime"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr ""
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Korisnik sa tim korisničkim imenom već postoji."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "ime"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "prezime"
|
||||
|
||||
msgid "email address"
|
||||
msgstr ""
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "status člana uredništva"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr ""
|
||||
"Označava da li korisnik može da se prijavi na ovaj sajt za administraciju."
|
||||
|
||||
msgid "active"
|
||||
msgstr "aktivan"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Označava da li se korisnik smatra aktivnim. Uklnote izbor sa ovog polja "
|
||||
"umjesto da brišete nalog."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "datum registracije"
|
||||
|
||||
msgid "user"
|
||||
msgstr "korisnik"
|
||||
|
||||
msgid "users"
|
||||
msgstr "korisnici"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr ""
|
||||
|
||||
msgid "Your password can’t be too similar to your other personal information."
|
||||
msgstr ""
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr ""
|
||||
|
||||
msgid "Your password can’t be a commonly used password."
|
||||
msgstr ""
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr ""
|
||||
|
||||
msgid "Your password can’t be entirely numeric."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Odjavljen"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password change"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr ""
|
Binary file not shown.
@ -0,0 +1,316 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Antoni Aloy <aaloy@apsl.net>, 2015,2017,2021
|
||||
# Carles Barrobés <carles@barrobes.com>, 2011-2012,2014-2015
|
||||
# Carles Pina Estany, 2022
|
||||
# Gil Obradors Via <gil.obradors@gmail.com>, 2019
|
||||
# Gil Obradors Via <gil.obradors@gmail.com>, 2019-2020
|
||||
# Jannis Leidel <jannis@leidel.info>, 2011
|
||||
# Marc Compte <marc@compte.cat>, 2021
|
||||
# Roger Pons <rogerpons@gmail.com>, 2015
|
||||
# Xavier RG <xavirodgal@gmail.com>, 2021
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-09-21 10:22+0200\n"
|
||||
"PO-Revision-Date: 2022-07-25 08:09+0000\n"
|
||||
"Last-Translator: Carles Pina Estany\n"
|
||||
"Language-Team: Catalan (http://www.transifex.com/django/django/language/"
|
||||
"ca/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ca\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Informació personal"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Permisos"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Dates importants"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "No existeix cap objecte %(name)s amb la clau primària %(key)r."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Contrasenya canviada amb èxit"
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Canviar contrasenya: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "Autenticació i Autorització"
|
||||
|
||||
msgid "password"
|
||||
msgstr "contrasenya"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "últim inici de sessió"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "No s'ha establert la clau."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "Format de contrasenya incorrecte o algorisme de hash desconegut."
|
||||
|
||||
msgid "The two password fields didn’t match."
|
||||
msgstr "Els dos camps de contrasenya no coincideixen."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Contrasenya"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Confirmació de contrasenya"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "Introduïu la mateixa contrasenya d'abans, com a verificació."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
"Les contrasenyes no es guarden en text clar, així que no hi ha forma de "
|
||||
"conèixer-les, però pots canviar la contrasenya utilitzant <a href=\"{}\"> "
|
||||
"aquest formulari</a>."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"Si us plau, introduïu un %(username)s i clau correctes. Observeu que ambdós "
|
||||
"camps poden ser sensibles a majúscules."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "Aquest compte està inactiu"
|
||||
|
||||
msgid "Email"
|
||||
msgstr "Correu electrònic"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Contrasenya nova"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Confirmació de contrasenya nova"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr ""
|
||||
"La vostra antiga contrasenya no és correcta. Si us plau, introduïu-la de nou."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Contrasenya antiga"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Contrasenya (de nou)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "algorisme"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "iteracions"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "sal"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "hash"
|
||||
|
||||
msgid "variety"
|
||||
msgstr "varietat"
|
||||
|
||||
msgid "version"
|
||||
msgstr "versió"
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr "cost de memòria"
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "cost de temps"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr "paralelisme"
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "factor de treball"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "suma de comprovació"
|
||||
|
||||
msgid "block size"
|
||||
msgstr "mida de bloc"
|
||||
|
||||
msgid "name"
|
||||
msgstr "nom"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "tipus de contingut"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "nom en clau"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "permís"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "permisos"
|
||||
|
||||
msgid "group"
|
||||
msgstr "grup"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "grups"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "estat de superusuari"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"Designa que aquest usuari té tots els permisos sense assignar-los "
|
||||
"explícitament."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"Els grups als que pertany l'usuari. Un usuari tindrà tots els permisos de "
|
||||
"cadascun dels seus grups."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "permisos de l'usuari"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "Permisos específics per a aquest usuari."
|
||||
|
||||
msgid "username"
|
||||
msgstr "nom d'usuari"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr "Obligatori. 150 o menys caràcters. Només lletres, dígits i @/./+/-/_."
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Ja existeix un usuari amb aquest nom."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "nom propi"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "cognoms"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "adreça de correu electrònic"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "membre del personal"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "Designa si l'usuari pot entrar al lloc administratiu."
|
||||
|
||||
msgid "active"
|
||||
msgstr "actiu"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Designa si aquest usuari ha de ser tractat com a actiu. Deseleccioneu-ho "
|
||||
"enlloc d'esborrar comptes d'usuari."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "data d'incorporació"
|
||||
|
||||
msgid "user"
|
||||
msgstr "usuari"
|
||||
|
||||
msgid "users"
|
||||
msgstr "usuaris"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
"La contrasenya és massa curta. Ha de tenir al menys %(min_length)d caràcter."
|
||||
msgstr[1] ""
|
||||
"La contrasenya és massa curta. Ha de tenir un mínim de %(min_length)d "
|
||||
"caràcters."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] "La contrasenya és ha de tenir al menys %(min_length)d caràcter."
|
||||
msgstr[1] "La contrasenya ha de tenir un mínim de %(min_length)d caràcters."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "La contrasenya és massa semblant a %(verbose_name)s."
|
||||
|
||||
msgid "Your password can’t be too similar to your other personal information."
|
||||
msgstr ""
|
||||
"La teva contrasenya no pot ser tan similar a alguna de la teva informació "
|
||||
"personal"
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "Aquesta contrasenya és massa comuna."
|
||||
|
||||
msgid "Your password can’t be a commonly used password."
|
||||
msgstr "La teva contrasenya no pot ser la típica contrasenya comuna."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "La contrasenya està formada només per números."
|
||||
|
||||
msgid "Your password can’t be entirely numeric."
|
||||
msgstr "La teva contrasenya no potser únicament numèrica."
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "Reinicialitzar la contrasenya a %(site_name)s"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Introdueixi un nom d'usuari vàlid. Aquest valor pot contenir sols lletres, "
|
||||
"números i els caràcters @/./+/-/_ "
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Introdueixi un nom d'usuari vàlid. Aquest valor pot contenir sols lletres, "
|
||||
"números i els caràcters @/./+/-/_ "
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Sessió finalitzada"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "Restablir contrasenya"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "Restabliment de contrasenya enviat"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "Introduïu la nova contrasenya"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "Restabliment de contrasenya fallat"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "Contrasenya restablerta"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "Canvi de contrasenya"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "Contrasenya canviada amb èxit"
|
Binary file not shown.
@ -0,0 +1,304 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Swara <swara09@gmail.com>, 2022
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-03-17 03:19-0500\n"
|
||||
"PO-Revision-Date: 2023-04-25 08:09+0000\n"
|
||||
"Last-Translator: Swara <swara09@gmail.com>, 2022\n"
|
||||
"Language-Team: Central Kurdish (http://www.transifex.com/django/django/"
|
||||
"language/ckb/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ckb\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "زانیاریی کەسی"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "ڕێگەپێدانەکان"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "بەروارە گرنگەکان"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "%(name)s ئۆبجێکت لەگەڵ کلیلی سەرەکیی %(key)r بوونی نیە."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "تێپەڕەوشە بەسەرکەوتوویی گۆڕدرا."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "گۆڕینی تێپەڕەوشەی: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "ڕەسەنایەتی و ڕێگەپێدان"
|
||||
|
||||
msgid "password"
|
||||
msgstr "تێپەڕەوشە"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "دوا چوونەژوورەوە"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "تێپەڕەوشە جێگیرنەکراوە."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "شێوازی تێپەڕەوشە نادروستە یان ئەلگۆریتمێکی هاشکراوی نەناسراوە."
|
||||
|
||||
msgid "The two password fields didn’t match."
|
||||
msgstr "هەردوو خانەی تێپەڕەوشە وەک یەک نین."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "تێپەڕەوشە"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "دووپاتکردنەوەی تێپەڕەوشە"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "بۆ پشتڕاستکردنەوە هەمان تێپەڕەوشەی پێشوو بنوسە."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
"تێپەڕەوشەی خاو هەڵناگیرێت, لەبەرئەوە هیچ ڕێگەیەک نییە بۆ بینینی تێپەڕەوشەی "
|
||||
"ئەم بەکارهێنەرە, بەڵام دەتوانیت تێپەڕەوشەکە بگۆڕیت بە بەکارهێنانی <a "
|
||||
"href=\"{}\">ئەم فۆڕمە</a>."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"تکایە %(username)s و تێپەڕەوشەی دروست بنوسە. لەوانەیە هەردوو خانەکە پێویستی "
|
||||
"بە دۆخی هەستیار بێت بۆ پیتەکان."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "ئەم هەژمارە ناچالاکە."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "ئیمەیڵ"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "تێپەڕەوشەی نوێ"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "دووپاتکردنەوەی تێپەڕەوشەی نوێ"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr "تێپەڕەوشە کۆنەکەت بە هەڵە نوسراوە. تکایە دووبارە بینوسەوە."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "تێپەڕەوشەی کۆن"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "تێپەڕەوشە(دووبارە)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "ئەلگۆریتم"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "دووبارەکردنەوەکان"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "خوێ"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "پهیژه"
|
||||
|
||||
msgid "variety"
|
||||
msgstr "هەمەچەشنی"
|
||||
|
||||
msgid "version"
|
||||
msgstr "وەشان"
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr "تێچووی بیرگە"
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "تێچووی کات"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr "هاوتەریبی"
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "هۆکاری کار"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "کۆی پشکنین"
|
||||
|
||||
msgid "block size"
|
||||
msgstr "قەبارەی بلۆک"
|
||||
|
||||
msgid "name"
|
||||
msgstr "ناو"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "جۆری ناوەڕۆک"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "ناوی کۆد"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "ڕێگەپێدان"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "ڕێگەپێدانەکان"
|
||||
|
||||
msgid "group"
|
||||
msgstr "گرووپ"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "گرووپەکان"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "باری بەرزەبەکارهێنەر"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"دیاری دەکات کە ئەم بەکارهێنەرە هەموو مۆڵەتەکانی هەیە بەبێ ئەوەی بە تایبەتی "
|
||||
"پێی بسپێردرێت."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"ئەو گروپانەی ئەم بەکارهێنەرە سەر بەو گروپانەیە. بەکارهێنەرێک هەموو ئەو "
|
||||
"مۆڵەتانە وەردەگرێت کە بە هەریەک لەو گروپانە دەدرێت."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "ڕێگەپێدانەکانی بەکارهێنەر"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "ڕێگەپێدانە تایبەتەکان بۆ ئەم بەکارهێنەرە."
|
||||
|
||||
msgid "username"
|
||||
msgstr "ناوی بەکارهێنەر"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr "داواکراوە. 150 پیت یان کەمتر. تەنها پیت، ژمارە و @/./+/-/_ بێت."
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "بەکارهێنەرەکە بە هەمان ناوی بەکارهێنەرەوە پێشتر هەیە."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "ناوی یەکەم"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "ناوی دووەم"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "ناونیشانی ئیمەیڵ"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "باری ستاف"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr ""
|
||||
"دیاری دەکات کە ئایا بەکارهێنەر دەتوانێت بچێتە ناو بەڕێوەبەرایەتی ئەم "
|
||||
"پێگەیەوە."
|
||||
|
||||
msgid "active"
|
||||
msgstr "چالاک"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"دیاری دەکات کە ئایا ئەم بەکارهێنەرە دەبێت وەک چالاک مامەڵەی لەگەڵدا بکرێت "
|
||||
"یان نا. لەبری سڕینەوەی هەژمارەکان ئەمە هەڵمەبژێرە."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "بەرواری پەیوەستبوون"
|
||||
|
||||
msgid "user"
|
||||
msgstr "بەکارهێنەر"
|
||||
|
||||
msgid "users"
|
||||
msgstr "بەکارهێنەر"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
"ئەم تێپەڕەوشە زۆر کورتە. دەبێت لانیکەم پێکبێت لە %(min_length)d نوسە."
|
||||
msgstr[1] ""
|
||||
"ئەم تێپەڕەوشە زۆر کورتە. دەبێت لانیکەم پێکبێت لە %(min_length)d نوسە."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] "تێپەڕەوشەکەت دەبێت لانیکەم لە %(min_length)d نوسە پێک بێت."
|
||||
msgstr[1] "تێپەڕەوشەکەت دەبێت لانیکەم لە %(min_length)d نوسە پێک بێت."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "ئەم تێپەڕەوشەیە زۆر هاوشێوەی %(verbose_name)sیە."
|
||||
|
||||
msgid "Your password can’t be too similar to your other personal information."
|
||||
msgstr "تێپەڕەوشەکەت نابێت لەگەڵ زانیارییە کەسییەکانت زۆر چوونیەک بێت."
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "ئەم تێپەڕەوشەیە زۆر باوە."
|
||||
|
||||
msgid "Your password can’t be a commonly used password."
|
||||
msgstr "تێپەڕەوشەکەت ناتوانێت تێپەڕەوشەیەکی باو بێت."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "ئەم تێپەڕەوشەیە بە تەواوی ژمارەیە."
|
||||
|
||||
msgid "Your password can’t be entirely numeric."
|
||||
msgstr "تێپەڕەوشەکەت نابێت بە تەواوی ژمارە بێت"
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "تێپەڕەوشەکەت دانرایەوە لە %(site_name)s"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only unaccented lowercase a-z "
|
||||
"and uppercase A-Z letters, numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"ناوی بەکارهێنەرێکی دروست بنوسە. ئەم بەهایە لەوانەیە تەنها پیت و ژمارە و "
|
||||
"پیتەکانی @/./+/-/_ لەخۆبگرێت."
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "چوونەدەرەوە"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "دانانەوەی تێپەڕەوشە"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "دانانەوەی تێپەڕەوشە نێردرا"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "تێپەڕەوشەی نوێ بنوسە"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "دانانەوەی تێپەڕەوشە سەرکەوتوو نەبوو"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "دانانەوەی تێپەڕەوشە تەواو بوو"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "گۆڕینی تێپەڕەوشە"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "تێپەڕەوشە بەسەرکەوتوویی گۆڕدرا"
|
Binary file not shown.
@ -0,0 +1,309 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Jan Munclinger <jan.munclinger@gmail.com>, 2013
|
||||
# Jannis Leidel <jannis@leidel.info>, 2011
|
||||
# Tomáš Ehrlich <tomas.ehrlich@gmail.com>, 2015
|
||||
# Vláďa Macek <macek@sandbox.cz>, 2013-2014
|
||||
# Vláďa Macek <macek@sandbox.cz>, 2015-2017,2019,2021-2022
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-09-21 10:22+0200\n"
|
||||
"PO-Revision-Date: 2022-01-04 18:49+0000\n"
|
||||
"Last-Translator: Vláďa Macek <macek@sandbox.cz>\n"
|
||||
"Language-Team: Czech (http://www.transifex.com/django/django/language/cs/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: cs\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n "
|
||||
"<= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Osobní údaje"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Oprávnění"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Důležitá data"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "Položka \"%(name)s\" s primárním klíčem \"%(key)r\" neexistuje."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Změna hesla byla úspěšná."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Heslo pro uživatele %s: změnit"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "Autentizace a autorizace"
|
||||
|
||||
msgid "password"
|
||||
msgstr "heslo"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "poslední přihlášení"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "Heslo nenastaveno."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "Neplatný formát hesla nebo neplatný hashovací algoritmus."
|
||||
|
||||
msgid "The two password fields didn’t match."
|
||||
msgstr "Hesla se neshodují."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Heslo"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Potvrzení hesla"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "Zadejte pro ověření stejné heslo jako předtím."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
"Hesla se neukládají přímo a tak je nelze zobrazit. Je ale možné je změnit "
|
||||
"pomocí <a href=\"{}\">tohoto formuláře</a>."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"Zadejte správnou hodnotu pole %(username)s a heslo. Pozor, obě pole mohou "
|
||||
"rozlišovat malá a velká písmena."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "Tento účet je neaktivní."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "E-mail"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Nové heslo"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Potvrzení nového hesla"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr "Vaše současné heslo nebylo zadáno správně. Zkuste to znovu."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Současné heslo"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Heslo (znovu)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "algoritmus"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "iterace"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "hodnota salt"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "hash"
|
||||
|
||||
msgid "variety"
|
||||
msgstr "varieta"
|
||||
|
||||
msgid "version"
|
||||
msgstr "verze"
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr "spotřeba paměti"
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "časový náklad"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr "paralelismus"
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "faktor práce"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "kontrolní součet"
|
||||
|
||||
msgid "block size"
|
||||
msgstr "velikost bloku"
|
||||
|
||||
msgid "name"
|
||||
msgstr "název"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "typ obsahu"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "kódový název"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "oprávnění"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "oprávnění"
|
||||
|
||||
msgid "group"
|
||||
msgstr "skupina"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "skupiny"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "superuživatel"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"Určuje, že uživatel má veškerá oprávnění bez jejich explicitního přiřazení."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"Skupiny, do kterých tento uživatel patří. Uživatel dostane všechna oprávnění "
|
||||
"udělená každé z jeho skupin."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "uživatelská oprávnění"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "Konkrétní oprávnění tohoto uživatele."
|
||||
|
||||
msgid "username"
|
||||
msgstr "uživatelské jméno"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr ""
|
||||
"Požadováno. 150 znaků nebo méně. Pouze písmena, číslice a znaky @/./+/-/_."
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Uživatel s tímto jménem již existuje."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "křestní jméno"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "příjmení"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "e-mailová adresa"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "administrační přístup"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "Určuje, zda se uživatel může přihlásit do správy tohoto webu."
|
||||
|
||||
msgid "active"
|
||||
msgstr "aktivní"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Určuje, zda bude uživatel považován za aktivního. Použijte tuto možnost "
|
||||
"místo odstranění účtů."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "datum registrace"
|
||||
|
||||
msgid "user"
|
||||
msgstr "uživatel"
|
||||
|
||||
msgid "users"
|
||||
msgstr "uživatelé"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] "Heslo je příliš krátké. Musí mít délku aspoň %(min_length)d znak."
|
||||
msgstr[1] "Heslo je příliš krátké. Musí mít délku aspoň %(min_length)d znaky."
|
||||
msgstr[2] "Heslo je příliš krátké. Musí mít délku aspoň %(min_length)d znaků."
|
||||
msgstr[3] "Heslo je příliš krátké. Musí mít délku aspoň %(min_length)d znaků."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] "Heslo musí mít délku aspoň %(min_length)d znak."
|
||||
msgstr[1] "Heslo musí mít délku aspoň %(min_length)d znaky."
|
||||
msgstr[2] "Heslo musí mít délku aspoň %(min_length)d znaků."
|
||||
msgstr[3] "Heslo musí mít délku aspoň %(min_length)d znaků."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "Heslo je příliš podobné obsahu pole %(verbose_name)s."
|
||||
|
||||
msgid "Your password can’t be too similar to your other personal information."
|
||||
msgstr "Heslo nemůže být příliš podobné jinému údaji ve vašem účtu."
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "Heslo je příliš běžné."
|
||||
|
||||
msgid "Your password can’t be a commonly used password."
|
||||
msgstr "Vaše heslo nemůže být takové, které je často používané."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "Heslo se skládá pouze z čísel."
|
||||
|
||||
msgid "Your password can’t be entirely numeric."
|
||||
msgstr "Vaše heslo nemůže být čistě číselné."
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "Obnovení hesla na webu %(site_name)s"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Zadejte platné uživatelské jméno. Hodnota může obsahovat pouze písmena bez "
|
||||
"diakritiky, tj. háčků a čárek, číslice a znaky @/./+/-/_."
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Zadejte platné uživatelské jméno. Hodnota může obsahovat pouze písmena, "
|
||||
"číslice a znaky @/./+/-/_."
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Odhlášeno"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "Obnovení hesla"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "Zpráva s obnovením hesla byla odeslána"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "Zadejte nové heslo"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "Obnovení hesla bylo neúspěšné"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "Heslo bylo obnoveno"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "Změna hesla"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "Změna hesla byla úspěšná"
|
Binary file not shown.
@ -0,0 +1,294 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Jannis Leidel <jannis@leidel.info>, 2011
|
||||
# Maredudd ap Gwyndaf <maredudd@maredudd.com>, 2013-2014
|
||||
# pjrobertson, 2014
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-24 13:46+0200\n"
|
||||
"PO-Revision-Date: 2017-09-24 14:24+0000\n"
|
||||
"Last-Translator: Jannis Leidel <jannis@leidel.info>\n"
|
||||
"Language-Team: Welsh (http://www.transifex.com/django/django/language/cy/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: cy\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != "
|
||||
"11) ? 2 : 3;\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Gwybodaeth bersonol"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Hawliau"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Dyddiadau pwysig"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr ""
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Newidwyd y gyfrinair."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Newid cyfrinair: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "Dilysu ac Awdurdodi"
|
||||
|
||||
msgid "password"
|
||||
msgstr "cyfrinair"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "mewngofnod diwethaf"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "Cyfrinair heb ei osod."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "Fformat cyfrinair annilys neu algorithm hashio anhysbys."
|
||||
|
||||
msgid "The two password fields didn't match."
|
||||
msgstr "Nid oedd y ddau faes cyfrinair yr un peth."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Cyfrinair"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Cadarnhad cyfrinair"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user's "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"Teipiwch yr %(username)s a chyfrinair cywir ar gyfer cyfrif staff. Noder y "
|
||||
"gall y ddau faes fod yn sensitif i lythrennau bach a llythrennau bras."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "Mae'r cyfrif yn anweithredol."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "Ebost"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Cyfrinair newydd"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Cadarnhad cyfrinair newydd"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr "Rhoddwydd eich hen gyfrinair yn anghywir. Triwch eto."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Hen gyfrinair"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Cyfrinair (eto)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "algorithm"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "iteriadau"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "salt"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "hash"
|
||||
|
||||
msgid "variety"
|
||||
msgstr ""
|
||||
|
||||
msgid "version"
|
||||
msgstr ""
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr ""
|
||||
|
||||
msgid "time cost"
|
||||
msgstr ""
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr ""
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "ffactor gwaith"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "prawfswm"
|
||||
|
||||
msgid "name"
|
||||
msgstr "enw"
|
||||
|
||||
msgid "content type"
|
||||
msgstr ""
|
||||
|
||||
msgid "codename"
|
||||
msgstr "enw arwyddol"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "hawl"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "hawliau"
|
||||
|
||||
msgid "group"
|
||||
msgstr "grŵp"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "grwpiau"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "statws uwchddefnyddiwr"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr "Dynoda bod gan y defnyddiwr yr holl hawliau heb eu dynodi'n benodol."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "hawliau defnyddiwr"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "Caniatâd penodol ar gyfer y defnyddiwr hwn."
|
||||
|
||||
msgid "username"
|
||||
msgstr "enw defnyddiwr"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr ""
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Mae'r enw defnyddiwr yn bodoli'n barod."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "enw cyntaf"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "cyfenw"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "cyfeiriad ebost"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "statws staff"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "Dynoda os gall y defnyddiwr fewngofnodi i'r adran weinyddol."
|
||||
|
||||
msgid "active"
|
||||
msgstr "gweithredol"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Dynoda os ydy'r defnyddiwr yn weithredol. Dad-ddewiswch hwn yn lle dileu "
|
||||
"cyfrifon."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "dyddiad ymuno"
|
||||
|
||||
msgid "user"
|
||||
msgstr "defnyddiwr"
|
||||
|
||||
msgid "users"
|
||||
msgstr "defnyddwyr"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
msgstr[3] ""
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
msgstr[3] ""
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr ""
|
||||
|
||||
msgid "Your password can't be too similar to your other personal information."
|
||||
msgstr ""
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr ""
|
||||
|
||||
msgid "Your password can't be a commonly used password."
|
||||
msgstr ""
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr ""
|
||||
|
||||
msgid "Your password can't be entirely numeric."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "Ailosod cyfrinar ar %(site_name)s"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Allgofnodwyd"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "Ailosod cyfrinair"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "Rhowch gyfrinair newydd"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "Ailosod y cyfrinair yn aflwyddiannus"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "Cwblhawyd ailosod y cyfrinair"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "Newid cyfrinair"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "Newid cyfrinair yn llwyddianus"
|
Binary file not shown.
@ -0,0 +1,309 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Christian Joergensen <christian@gmta.info>, 2012
|
||||
# Erik Ramsgaard Wognsen <r4mses@gmail.com>, 2021,2023
|
||||
# Erik Ramsgaard Wognsen <r4mses@gmail.com>, 2013-2017,2019
|
||||
# Jannis Leidel <jannis@leidel.info>, 2011
|
||||
# 85794379431c3e0f5c85c0e72a78d45b_658ddd9, 2013
|
||||
# tiktuk <tiktuk@gmail.com>, 2018
|
||||
# valberg <valberg@orn.li>, 2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-03-17 03:19-0500\n"
|
||||
"PO-Revision-Date: 2023-04-25 08:09+0000\n"
|
||||
"Last-Translator: Erik Ramsgaard Wognsen <r4mses@gmail.com>, 2021,2023\n"
|
||||
"Language-Team: Danish (http://www.transifex.com/django/django/language/da/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: da\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Personlig information"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Rettigheder"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Vigtige datoer"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "Der findes ikke et %(name)s-objekt med primærnøgle %(key)r."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Adgangskoden blev ændret."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Skift adgangskode: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "Godkendelse og autorisation"
|
||||
|
||||
msgid "password"
|
||||
msgstr "adgangskode"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "sidst logget ind"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "Ingen adgangskode valgt."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "Ugyldigt adgangskodeformat eller hashing-algoritme."
|
||||
|
||||
msgid "The two password fields didn’t match."
|
||||
msgstr "De to adgangskoder var ikke identiske."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Adgangskode"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Bekræftelse af adgangskode"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "Indtast den samme adgangskode som før, for bekræftelse."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
"Rå adgangskoder gemmes ikke, så det er ikke muligt at se denne brugers "
|
||||
"adgangskode, men du kan ændre adgangskoden ved hjælp af <a href=\"{}\">denne "
|
||||
"formular</a>."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"Indtast venligst korrekt %(username)s og adgangskode. Bemærk at begge felter "
|
||||
"kan være versalfølsomme."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "Denne konto er inaktiv."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "E-mail"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Ny adgangskode"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Bekræftelse af ny adgangskode"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr ""
|
||||
"Din gamle adgangskode blev ikke indtastet korrekt. Indtast den venligst igen."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Gammel adgangskode"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Adgangskode (igen)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "algoritme"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "iterationer"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "salt"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "hash"
|
||||
|
||||
msgid "variety"
|
||||
msgstr "variation"
|
||||
|
||||
msgid "version"
|
||||
msgstr "version"
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr "hukommelsesomkostning"
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "tidsomkostning"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr "parallelitet"
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "work factor"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "tjeksum"
|
||||
|
||||
msgid "block size"
|
||||
msgstr "blokstørrelse"
|
||||
|
||||
msgid "name"
|
||||
msgstr "navn"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "indholdstype"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "kodenavn"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "rettighed"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "rettigheder"
|
||||
|
||||
msgid "group"
|
||||
msgstr "gruppe"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "grupper"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "superbrugerstatus"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"Bestemmer at denne bruger har alle rettigheder uden at tildele dem eksplicit."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"Grupperne som denne bruger hører til. En bruger får alle rettigheder givet "
|
||||
"til hver af hans/hendes grupper."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "rettigheder"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "Specifikke rettigheder for denne bruger."
|
||||
|
||||
msgid "username"
|
||||
msgstr "brugernavn"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr "Påkrævet. Højst 150 tegn. Kun bogstaver og cifre samt @/./+/-/_"
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "En bruger med dette brugernavn findes allerede."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "fornavn"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "efternavn"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "e-mail-adresse"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "admin-status"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "Bestemmer om brugeren kan logge ind på dette administrationswebsite."
|
||||
|
||||
msgid "active"
|
||||
msgstr "aktiv"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Bestemmer om brugeren skal behandles som aktiv. Fravælg dette frem for at "
|
||||
"slette en konto."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "dato for registrering"
|
||||
|
||||
msgid "user"
|
||||
msgstr "bruger"
|
||||
|
||||
msgid "users"
|
||||
msgstr "brugere"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
"Denne adgangskode er for kort. Den skal indeholde mindst %(min_length)d tegn."
|
||||
msgstr[1] ""
|
||||
"Denne adgangskode er for kort. Den skal indeholde mindst %(min_length)d tegn."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] "Din adgangskode skal indeholde mindst %(min_length)d tegn."
|
||||
msgstr[1] "Din adgangskode skal indeholde mindst %(min_length)d tegn."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "Din adgangskode minder for meget om din/dit %(verbose_name)s."
|
||||
|
||||
msgid "Your password can’t be too similar to your other personal information."
|
||||
msgstr "Din adgangskode må ikke minde om dine andre personlige oplysninger."
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "Denne adgangskode er for almindelig."
|
||||
|
||||
msgid "Your password can’t be a commonly used password."
|
||||
msgstr "Din adgangskode må ikke være en ofte anvendt adgangskode."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "Denne adgangskode er udelukkende numerisk."
|
||||
|
||||
msgid "Your password can’t be entirely numeric."
|
||||
msgstr "Din adgangskode må ikke være udelukkende numerisk."
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "Adgangskode nulstillet på %(site_name)s"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only unaccented lowercase a-z "
|
||||
"and uppercase A-Z letters, numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Indtast et gyldigt brugernavn. Denne værdi må kun indeholde små bogstaver a-"
|
||||
"z og store bogstaver A-Z uden accenter, samt cifre og tegnene @/./+/-/_."
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Indtast et gyldigt brugernavn. Denne værdi må kun indeholde bogstaver, cifre "
|
||||
"og tegnene @/./+/-/_."
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Logget ud"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "Nulstilling af adgangskode"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "Nulstilling af kodeord sendt"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "Indtast ny adgangskode"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "Adgangskoden blev ikke nulstillet"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "Nulstilling af adgangskode fuldført"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "Ændring af adgangskode"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "Adgangskoden blev ændret"
|
Binary file not shown.
@ -0,0 +1,318 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# André Hagenbruch, 2011
|
||||
# Florian Apolloner <florian@apolloner.eu>, 2012
|
||||
# Florian Apolloner <florian@apolloner.eu>, 2021,2023
|
||||
# jnns, 2013
|
||||
# Jannis Leidel <jannis@leidel.info>, 2013-2017,2020,2023
|
||||
# jnns, 2016
|
||||
# Jens Neuhaus <kontakt@jensneuhaus.de>, 2016
|
||||
# Markus Holtermann <info@markusholtermann.eu>, 2023
|
||||
# Markus Holtermann <info@markusholtermann.eu>, 2013,2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-03-17 03:19-0500\n"
|
||||
"PO-Revision-Date: 2023-04-25 08:09+0000\n"
|
||||
"Last-Translator: Jannis Leidel <jannis@leidel.info>, 2013-2017,2020,2023\n"
|
||||
"Language-Team: German (http://www.transifex.com/django/django/language/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: de\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Persönliche Informationen"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Berechtigungen"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Wichtige Daten"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "%(name)s-Objekt mit Primärschlüssel %(key)r ist nicht vorhanden."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Passwort erfolgreich geändert."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Passwort ändern: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "Authentifizierung und Autorisierung"
|
||||
|
||||
msgid "password"
|
||||
msgstr "Passwort"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "Letzte Anmeldung"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "Kein Passwort gesetzt."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "Ungültiges Passwortformat oder unbekannter Hashing-Algorithmus."
|
||||
|
||||
msgid "The two password fields didn’t match."
|
||||
msgstr "Die beiden Passwörter sind nicht identisch."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Passwort"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Passwort bestätigen"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "Bitte das selbe Passwort zur Bestätigung erneut eingeben."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
"Die Passwörter werden nicht im Klartext gespeichert und können daher nicht "
|
||||
"dargestellt, sondern nur mit <a href=\"{}\">diesem Formular</a> geändert "
|
||||
"werden."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"Bitte %(username)s und Passwort eingeben. Beide Felder berücksichtigen die "
|
||||
"Groß-/Kleinschreibung."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "Dieser Benutzer ist inaktiv."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "E-Mail-Adresse"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Neues Passwort"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Neues Passwort bestätigen"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr "Das alte Passwort war falsch. Bitte neu eingeben."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Altes Passwort"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Passwort (wiederholen)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "Algorithmus"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "Wiederholungen"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "Salt"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "Hash"
|
||||
|
||||
msgid "variety"
|
||||
msgstr "Vielfalt"
|
||||
|
||||
msgid "version"
|
||||
msgstr "Version"
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr "Speicherbedarf"
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "Zeitbedarf"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr "Parallelität"
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "Arbeitsfaktor"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "Prüfsumme"
|
||||
|
||||
msgid "block size"
|
||||
msgstr "Blockgröße"
|
||||
|
||||
msgid "name"
|
||||
msgstr "Name"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "Inhaltstyp"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "Codename"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "Berechtigung"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "Berechtigungen"
|
||||
|
||||
msgid "group"
|
||||
msgstr "Gruppe"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "Gruppen"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "Administrator-Status"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"Legt fest, dass der Benutzer alle Berechtigungen hat, ohne diese einzeln "
|
||||
"zuweisen zu müssen."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"Die Gruppen, denen der Benutzer angehört. Ein Benutzer bekommt alle "
|
||||
"Berechtigungen dieser Gruppen."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "Berechtigungen"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "Spezifische Berechtigungen für diesen Benutzer."
|
||||
|
||||
msgid "username"
|
||||
msgstr "Benutzername"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr ""
|
||||
"Erforderlich. 150 Zeichen oder weniger. Nur Buchstaben, Ziffern und @/./+/-/"
|
||||
"_."
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Dieser Benutzername ist bereits vergeben."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "Vorname"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "Nachname"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "E-Mail-Adresse"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "Mitarbeiter-Status"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr ""
|
||||
"Legt fest, ob sich der Benutzer an der Administrationsseite anmelden kann."
|
||||
|
||||
msgid "active"
|
||||
msgstr "Aktiv"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Legt fest, ob dieser Benutzer aktiv ist. Kann deaktiviert werden, anstatt "
|
||||
"Benutzer zu löschen."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "Mitglied seit"
|
||||
|
||||
msgid "user"
|
||||
msgstr "Benutzer"
|
||||
|
||||
msgid "users"
|
||||
msgstr "Benutzer"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
"Dieses Passwort ist zu kurz. Es muss mindestens %(min_length)d Zeichen "
|
||||
"enthalten."
|
||||
msgstr[1] ""
|
||||
"Dieses Passwort ist zu kurz. Es muss mindestens %(min_length)d Zeichen "
|
||||
"enthalten."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] "Das Passwort muss mindestens %(min_length)d Zeichen enthalten."
|
||||
msgstr[1] "Das Passwort muss mindestens %(min_length)d Zeichen enthalten."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "Das Passwort ist zu ähnlich zu %(verbose_name)s."
|
||||
|
||||
msgid "Your password can’t be too similar to your other personal information."
|
||||
msgstr ""
|
||||
"Das Passwort darf nicht zu ähnlich zu anderen persönlichen Informationen "
|
||||
"sein."
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "Dieses Passwort ist zu üblich."
|
||||
|
||||
msgid "Your password can’t be a commonly used password."
|
||||
msgstr "Das Passwort darf nicht allgemein üblich sein."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "Dieses Passwort ist komplett numerisch. "
|
||||
|
||||
msgid "Your password can’t be entirely numeric."
|
||||
msgstr "Das Passwort darf nicht komplett aus Ziffern bestehen."
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "Passwort auf %(site_name)s zurücksetzen"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only unaccented lowercase a-z "
|
||||
"and uppercase A-Z letters, numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Bitte einen gültigen Benutzernamen eingeben, bestehend aus kleinen und "
|
||||
"großen Buchstaben (A-Z, a-z, ohne Sonderzeichen), Ziffern und @/./+/-/_."
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Bitte einen gültigen Benutzernamen eingeben, bestehend aus Buchstaben, "
|
||||
"Ziffern und @/./+/-/_."
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Abgemeldet"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "Passwort zurücksetzen"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "E-Mail zum Passwort zurücksetzen abgesendet"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "Neues Passwort eingeben"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "Passwort nicht erfolgreich zurückgesetzt"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "Passwort zurücksetzen abgeschlossen"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "Passwort ändern"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "Passwort erfolgreich geändert"
|
Binary file not shown.
@ -0,0 +1,320 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Michael Wolf <milupo@sorbzilla.de>, 2016-2017,2020-2021,2023
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-03-17 03:19-0500\n"
|
||||
"PO-Revision-Date: 2023-04-25 08:09+0000\n"
|
||||
"Last-Translator: Michael Wolf <milupo@sorbzilla.de>, "
|
||||
"2016-2017,2020-2021,2023\n"
|
||||
"Language-Team: Lower Sorbian (http://www.transifex.com/django/django/"
|
||||
"language/dsb/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: dsb\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || "
|
||||
"n%100==4 ? 2 : 3);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Wósobinske informacije"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Pšawa"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Wažne daty"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "Objekt %(name)s z primarnym klucom %(key)r njeeksistěrujo."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Gronidło jo se změniło."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Gronidło změniś: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "Awtentifikacija a awtorizacija"
|
||||
|
||||
msgid "password"
|
||||
msgstr "gronidło"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "slědne pśizjawjenje"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "Žedno gronidło nastajone."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "Njepłaśiwy gronidłowy format abo njeznaty kontrolny algoritmus."
|
||||
|
||||
msgid "The two password fields didn’t match."
|
||||
msgstr "Dwě gronidlowej póli njejstej jadnakej."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Gronidło"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Gronidłowe wobkšuśenje"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "Zapódajśo to samske gronidło, za pśespytanje."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
"Grube gronidła se njeskładuju, togodla njejo móžno, gronidło wužywarja "
|
||||
"wiźeś, ale móžośo gronidło z pomocu <a href=\"{}\">toś togo formulara</a> "
|
||||
"změniś."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"Pšosym zapódajśo pšawe %(username)s a gronidło. Źiwajśo na to, až wobej póli "
|
||||
"móžotej mjazy wjeliko- a małopisanim rozeznawaś."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "Toś to konto jo inaktiwne."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "E-mail"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Nowe gronidło"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Wobkšuśenje nowego gronidła"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr ""
|
||||
"Wašo stare gronidło jo se wopak zapódało. Pšosym zapódajśo jo hyšći raz."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Stare gronidło"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Gronidło (znowego)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "algoritmus"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "wóspjetowanja"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "sol"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "hash"
|
||||
|
||||
msgid "variety"
|
||||
msgstr "warianta"
|
||||
|
||||
msgid "version"
|
||||
msgstr "wersija"
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr "składowa pśetrjeba"
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "casowa pśetrjeba"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr "paralelizm"
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "źěłowy faktor"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "kontrolna suma"
|
||||
|
||||
msgid "block size"
|
||||
msgstr "blokowa wjelikosć"
|
||||
|
||||
msgid "name"
|
||||
msgstr "mě"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "wopśimjeśowy typ"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "kodowe mě"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "pšawo"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "pšawa"
|
||||
|
||||
msgid "group"
|
||||
msgstr "kupka"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "kupki"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "status superwužywarja"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"Wóznamjenijo, lěc toś ten wužywaŕ ma wšykne pšawa bźez togo, aby mógał je "
|
||||
"pśipokazaś."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"Kupki, ku kótarymž toś ten wužywaŕ słuša. Wužywaŕ dóstanjo wšykne pšawa, "
|
||||
"kótarež jomu kupki dawaju."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "wužywarske pšawa"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "Wěste pšawa za toś togo wužywarja."
|
||||
|
||||
msgid "username"
|
||||
msgstr "wužywarske mě"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr "Trěbne. 150 znamuškow abo mjenjej. Jano pismiki, cyfry a @/./+/-/_."
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Wužywaŕ z toś tym wužywarskim mjenim južo eksistěrujo."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "pśedmě"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "familijowe mě"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "e-mailowa adresa"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "personalny status"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr ""
|
||||
"Wóznamjenijo, lěc wužywaŕ móžo se pla administratorowego sedła pśizjawiś."
|
||||
|
||||
msgid "active"
|
||||
msgstr "aktiwny"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Wóznamjenijo, lěc deje z toś tym wužywarjom ako z aktiwnym wobchadás. "
|
||||
"Znjemóžniśo to město togo, aby konta wulašował."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "cłonk wót"
|
||||
|
||||
msgid "user"
|
||||
msgstr "wužywaŕ"
|
||||
|
||||
msgid "users"
|
||||
msgstr "wužywarje"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
"Toś to gronidło jo pśekrotke. Musy nanejmjenjej %(min_length)d znamuško "
|
||||
"wopśimowaś."
|
||||
msgstr[1] ""
|
||||
"Toś to gronidło jo pśekrotke. Musy nanejmjenjej %(min_length)d znamušce "
|
||||
"wopśimowaś."
|
||||
msgstr[2] ""
|
||||
"Toś to gronidło jo pśekrotke. Musy nanejmjenjej %(min_length)d znamuška "
|
||||
"wopśimowaś."
|
||||
msgstr[3] ""
|
||||
"Toś to gronidło jo pśekrotke. Musy nanejmjenjej %(min_length)d znamuškow "
|
||||
"wopśimowaś."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] "Wašo gronidło musy nanejmjenjej %(min_length)d znamuško wopśimowaś."
|
||||
msgstr[1] "Wašo gronidło musy nanejmjenjej %(min_length)d znamušce wopśimowaś."
|
||||
msgstr[2] "Wašo gronidło musy nanejmjenjej %(min_length)d znamuška wopśimowaś."
|
||||
msgstr[3] ""
|
||||
"Wašo gronidło musy nanejmjenjej %(min_length)d znamuškow wopśimowaś."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "Gronidło jo na %(verbose_name)s pśepódobne."
|
||||
|
||||
msgid "Your password can’t be too similar to your other personal information."
|
||||
msgstr "Wašo gronidło njesmějo na waše druge wósobinske daty pśepódobne byś."
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "Toś to gronidło jo pśepowšykne."
|
||||
|
||||
msgid "Your password can’t be a commonly used password."
|
||||
msgstr "Wašo gronidło njesmějo cesto wužywane gronidło byś."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "Toś to gronidło jo cele numeriske."
|
||||
|
||||
msgid "Your password can’t be entirely numeric."
|
||||
msgstr "Wašo gronidło njesmějo cele numeriske byś."
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "Slědkstajenje gronidła na %(site_name)s"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only unaccented lowercase a-z "
|
||||
"and uppercase A-Z letters, numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Zapódajśo płaśiwe wužywaŕske mě. Toś ta gódnota smějo jano małomismiki a-z a "
|
||||
"wjelikopismiki A-Z bźez diakritiskich znamuškow, licby a znamuška @/./+/-/_ "
|
||||
"wopśimowaś."
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Zapódajśo płaśiwe wužywarske mě. Toś ta gódnota smějo jano pismiki, licby a "
|
||||
"znamuška @/./+/-/_ wopśimowaś."
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Wótzjawjony"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "Slědkstajenje gronidła"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "Slědkstajenje gronidła wótpósłane"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "Zapódajśo nowe gronidło"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "Slědkstajenje gronidła njejo se raźiło"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "Slědkstajenje gronidła dokóńcone"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "Změnjenje gronidła"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "Gronidło jo se wuspěšnje změniło"
|
Binary file not shown.
@ -0,0 +1,320 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Apostolis Bessas <mpessas+txc@transifex.com>, 2013
|
||||
# Claude Paroz <claude@2xlibre.net>, 2017
|
||||
# Dimitris Glezos <glezos@transifex.com>, 2011-2012
|
||||
# Giannis Meletakis <meletakis@gmail.com>, 2015
|
||||
# glogiotatidis <seadog@sealabs.net>, 2011
|
||||
# Jannis Leidel <jannis@leidel.info>, 2011
|
||||
# Nick Mavrakis <mavrakis.n@gmail.com>, 2018
|
||||
# Pãnoș <panos.laganakos@gmail.com>, 2014
|
||||
# Pãnoș <panos.laganakos@gmail.com>, 2016
|
||||
# Serafeim Papastefanos <spapas@gmail.com>, 2021
|
||||
# Yorgos Pagles <y.pagles@gmail.com>, 2011
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-09-21 10:22+0200\n"
|
||||
"PO-Revision-Date: 2021-09-22 09:22+0000\n"
|
||||
"Last-Translator: Transifex Bot <>\n"
|
||||
"Language-Team: Greek (http://www.transifex.com/django/django/language/el/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: el\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Προσωπικές πληροφορίες"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Δικαιώματα"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Σημαντικές ημερομηνίες"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "Το αντικείμενο %(name)s με πρωτεύον κλειδί %(key)r δεν υπάρχει."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Το συνθηματικό αλλάχτηκε με επιτυχία."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Αλλαγή συνθηματικού: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "Πιστοποίηση και Εξουσιοδότηση"
|
||||
|
||||
msgid "password"
|
||||
msgstr "συνθηματικό"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "τελευταία σύνδεση"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "Δεν έχει τεθεί συνθηματικό."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "Μη έγκυρη μορφή συνθηματικού ή άγνωστος αλγόριθμος hashing."
|
||||
|
||||
msgid "The two password fields didn’t match."
|
||||
msgstr "Τα δύο πεδία κωδικών δεν ταιριάζουν."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Συνθηματικό"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Επιβεβαίωση συνθηματικού"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "Εισάγετε το ίδιο συνθηματικό όπως πρίν, για επιβεβαίωση."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
"Οι ακατέργαστοι κωδικοί δεν αποθηκεύονται, οπότε δεν υπάρχει τρόπος να δείτε "
|
||||
"τον κωδικό αυτού του χρήστη, αλλά μπορείτε να τον αλλάξετε χρησιμοποιώντας "
|
||||
"<a href=\"{}\">αυτή τη φόρμα</a>."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"Παρακαλώ εισάγετε ένα σωστό %(username)s και κωδικό. Σημειωτέον ότι και τα "
|
||||
"δύο πεδία κάνουν διάκριση μεταξύ πεζών-κεφαλαίων."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "Αυτός ο λογαριασμός είναι ανενεργός."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "Email"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Νέο συνθηματικό"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Επιβεβαίωση νέου συνθηματικού"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr "Το παλιό συνθηματικό σας δόθηκε λανθασμένα. Παρακαλώ δοκιμάστε ξανά."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Παλιό συνθηματικό"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Συνθηματικό (ξανά)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "αλγόριθμος"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "Επαναλήψεις"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "salt"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "hash"
|
||||
|
||||
msgid "variety"
|
||||
msgstr "ποικιλία"
|
||||
|
||||
msgid "version"
|
||||
msgstr "έκδοση"
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr "κόστος μνήμης"
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "χρονικό κόστος"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr "παραλληλισμός"
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "work factor"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "checksum"
|
||||
|
||||
msgid "block size"
|
||||
msgstr ""
|
||||
|
||||
msgid "name"
|
||||
msgstr "όνομα"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "τύπος περιεχομένου"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "κωδικό όνομα"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "δικαίωμα"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "διακαιώματα"
|
||||
|
||||
msgid "group"
|
||||
msgstr "ομάδα"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "ομάδες"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "κατάσταση υπερχρήστη"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"Υποδηλώνει ότι ο συγκεκριμένος χρήστης έχει όλα τα δικαιώματα χωρίς να "
|
||||
"χρειάζεται να τα παραχωρήσετε ξεχωριστά."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"Οι ομάδες που ανοίκει ο χρήστης. Ένας χρήστης θα έχει όλες τις άδειες που "
|
||||
"έχουν δωθεί σε κάθε μια από τις ομάδες."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "δικαιώματα χρήστη"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "Συγκεκριμένα δικαιώματα για αυτόν τον χρήστη."
|
||||
|
||||
msgid "username"
|
||||
msgstr "όνομα χρήστη"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr ""
|
||||
"Απαραίτητο. 150 ή λιγότερους χαρακτήρες. Μόνο γράμματα, ψηφία και @/./+/-/_."
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Υπάρχει ήδη ένας χρήστης με αυτό το όνομα."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "όνομα"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "επώνυμο"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "διεύθυνση email"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "Κατάσταση προσωπικού"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "Ορίζει αν ο χρήστης μπορεί να συνδεθεί στο χώρο διαχείρισης."
|
||||
|
||||
msgid "active"
|
||||
msgstr "ενεργό"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Υποδηλώνει αν ο συγκεκριμένος χρήστης μπορεί να θεωρηθεί ενεργός. Προτιμήστε "
|
||||
"την επεπιλογή αυτής της επιλογής αντί του να πραγματοποιήσετε διαγραφή του "
|
||||
"χρήστη."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "ημερομηνία ένταξης"
|
||||
|
||||
msgid "user"
|
||||
msgstr "χρήστης"
|
||||
|
||||
msgid "users"
|
||||
msgstr "χρήστες"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
"Αυτό το συνθηματικό είναι πολύ μικρό. Πρέπει να περιέχει τουλάχιστον "
|
||||
"%(min_length)d χαρακτήρα."
|
||||
msgstr[1] ""
|
||||
"Αυτό το συνθηματικό είναι πολύ μικρό. Πρέπει να περιέχει τουλάχιστον "
|
||||
"%(min_length)d χαρακτήρες."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] ""
|
||||
"Το συνθηματικό σας πρέπει να έχει τουλάχιστον %(min_length)d χαρακτήρα."
|
||||
msgstr[1] ""
|
||||
"Το συνθηματικό σας πρέπει να έχει τουλάχιστον %(min_length)d χαρακτήρες."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "Το συνθηματικό μοιάζει πολύ με το %(verbose_name)s."
|
||||
|
||||
msgid "Your password can’t be too similar to your other personal information."
|
||||
msgstr ""
|
||||
"Ο κωδικός σας δεν μπορεί να μοιάζει τόσο με τα άλλα προσωπικά σας στοιχεία."
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "Πολύ κοινό συνθηματικό."
|
||||
|
||||
msgid "Your password can’t be a commonly used password."
|
||||
msgstr "Ο κωδικός σας δεν μπορεί να είναι τόσο συνηθισμένος."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "Αυτό το συνθηματικό αποτελείται μόνο απο αριθμούς."
|
||||
|
||||
msgid "Your password can’t be entirely numeric."
|
||||
msgstr "Ο κωδικός σας δε μπορεί να αποτελείται μόνον από αριθμούς."
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "Επαναφορά συνθηματικού για το %(site_name)s "
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Εισάγετε ένα έγκυρο όνομα χρήστη. Θα πρέπει να περιέχει μόνο Αγγλικούς "
|
||||
"χαρακτήρες, αριθμούς και τους χαρακτήρες @/./+/-/_."
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Εισάγετε ένα έγκυρο όνομα χρήστη. Θα πρέπει να περιέχει μόνο γράμματα, "
|
||||
"αριθμούς και τους χαρακτήρες @/./+/-/_ characters."
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Έγινε αποσύνδεση"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "Επαναφορά συνθηματικού"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "Η επαναφορά συνθηματικού εστάλει"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "Εισάγετε νεό συνθηματικό"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "Ανεπιτυχής επαναφορά κωδικού"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "Ολοκλήρωση επαναφοράς συνθηματικού"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "Αλλαγή συνθηματικού"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "Επιτυχής αλλαγή συνθηματικού"
|
Binary file not shown.
@ -0,0 +1,375 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-03-17 03:19-0500\n"
|
||||
"PO-Revision-Date: 2010-05-13 15:35+0200\n"
|
||||
"Last-Translator: Django team\n"
|
||||
"Language-Team: English <en@li.org>\n"
|
||||
"Language: en\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: contrib/auth/admin.py:49
|
||||
msgid "Personal info"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/admin.py:51
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/admin.py:62
|
||||
msgid "Important dates"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/admin.py:156
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/admin.py:168
|
||||
msgid "Password changed successfully."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/admin.py:189
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/apps.py:16
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/base_user.py:58
|
||||
msgid "password"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/base_user.py:59
|
||||
msgid "last login"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/forms.py:41
|
||||
msgid "No password set."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/forms.py:49
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/forms.py:91 contrib/auth/forms.py:379 contrib/auth/forms.py:457
|
||||
msgid "The two password fields didn’t match."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/forms.py:94 contrib/auth/forms.py:166 contrib/auth/forms.py:201
|
||||
#: contrib/auth/forms.py:461
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/forms.py:100
|
||||
msgid "Password confirmation"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/forms.py:103 contrib/auth/forms.py:472
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/forms.py:168
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/forms.py:208
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/forms.py:211
|
||||
msgid "This account is inactive."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/forms.py:276
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/forms.py:382
|
||||
msgid "New password"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/forms.py:388
|
||||
msgid "New password confirmation"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/forms.py:425
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/forms.py:429
|
||||
msgid "Old password"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/forms.py:469
|
||||
msgid "Password (again)"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/hashers.py:327 contrib/auth/hashers.py:420
|
||||
#: contrib/auth/hashers.py:510 contrib/auth/hashers.py:605
|
||||
#: contrib/auth/hashers.py:665 contrib/auth/hashers.py:707
|
||||
#: contrib/auth/hashers.py:765 contrib/auth/hashers.py:820
|
||||
#: contrib/auth/hashers.py:878
|
||||
msgid "algorithm"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/hashers.py:328
|
||||
msgid "iterations"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/hashers.py:329 contrib/auth/hashers.py:426
|
||||
#: contrib/auth/hashers.py:512 contrib/auth/hashers.py:609
|
||||
#: contrib/auth/hashers.py:666 contrib/auth/hashers.py:708
|
||||
#: contrib/auth/hashers.py:879
|
||||
msgid "salt"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/hashers.py:330 contrib/auth/hashers.py:427
|
||||
#: contrib/auth/hashers.py:610 contrib/auth/hashers.py:667
|
||||
#: contrib/auth/hashers.py:709 contrib/auth/hashers.py:766
|
||||
#: contrib/auth/hashers.py:821 contrib/auth/hashers.py:880
|
||||
msgid "hash"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/hashers.py:421
|
||||
msgid "variety"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/hashers.py:422
|
||||
msgid "version"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/hashers.py:423
|
||||
msgid "memory cost"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/hashers.py:424
|
||||
msgid "time cost"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/hashers.py:425 contrib/auth/hashers.py:608
|
||||
msgid "parallelism"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/hashers.py:511 contrib/auth/hashers.py:606
|
||||
msgid "work factor"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/hashers.py:513
|
||||
msgid "checksum"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/hashers.py:607
|
||||
msgid "block size"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/models.py:62 contrib/auth/models.py:116
|
||||
msgid "name"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/models.py:66
|
||||
msgid "content type"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/models.py:68
|
||||
msgid "codename"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/models.py:73
|
||||
msgid "permission"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/models.py:74 contrib/auth/models.py:119
|
||||
msgid "permissions"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/models.py:126
|
||||
msgid "group"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/models.py:127 contrib/auth/models.py:258
|
||||
msgid "groups"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/models.py:249
|
||||
msgid "superuser status"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/models.py:252
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/models.py:261
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/models.py:269
|
||||
msgid "user permissions"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/models.py:271
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/models.py:345
|
||||
msgid "username"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/models.py:349
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/models.py:353
|
||||
msgid "A user with that username already exists."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/models.py:356
|
||||
msgid "first name"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/models.py:357
|
||||
msgid "last name"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/models.py:358
|
||||
msgid "email address"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/models.py:360
|
||||
msgid "staff status"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/models.py:362
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/models.py:365
|
||||
msgid "active"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/models.py:368
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/models.py:372
|
||||
msgid "date joined"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/models.py:381
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/models.py:382
|
||||
msgid "users"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/password_validation.py:111
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: contrib/auth/password_validation.py:123
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: contrib/auth/password_validation.py:206
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/password_validation.py:213
|
||||
msgid "Your password can’t be too similar to your other personal information."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/password_validation.py:245
|
||||
msgid "This password is too common."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/password_validation.py:250
|
||||
msgid "Your password can’t be a commonly used password."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/password_validation.py:261
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/password_validation.py:266
|
||||
msgid "Your password can’t be entirely numeric."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/templates/registration/password_reset_subject.txt:2
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/validators.py:12
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only unaccented lowercase a-z "
|
||||
"and uppercase A-Z letters, numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/validators.py:22
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/views.py:178
|
||||
msgid "Logged out"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/views.py:237
|
||||
msgid "Password reset"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/views.py:264
|
||||
msgid "Password reset sent"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/views.py:274
|
||||
msgid "Enter new password"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/views.py:346
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/views.py:355
|
||||
msgid "Password reset complete"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/views.py:367
|
||||
msgid "Password change"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/auth/views.py:390
|
||||
msgid "Password change successful"
|
||||
msgstr ""
|
Binary file not shown.
@ -0,0 +1,306 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Tom Fifield <tom@tomfifield.net>, 2014
|
||||
# Tom Fifield <tom@tomfifield.net>, 2021
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-09-21 10:22+0200\n"
|
||||
"PO-Revision-Date: 2021-09-22 09:22+0000\n"
|
||||
"Last-Translator: Transifex Bot <>\n"
|
||||
"Language-Team: English (Australia) (http://www.transifex.com/django/django/"
|
||||
"language/en_AU/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: en_AU\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Personal info"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Permissions"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Important dates"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "%(name)s object with primary key %(key)r does not exist."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Password changed successfully."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Change password: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "Authentication and Authorisation"
|
||||
|
||||
msgid "password"
|
||||
msgstr "password"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "last login"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "No password set."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "Invalid password format or unknown hashing algorithm."
|
||||
|
||||
msgid "The two password fields didn’t match."
|
||||
msgstr "The two password fields didn’t match."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Password"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Password confirmation"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "Enter the same password as before, for verification."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "This account is inactive."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "Email"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "New password"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "New password confirmation"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr "Your old password was entered incorrectly. Please enter it again."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Old password"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Password (again)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "algorithm"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "iterations"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "salt"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "hash"
|
||||
|
||||
msgid "variety"
|
||||
msgstr "variety"
|
||||
|
||||
msgid "version"
|
||||
msgstr "version"
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr "memory cost"
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "time cost"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr "parallelism"
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "work factor"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "checksum"
|
||||
|
||||
msgid "block size"
|
||||
msgstr ""
|
||||
|
||||
msgid "name"
|
||||
msgstr "name"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "content type"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "codename"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "permission"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "permissions"
|
||||
|
||||
msgid "group"
|
||||
msgstr "group"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "groups"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "superuser status"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "user permissions"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "Specific permissions for this user."
|
||||
|
||||
msgid "username"
|
||||
msgstr "username"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "A user with that username already exists."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "first name"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "last name"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "email address"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "staff status"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "Designates whether the user can log into this admin site."
|
||||
|
||||
msgid "active"
|
||||
msgstr "active"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "date joined"
|
||||
|
||||
msgid "user"
|
||||
msgstr "user"
|
||||
|
||||
msgid "users"
|
||||
msgstr "users"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgstr[1] ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] "Your password must contain at least %(min_length)d character."
|
||||
msgstr[1] "Your password must contain at least %(min_length)d characters."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "The password is too similar to the %(verbose_name)s."
|
||||
|
||||
msgid "Your password can’t be too similar to your other personal information."
|
||||
msgstr "Your password can’t be too similar to your other personal information."
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "This password is too common."
|
||||
|
||||
msgid "Your password can’t be a commonly used password."
|
||||
msgstr "Your password can’t be a commonly used password."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "This password is entirely numeric."
|
||||
|
||||
msgid "Your password can’t be entirely numeric."
|
||||
msgstr "Your password can’t be entirely numeric."
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "Password reset on %(site_name)s"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Logged out"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "Password reset"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "Password reset sent"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "Enter new password"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "Password reset unsuccessful"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "Password reset complete"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "Password change"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "Password change successful"
|
Binary file not shown.
@ -0,0 +1,289 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# jon_atkinson <jon@jonatkinson.co.uk>, 2011-2012
|
||||
# Ross Poulton <ross@rossp.org>, 2012
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-24 13:46+0200\n"
|
||||
"PO-Revision-Date: 2017-09-24 14:24+0000\n"
|
||||
"Last-Translator: Jannis Leidel <jannis@leidel.info>\n"
|
||||
"Language-Team: English (United Kingdom) (http://www.transifex.com/django/"
|
||||
"django/language/en_GB/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: en_GB\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Personal info"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Permissions"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Important dates"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr ""
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Password changed successfully."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Change password: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr ""
|
||||
|
||||
msgid "password"
|
||||
msgstr "password"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "last login"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr ""
|
||||
|
||||
msgid "The two password fields didn't match."
|
||||
msgstr "The two password fields didn't match."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Password"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Password confirmation"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user's "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "This account is inactive."
|
||||
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
msgid "New password"
|
||||
msgstr "New password"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "New password confirmation"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr "Your old password was entered incorrectly. Please enter it again."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Old password"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Password (again)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "algorithm"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "iterations"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "salt"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "hash"
|
||||
|
||||
msgid "variety"
|
||||
msgstr ""
|
||||
|
||||
msgid "version"
|
||||
msgstr ""
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr ""
|
||||
|
||||
msgid "time cost"
|
||||
msgstr ""
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr ""
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "work factor"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "checksum"
|
||||
|
||||
msgid "name"
|
||||
msgstr "name"
|
||||
|
||||
msgid "content type"
|
||||
msgstr ""
|
||||
|
||||
msgid "codename"
|
||||
msgstr "codename"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "permission"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "permissions"
|
||||
|
||||
msgid "group"
|
||||
msgstr "group"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "groups"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "superuser status"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "user permissions"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr ""
|
||||
|
||||
msgid "username"
|
||||
msgstr "username"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr ""
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "A user with that username already exists."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "first name"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "last name"
|
||||
|
||||
msgid "email address"
|
||||
msgstr ""
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "staff status"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "Designates whether the user can log into this admin site."
|
||||
|
||||
msgid "active"
|
||||
msgstr "active"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "date joined"
|
||||
|
||||
msgid "user"
|
||||
msgstr "user"
|
||||
|
||||
msgid "users"
|
||||
msgstr "users"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr ""
|
||||
|
||||
msgid "Your password can't be too similar to your other personal information."
|
||||
msgstr ""
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr ""
|
||||
|
||||
msgid "Your password can't be a commonly used password."
|
||||
msgstr ""
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr ""
|
||||
|
||||
msgid "Your password can't be entirely numeric."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "Password reset on %(site_name)s"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Logged out"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password change"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr ""
|
Binary file not shown.
@ -0,0 +1,310 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Batist D 🐍 <baptiste+transifex@darthenay.fr>, 2012-2013
|
||||
# Batist D 🐍 <baptiste+transifex@darthenay.fr>, 2013-2019
|
||||
# Matthieu Desplantes <matmututu@gmail.com>, 2021
|
||||
# Meiyer <interdist+translations@gmail.com>, 2022
|
||||
# Robin van der Vliet <info@robinvandervliet.com>, 2019
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-09-21 10:22+0200\n"
|
||||
"PO-Revision-Date: 2022-04-25 08:09+0000\n"
|
||||
"Last-Translator: Meiyer <interdist+translations@gmail.com>, 2022\n"
|
||||
"Language-Team: Esperanto (http://www.transifex.com/django/django/language/"
|
||||
"eo/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: eo\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Personaj informoj"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Permesoj"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Gravaj datoj"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "Objekto %(name)skun ĉefŝlosilo %(key)r ne ekzistas."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Pasvorto suksese ŝanĝita."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Ŝanĝi pasvorton: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "Aŭtentigo kaj rajtigo"
|
||||
|
||||
msgid "password"
|
||||
msgstr "pasvorto"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "lasta ensaluto"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "Neniu pasvorto agordita."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "Nevalida pasvorta formato, aŭ nekonata haketa algoritmo."
|
||||
|
||||
msgid "The two password fields didn’t match."
|
||||
msgstr "La du pasvortaj kampoj ne kongruas."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Pasvorto"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Pasvorta konfirmo"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "Entajpu la saman pasvorton kiel supre, por konfirmo."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
"La pasvortoj ne estas konservitaj en klara formo, do ne eblas vidi la "
|
||||
"pasvorton de ĉi tiu uzanto, sed vi povas ŝanĝi la pasvorton per <a "
|
||||
"href=\"{}\">ĉi tiu formularo</a>."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"Bonvolu enigi ĝustan %(username)sn kaj pasvorton. Notu, ke ambaŭ kampoj "
|
||||
"povas esti usklecodistingaj."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "Ĉi tiu konto ne estas aktiva."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "Retpoŝto"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Nova pasvorto"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Nova pasvorto por konfirmo"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr ""
|
||||
"Via malnova pasvorto estis tajpita malĝuste. Bonvolu denove entajpi ĝin."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Malnova pasvorto"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Pasvorto (denove)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "algoritmo"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "iteracioj"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "salo"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "haketo"
|
||||
|
||||
msgid "variety"
|
||||
msgstr "diverseco"
|
||||
|
||||
msgid "version"
|
||||
msgstr "versio"
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr "memor-kosto"
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "tempo-kosto"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr "paralelismo"
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "laborfaktoro"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "kontrolsumo"
|
||||
|
||||
msgid "block size"
|
||||
msgstr "blok-grandeco"
|
||||
|
||||
msgid "name"
|
||||
msgstr "nomo"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "enhava tipo"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "kodnomo"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "permeso"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "permesoj"
|
||||
|
||||
msgid "group"
|
||||
msgstr "grupo"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "grupoj"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "ĉefuzanta statuso"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"Indikas ke tiu ĉi uzanto havas ĉiujn permesojn, sen eksplicite atribui ilin."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"La grupoj al kiuj tiu ĉi uzanto apartenas. Uzanto akiros ĉiujn permesojn "
|
||||
"atribuitajn al ĉiu el tiuj grupoj."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "uzantaj permesoj"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "Specifaj permesoj por tiu ĉi uzanto."
|
||||
|
||||
msgid "username"
|
||||
msgstr "salutnomo"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr "Petita. 150 signoj aŭ malpli. Nur literoj, ciferoj kaj @/./+/-/_."
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Uzanto kun sama salutnomo jam ekzistas."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "persona nomo"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "familia nomo"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "retpoŝta adreso"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "personara statuso"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "Indikas ĉu la uzanto povas saluti en ĉi-tiu administranta retejo."
|
||||
|
||||
msgid "active"
|
||||
msgstr "aktiva"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Indikas ĉu la uzanto devus esti traktita kiel aktiva. Malmarku tion ĉi "
|
||||
"anstataŭ forigi kontojn."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "dato de aliĝo"
|
||||
|
||||
msgid "user"
|
||||
msgstr "uzanto"
|
||||
|
||||
msgid "users"
|
||||
msgstr "uzantoj"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
"Tiu pasvorto estas tro mallonga. Ĝi devas enhavi almenaŭ %(min_length)d "
|
||||
"signon."
|
||||
msgstr[1] ""
|
||||
"Tiu pasvorto estas tro mallonga. Ĝi devas enhavi almenaŭ %(min_length)d "
|
||||
"signojn."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] "Via pasvorto devas enhavi almenaŭ %(min_length)d signon."
|
||||
msgstr[1] "Via pasvorto devas enhavi almenaŭ %(min_length)d signojn."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "La pasvorto estas tro simila al la %(verbose_name)s."
|
||||
|
||||
msgid "Your password can’t be too similar to your other personal information."
|
||||
msgstr "Via pasvorto ne povas esti tro simila al viaj aliaj personaj informoj."
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "Tiu pasvorto estas tro kutima."
|
||||
|
||||
msgid "Your password can’t be a commonly used password."
|
||||
msgstr "Via pasvorto ne povas esti ofte uzata pasvorto."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "Tiu ĉi pasvorto konsistas nur el ciferoj."
|
||||
|
||||
msgid "Your password can’t be entirely numeric."
|
||||
msgstr "Via pasvorto ne povas konsisti nur el ciferoj."
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "Pasvorta rekomencigo ĉe %(site_name)s"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Enigu salutnomon en ĝusta formo. Ĉi tiu valoro povas enhavi nur "
|
||||
"sensupersignajn literojn, ciferojn kaj la signojn @/./+/-/_."
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Enigu salutnomon en ĝusta formo. Ĉi tiu valoro povas enhavi nur literojn, "
|
||||
"ciferojn kaj la signojn @/./+/-/_."
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Adiaŭita"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "Restarigo de pasvorto"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "Restarigo de pasvorto sendita"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "Enigu novan pasvorton"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "Restarigo de pasvorto malsukcesa"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "Restarigo de pasvorto plenumita"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "Pasvorta ŝanĝo"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "Pasvorto sukcese ŝanĝita"
|
Binary file not shown.
@ -0,0 +1,325 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# albertoalcolea <albertoalcolea@gmail.com>, 2014
|
||||
# Antoni Aloy <aaloy@apsl.net>, 2012-2013,2015-2017
|
||||
# e4db27214f7e7544f2022c647b585925_bb0e321, 2015-2016
|
||||
# e4db27214f7e7544f2022c647b585925_bb0e321, 2020
|
||||
# Ernesto Rico Schmidt <ernesto@rico-schmidt.name>, 2017
|
||||
# guillem <serra.guillem@gmail.com>, 2012
|
||||
# Igor Támara <igor@tamarapatino.org>, 2015
|
||||
# Jannis Leidel <jannis@leidel.info>, 2011
|
||||
# Josue Naaman Nistal Guerra <josuenistal@hotmail.com>, 2014
|
||||
# Leonardo J. Caballero G. <leonardocaballero@gmail.com>, 2011
|
||||
# Uriel Medina <urimeba511@gmail.com>, 2020-2021
|
||||
# Veronicabh <vero.blazher@gmail.com>, 2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-09-21 10:22+0200\n"
|
||||
"PO-Revision-Date: 2022-04-25 08:09+0000\n"
|
||||
"Last-Translator: Uriel Medina <urimeba511@gmail.com>, 2020-2021\n"
|
||||
"Language-Team: Spanish (http://www.transifex.com/django/django/language/"
|
||||
"es/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Información personal"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Permisos"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Fechas importantes"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "el objeto %(name)s con clave primaria %(key)r no existe."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "La contraseña se ha cambiado con éxito."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Cambiar contraseña: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "Autenticación y autorización"
|
||||
|
||||
msgid "password"
|
||||
msgstr "contraseña"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "último inicio de sesión"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "No se ha establecido la clave."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "Formato de clave incorrecto o algoritmo de hash desconocido."
|
||||
|
||||
msgid "The two password fields didn’t match."
|
||||
msgstr "Los dos campos de contraseña no coinciden."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Contraseña"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Contraseña (confirmación)"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "Para verificar, introduzca la misma contraseña anterior."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
"Las contraseñas no se almacenan en bruto, así que no hay manera de ver la "
|
||||
"contraseña del usuario, pero se puede cambiar la contraseña mediante <a "
|
||||
"href=\"{}\">este formulario</a>."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"Por favor, introduzca un %(username)s y clave correctos. Observe que ambos "
|
||||
"campos pueden ser sensibles a mayúsculas."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "Esta cuenta está inactiva."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "Correo electrónico"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Contraseña nueva"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Contraseña nueva (confirmación)"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr ""
|
||||
"Su contraseña antigua es incorrecta. Por favor, vuelva a introducirla. "
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Contraseña antigua"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Contraseña (de nuevo)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "algoritmo"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "iteraciones"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "salto"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "función resumen"
|
||||
|
||||
msgid "variety"
|
||||
msgstr "variedad"
|
||||
|
||||
msgid "version"
|
||||
msgstr "versión"
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr "coste de memoria"
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "coste de tiempo"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr "paralelismo"
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "factor trabajo"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "suma de verificación"
|
||||
|
||||
msgid "block size"
|
||||
msgstr "tamaño de bloque"
|
||||
|
||||
msgid "name"
|
||||
msgstr "nombre"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "tipo de contenido"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "nombre en código"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "permiso"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "permisos"
|
||||
|
||||
msgid "group"
|
||||
msgstr "grupo"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "grupos"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "estado de superusuario"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"Indica que este usuario tiene todos los permisos sin asignárselos "
|
||||
"explícitamente."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"Los grupos a los que pertenece este usuario. Un usuario tendrá todos los "
|
||||
"permisos asignados a cada uno de sus grupos."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "permisos de usuario"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "Permisos específicos para este usuario."
|
||||
|
||||
msgid "username"
|
||||
msgstr "nombre de usuario"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr ""
|
||||
"Requerido. 150 carácteres como máximo. Únicamente letras, dígitos y @/./+/-/"
|
||||
"_ "
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Ya existe un usuario con este nombre."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "nombre"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "apellidos"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "dirección de correo electrónico"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "es staff"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "Indica si el usuario puede entrar en este sitio de administración."
|
||||
|
||||
msgid "active"
|
||||
msgstr "activo"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Indica si el usuario debe ser tratado como activo. Desmarque esta opción en "
|
||||
"lugar de borrar la cuenta."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "fecha de alta"
|
||||
|
||||
msgid "user"
|
||||
msgstr "usuario"
|
||||
|
||||
msgid "users"
|
||||
msgstr "usuarios"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
"Esta contraseña es demasiado corta. Debe contener al menos %(min_length)d "
|
||||
"caracter."
|
||||
msgstr[1] ""
|
||||
"Esta contraseña es demasiado corta. Debe contener al menos %(min_length)d "
|
||||
"caracteres."
|
||||
msgstr[2] ""
|
||||
"Esta contraseña es demasiado corta. Debe contener al menos %(min_length)d "
|
||||
"caracteres."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] "Su contraseña debe contener al menos %(min_length)d caracter."
|
||||
msgstr[1] "Su contraseña debe contener al menos %(min_length)d caracteres."
|
||||
msgstr[2] "Su contraseña debe contener al menos %(min_length)d caracteres."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "La contraseña es demasiado similar a la de %(verbose_name)s."
|
||||
|
||||
msgid "Your password can’t be too similar to your other personal information."
|
||||
msgstr ""
|
||||
"Su contraseña no puede asemejarse tanto a su otra información personal."
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "Esta contraseña es demasiado común."
|
||||
|
||||
msgid "Your password can’t be a commonly used password."
|
||||
msgstr "Su contraseña no puede ser una clave utilizada comúnmente."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "Esta contraseña es completamente numérica."
|
||||
|
||||
msgid "Your password can’t be entirely numeric."
|
||||
msgstr "Su contraseña no puede ser completamente numérica."
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "Contraseña restablecida en %(site_name)s"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Introduza un nombre de usuario válido. Este valor puede contener únicamente "
|
||||
"letras inglesas, números y los caracteres @/./+/-/_ "
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Introduza un nombre de usuario válido. Este valor puede contener únicamente "
|
||||
"letras, números y los caracteres @/./+/-/_ "
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Sesión terminada"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "Restablecer contraseña"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "Restablecimiento de contraseña enviado"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "Escriba la nueva contraseña"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "Restablecimiento de contraseñas fallido"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "Restablecimiento de contraseña completado"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "Cambiar contraseña"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "Contraseña cambiada correctamente"
|
Binary file not shown.
@ -0,0 +1,314 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Jannis Leidel <jannis@leidel.info>, 2011
|
||||
# Ramiro Morales, 2013-2017,2019,2021
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-09-21 10:22+0200\n"
|
||||
"PO-Revision-Date: 2021-11-19 13:26+0000\n"
|
||||
"Last-Translator: Ramiro Morales\n"
|
||||
"Language-Team: Spanish (Argentina) (http://www.transifex.com/django/django/"
|
||||
"language/es_AR/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: es_AR\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Información personal"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Permisos"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Fechas importantes"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "No existe un objeto %(name)s con una clave primaria %(key)r."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Cambio de contraseña exitoso"
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Cambiar contraseña: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "Autenticación y Autorización"
|
||||
|
||||
msgid "password"
|
||||
msgstr "contraseña"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "último ingreso"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "No se ha establecido una contraseña."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "Formato de contraseña inválido o algoritmo de hashing desconocido."
|
||||
|
||||
msgid "The two password fields didn’t match."
|
||||
msgstr "Los dos campos de contraseñas no coinciden entre si."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Contraseña"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Confirmación de contraseña"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr ""
|
||||
"Introduzca la misma contraseña nuevamente, para poder verificar la misma."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
"El sistema no almacena las contraseñas originales por lo cual no es posible "
|
||||
"visualizar la contraseña de este usuario, pero puede modificarla usando <a "
|
||||
"href=\"{}\">este formulario</a>."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"Por favor introduzca un %(username)s y una contraseña correctos. Tenga en "
|
||||
"cuenta que ambos campos son sensibles a mayúsculas/minúsculas."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "Esta cuenta está inactiva."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "Email"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Contraseña nueva"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Confirmación de contraseña nueva"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr ""
|
||||
"La antigua contraseña introducida es incorrecta. Por favor introdúzcala "
|
||||
"nuevamente."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Contraseña antigua"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Contraseña (de nuevo)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "algoritmo"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "iteraciones"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "salt"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "hash"
|
||||
|
||||
msgid "variety"
|
||||
msgstr "variedad"
|
||||
|
||||
msgid "version"
|
||||
msgstr "versión"
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr "costo en memoria"
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "costo en tiempo"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr "paralelismo"
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "work factor"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "suma de verificación"
|
||||
|
||||
msgid "block size"
|
||||
msgstr "tamaño de bloque"
|
||||
|
||||
msgid "name"
|
||||
msgstr "nombre"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "tipo de contenido"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "nombre en código"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "permiso"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "permisos"
|
||||
|
||||
msgid "group"
|
||||
msgstr "grupo"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "grupos"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "es superusuario"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"Indica que este usuario posee todos los permisos sin que sea necesario "
|
||||
"asignarle los mismos en forma explícita."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"Grupos a los cuales pertenece este usuario. Un usuario obtiene todos los "
|
||||
"permisos otorgados a cada uno de los grupos a los cuales pertenece."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "permisos de usuario"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "Permisos específicos de este usuario"
|
||||
|
||||
msgid "username"
|
||||
msgstr "nombre de usuario"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr ""
|
||||
"Obligatorio. Longitud máxima de 150 caracteres. Solo puede estar formado por "
|
||||
"letras, números y los caracteres @/./+/-/_."
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Ya existe un usuario con ese nombre."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "nombre"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "apellido"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "Dirección de email"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "es staff"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "Indica si el usuario puede ingresar a este sitio de administración."
|
||||
|
||||
msgid "active"
|
||||
msgstr "activo"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Indica si el usuario debe ser tratado como un usuario activo. Desactive este "
|
||||
"campo en lugar de eliminar usuarios."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "fecha de creación"
|
||||
|
||||
msgid "user"
|
||||
msgstr "usuario"
|
||||
|
||||
msgid "users"
|
||||
msgstr "usuarios"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
"La contraseña es demasiado corta. Debe contener por lo menos %(min_length)d "
|
||||
"caracter."
|
||||
msgstr[1] ""
|
||||
"La contraseña es demasiado corta. Debe contener por lo menos %(min_length)d "
|
||||
"caracteres."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] "Su contraseña debe contener por lo menos %(min_length)d caracter."
|
||||
msgstr[1] "Su contraseña debe contener por lo menos %(min_length)d caracteres."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "La contraseña es muy similar a %(verbose_name)s."
|
||||
|
||||
msgid "Your password can’t be too similar to your other personal information."
|
||||
msgstr ""
|
||||
"Su contraseña no puede ser similar a otros componentes de su información "
|
||||
"personal."
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "La contraseña tiene un valor demasiado común."
|
||||
|
||||
msgid "Your password can’t be a commonly used password."
|
||||
msgstr "Su contraseña no puede ser una contraseña usada muy comúnmente."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "La contraseña está formada completamente por dígitos."
|
||||
|
||||
msgid "Your password can’t be entirely numeric."
|
||||
msgstr "Su contraseña no puede estar formada exclusivamente por números."
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "Reinicio de contraseña en %(site_name)s"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Introduzca un nombre de usuario válido. Este valor solo puede contener "
|
||||
"letras del alfabeto inglés, números y los caracteres @/./+/-/_."
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Introduzca un nombre de usuario válido. Este valor solo puede contener "
|
||||
"letras, números y los caracteres @/./+/-/_."
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Sesión cerrada"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "Reinicio de contraseña"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "Se ha enviado un email de reinicialización de contraseña"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "Introduzca nueva contraseña"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "Reinicio de contraseña fallido"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "Reinicio de contraseña completado"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "Cambio de contraseña"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "Cambio de contraseña exitoso"
|
Binary file not shown.
@ -0,0 +1,304 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# albertoalcolea <albertoalcolea@gmail.com>, 2014
|
||||
# Ernesto Avilés Vázquez <whippiii@gmail.com>, 2015
|
||||
# guillem <serra.guillem@gmail.com>, 2012
|
||||
# Igor Támara <igor@tamarapatino.org>, 2015
|
||||
# Jannis Leidel <jannis@leidel.info>, 2011
|
||||
# Josue Naaman Nistal Guerra <josuenistal@hotmail.com>, 2014
|
||||
# Leonardo J. Caballero G. <leonardocaballero@gmail.com>, 2011
|
||||
# Veronicabh <vero.blazher@gmail.com>, 2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-24 13:46+0200\n"
|
||||
"PO-Revision-Date: 2017-09-24 14:24+0000\n"
|
||||
"Last-Translator: Jannis Leidel <jannis@leidel.info>\n"
|
||||
"Language-Team: Spanish (Colombia) (http://www.transifex.com/django/django/"
|
||||
"language/es_CO/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: es_CO\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Información personal"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Permisos"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Fechas importantes"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "el objeto %(name)s con clave primaria %(key)r no existe."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "La contraseña se ha cambiado con éxito."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Cambiar contraseña: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "Autenticación y autorización"
|
||||
|
||||
msgid "password"
|
||||
msgstr "contraseña"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "último inicio de sesión"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "No se ha establecido la clave."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "Formato de clave incorrecto o algoritmo de hash desconocido."
|
||||
|
||||
msgid "The two password fields didn't match."
|
||||
msgstr "Los dos campos de contraseña no coinciden."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Contraseña"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Contraseña (confirmación)"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "Para verificar, ingrese la misma contraseña anterior."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user's "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"Por favor, introduzca un %(username)s y clave correctos. Observe que ambos "
|
||||
"campos pueden ser sensibles a mayúsculas."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "Esta cuenta está inactiva."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "Correo electrónico"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Contraseña nueva"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Contraseña nueva (confirmación)"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr "Su contraseña antigua es incorrecta. Por favor, vuelva a introducirla."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Contraseña antigua"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Contraseña (de nuevo)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "algoritmo"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "iteraciones"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "sal"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "función resumen"
|
||||
|
||||
msgid "variety"
|
||||
msgstr ""
|
||||
|
||||
msgid "version"
|
||||
msgstr ""
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr ""
|
||||
|
||||
msgid "time cost"
|
||||
msgstr ""
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr ""
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "factor trabajo"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "suma de verificación"
|
||||
|
||||
msgid "name"
|
||||
msgstr "nombre"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "tipo de contenido"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "nombre en código"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "permiso"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "permisos"
|
||||
|
||||
msgid "group"
|
||||
msgstr "grupo"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "grupos"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "es superusuario"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"Indica que este usuario tiene todos los permisos sin asignárselos "
|
||||
"explícitamente."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"Los grupos a los que pertenece este usuario. Un usuario tendrá todos los "
|
||||
"permisos asignados a cada uno de sus grupos."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "permisos de usuario"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "Permisos específicos para este usuario."
|
||||
|
||||
msgid "username"
|
||||
msgstr "nombre de usuario"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr ""
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Ya existe un usuario con este nombre."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "nombre"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "apellidos"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "dirección de correo electrónico"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "es staff"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "Indica si el usuario puede entrar en este sitio de administración."
|
||||
|
||||
msgid "active"
|
||||
msgstr "activo"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Indica si el usuario debe ser tratado como activo. Desmarque esta opción en "
|
||||
"lugar de borrar la cuenta."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "fecha de alta"
|
||||
|
||||
msgid "user"
|
||||
msgstr "usuario"
|
||||
|
||||
msgid "users"
|
||||
msgstr "usuarios"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
"Esta contraseña es demasiado corta. Debe contener al menos %(min_length)d "
|
||||
"carácter."
|
||||
msgstr[1] ""
|
||||
"Esta contraseña es demasiado corta. Debe contener al menos %(min_length)d "
|
||||
"caracteres."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] "Su contraseña debe contener por lo menos %(min_length)d carácter."
|
||||
msgstr[1] "Su contraseña debe contener por lo menos %(min_length)d caracteres."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "La contraseña es muy parecida a %(verbose_name)s."
|
||||
|
||||
msgid "Your password can't be too similar to your other personal information."
|
||||
msgstr ""
|
||||
"Su contraseña no puede asemejarse tanto a su otra información personal."
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "Esta contraseña es demasiado común."
|
||||
|
||||
msgid "Your password can't be a commonly used password."
|
||||
msgstr "La contraseña no puede ser una contraseña de uso común."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "Esta contraseña es completamente numérica."
|
||||
|
||||
msgid "Your password can't be entirely numeric."
|
||||
msgstr "Su contraseña no puede ser completamente numérica."
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "Contraseña restablecida en %(site_name)s"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Sesión terminada"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "Restablecer contraseña"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "Restablecimiento de contraseña enviado"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "Escriba la nueva contraseña"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "Restablecimiento de contraseñas fallido"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "Restablecimiento de contraseña completado"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "Cambiar contraseña"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "Contraseña cambiada correctamente"
|
Binary file not shown.
@ -0,0 +1,312 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Abe Estrada, 2011-2012
|
||||
# Claude Paroz <claude@2xlibre.net>, 2017
|
||||
# Jesús Bautista <jesbam98@gmail.com>, 2019
|
||||
# Juan Pablo Flores <juanpflores94@gmail.com>, 2016
|
||||
# zodman <zodman@gmail.com>, 2018
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-09-08 17:27+0200\n"
|
||||
"PO-Revision-Date: 2019-12-26 17:00+0000\n"
|
||||
"Last-Translator: Jesús Bautista <jesbam98@gmail.com>\n"
|
||||
"Language-Team: Spanish (Mexico) (http://www.transifex.com/django/django/"
|
||||
"language/es_MX/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: es_MX\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Información personal"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Permisos"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Fechas importantes"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "No existe un objeto %(name)s con una clave primaria %(key)r."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Cambio de contraseña exitoso"
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Cambiar contraseña: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "Autenticación y Autorización"
|
||||
|
||||
msgid "password"
|
||||
msgstr "contraseña"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "último ingreso"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "No se ha establecido ninguna contraseña."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "Formato de contraseña no válido o algoritmo de hash desconocido."
|
||||
|
||||
msgid "The two password fields didn’t match."
|
||||
msgstr "Los dos campos de contraseña no coinciden."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Contraseña"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Confirmación de contraseña"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "Para verificar, introduzca la misma contraseña que introdujo antes."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
"Las contraseñas sin procesar no se almacenan, por lo que no hay forma de ver "
|
||||
"la contraseña de este usuario, pero puede cambiarla usando <a href="
|
||||
"\"{}\">este formulario</a>. "
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"Por favor introduzca %(username)s y contraseña correctos. Note que puede que "
|
||||
"ambos campos sean estrictos en relación a diferencias entre mayúsculas y "
|
||||
"minúsculas."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "Esta cuenta está inactiva."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "Correo Electrónico"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Contraseña nueva"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Confirmación de contraseña nueva"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr ""
|
||||
"La antigua contraseña introducida es incorrecta. Por favor introdúzcala "
|
||||
"nuevamente."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Contraseña antigua"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Contraseña (de nuevo)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "algoritmo"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "repeticiones"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "salt"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "hash"
|
||||
|
||||
msgid "variety"
|
||||
msgstr "variedad"
|
||||
|
||||
msgid "version"
|
||||
msgstr "versión"
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr "costo en memoria"
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "costo en tiempo"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr "Paralelismo"
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "factor trabajo"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "checksum"
|
||||
|
||||
msgid "name"
|
||||
msgstr "nombre"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "tipo de contenido"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "nombre código"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "permiso"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "permisos"
|
||||
|
||||
msgid "group"
|
||||
msgstr "grupo"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "grupos"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "es superusuario"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"Indica que este usuario posee todos los permisos sin que sea necesario "
|
||||
"asignarle los mismos en forma explícita."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"Los grupos a los que pertenece este usuario. Un usuario obtendrá todos los "
|
||||
"permisos concedidos para cada uno de su grupo."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "permisos de usuario"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "Permisos específicos para este usuario"
|
||||
|
||||
msgid "username"
|
||||
msgstr "nombre de usuario"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr ""
|
||||
"Obligatorio. Longitud máxima 150 caracteres alfanuméricos. Letras, dígitos y "
|
||||
"@/./+/-/_ únicamente."
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Ya existe un usuario con ese nombre."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "nombre"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "apellido"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "Dirección de correo electrónico"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "es staff"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "Indica si el usuario puede ingresar a este sitio de administración."
|
||||
|
||||
msgid "active"
|
||||
msgstr "activo"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Indica si el usuario debe ser tratado como un usuario activo. Desactive este "
|
||||
"campo en lugar de eliminar usuarios."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "fecha de creación"
|
||||
|
||||
msgid "user"
|
||||
msgstr "usuario"
|
||||
|
||||
msgid "users"
|
||||
msgstr "usuarios"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
"La contraseña es muy corta. Debe contener al menos %(min_length)d caracter."
|
||||
msgstr[1] ""
|
||||
"La contraseña es muy corta. Debe contener al menos %(min_length)d caracteres."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] ""
|
||||
"Tu contraseña es muy corta. Debe contener al menos %(min_length)d caracter."
|
||||
msgstr[1] ""
|
||||
"Su contraseña es muy corta. Debe contener al menos %(min_length)d caracteres."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "La contraseña es muy similar a %(verbose_name)s."
|
||||
|
||||
msgid "Your password can’t be too similar to your other personal information."
|
||||
msgstr "Su contraseña no puede ser muy similar a su otra información personal."
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "Esta contraseña es muy común."
|
||||
|
||||
msgid "Your password can’t be a commonly used password."
|
||||
msgstr "Su contraseña no puede ser una contraseña de uso común."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "Esta contraseña es totalmente numérica."
|
||||
|
||||
msgid "Your password can’t be entirely numeric."
|
||||
msgstr "Su contraseña no puede ser completamente numérica."
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "Restablecimiento de la contraseña en %(site_name)s "
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Ingrese un nombre de usuario válido. Este sólo puede contener letras en "
|
||||
"inglés, números y caracteres @ /. / + / - / _."
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Ingrese un nombre de usuario válido. Este puede contener sólo letras, "
|
||||
"números y caracteres @ /. / + / - / _."
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Sesión cerrada"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "Restablecer contraseña"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "Restablecimiento de contraseña enviado"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "Introduzca la nueva contraseña"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "Restablecimiento de contraseña no exitosa"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "Reinicialización de contraseña completada"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "Cambio de contraseña"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "Cambio de contraseña exitoso"
|
Binary file not shown.
@ -0,0 +1,304 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Eduardo <edos21@gmail.com>, 2017
|
||||
# Leonardo J. Caballero G. <leonardocaballero@gmail.com>, 2016
|
||||
# Yoel Acevedo, 2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-24 13:46+0200\n"
|
||||
"PO-Revision-Date: 2017-09-24 14:24+0000\n"
|
||||
"Last-Translator: Jannis Leidel <jannis@leidel.info>\n"
|
||||
"Language-Team: Spanish (Venezuela) (http://www.transifex.com/django/django/"
|
||||
"language/es_VE/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: es_VE\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Información personal"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Permisos"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Fechas importantes"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "el objeto %(name)s con clave primaria %(key)r no existe."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "La contraseña se ha cambiado con éxito."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Cambiar contraseña: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "Autenticación y autorización"
|
||||
|
||||
msgid "password"
|
||||
msgstr "contraseña"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "último inicio de sesión"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "No se ha establecido la clave."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "Formato de clave incorrecto o algoritmo de hash desconocido."
|
||||
|
||||
msgid "The two password fields didn't match."
|
||||
msgstr "Los dos campos de contraseña no coinciden."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Contraseña"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Contraseña (confirmación)"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "Para verificar, ingrese la misma contraseña anterior."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user's "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"Por favor, introduzca un %(username)s y clave correctos. Observe que ambos "
|
||||
"campos pueden ser sensibles a mayúsculas."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "Esta cuenta está inactiva."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "Correo electrónico"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Contraseña nueva"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Contraseña nueva (confirmación)"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr "Su contraseña antigua es incorrecta. Por favor, vuelva a introducirla."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Contraseña antigua"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Contraseña (de nuevo)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "algoritmo"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "iteraciones"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "salt"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "función resumen"
|
||||
|
||||
msgid "variety"
|
||||
msgstr "variedad"
|
||||
|
||||
msgid "version"
|
||||
msgstr "versión"
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr "costo de memoria"
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "costo de tiempo"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr "paralelismo"
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "factor trabajo"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "suma de verificación"
|
||||
|
||||
msgid "name"
|
||||
msgstr "nombre"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "tipo de contenido"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "nombre en código"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "permiso"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "permisos"
|
||||
|
||||
msgid "group"
|
||||
msgstr "grupo"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "grupos"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "estatus de superusuario"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"Indica que este usuario tiene todos los permisos sin asignárselos "
|
||||
"explícitamente."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"Los grupos a los que pertenece este usuario. Un usuario tendrá todos los "
|
||||
"permisos asignados a cada uno de sus grupos."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "permisos de usuario"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "Permisos específicos para este usuario."
|
||||
|
||||
msgid "username"
|
||||
msgstr "nombre de usuario"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr ""
|
||||
"Requerido. 150 caracteres o menos. Letras, dígitos y @/./+/-/_ solamente. "
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Ya existe un usuario con este nombre."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "nombre"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "apellidos"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "dirección de correo electrónico"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "estatus staff"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "Indica si el usuario puede entrar en este sitio de administración."
|
||||
|
||||
msgid "active"
|
||||
msgstr "activo"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Indica si el usuario debe ser tratado como activo. Desmarque esta opción en "
|
||||
"lugar de borrar la cuenta."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "fecha de alta"
|
||||
|
||||
msgid "user"
|
||||
msgstr "usuario"
|
||||
|
||||
msgid "users"
|
||||
msgstr "usuarios"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
"Esta contraseña es demasiado corta. Debe contener al menos %(min_length)d "
|
||||
"carácter."
|
||||
msgstr[1] ""
|
||||
"Esta contraseña es demasiado corta. Debe contener al menos %(min_length)d "
|
||||
"caracteres."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] "Su contraseña debe contener por lo menos %(min_length)d carácter."
|
||||
msgstr[1] "Su contraseña debe contener por lo menos %(min_length)d caracteres."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "La contraseña es muy parecida a %(verbose_name)s."
|
||||
|
||||
msgid "Your password can't be too similar to your other personal information."
|
||||
msgstr ""
|
||||
"Su contraseña no puede asemejarse tanto a su otra información personal."
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "Esta contraseña es demasiado común."
|
||||
|
||||
msgid "Your password can't be a commonly used password."
|
||||
msgstr "La contraseña no puede ser una contraseña de uso común."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "Esta contraseña es completamente numérica."
|
||||
|
||||
msgid "Your password can't be entirely numeric."
|
||||
msgstr "Su contraseña no puede ser completamente numérica."
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "Contraseña restablecida en %(site_name)s"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Introduzca un nombre de usuario válido. Este solo puede contener letras del "
|
||||
"alfabeto en ingles, números y los caracteres @/./+/-/_"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Introduzca un nombre de usuario válido. Este solo puede contener letras, "
|
||||
"números y los caracteres @/./+/-/_"
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Sesión terminada"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "Restablecer contraseña"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "Restablecimiento de contraseña enviado"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "Escriba la nueva contraseña"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "Restablecimiento de contraseñas fallido"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "Restablecimiento de contraseña completado"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "Cambiar contraseña"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "Contraseña cambiada correctamente"
|
Binary file not shown.
@ -0,0 +1,308 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Jannis Leidel <jannis@leidel.info>, 2011
|
||||
# Janno Liivak <jannolii@gmail.com>, 2013,2015
|
||||
# madisvain <madisvain@gmail.com>, 2011
|
||||
# Martin Pajuste <martinpajuste@gmail.com>, 2015
|
||||
# Martin Pajuste <martinpajuste@gmail.com>, 2016-2017
|
||||
# Marti Raudsepp <marti@juffo.org>, 2014,2016
|
||||
# Ragnar Rebase <rrebase@gmail.com>, 2019
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-09-08 17:27+0200\n"
|
||||
"PO-Revision-Date: 2019-12-28 01:45+0000\n"
|
||||
"Last-Translator: Ragnar Rebase <rrebase@gmail.com>\n"
|
||||
"Language-Team: Estonian (http://www.transifex.com/django/django/language/"
|
||||
"et/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: et\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Isiklikud andmd"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Õigused"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Tähtsad kuupäevad"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "%(name)s objekt primaarvõtmega %(key)r ei eksisteeri."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Salasõna edukalt muudetud."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Muuda salasõna: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "Autentimine ja Volitamine"
|
||||
|
||||
msgid "password"
|
||||
msgstr "salasõna"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "viimane sisenemine"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "Parool on määramata."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "Lubamatu parooli formaat või tundmatu räsialgoritm."
|
||||
|
||||
msgid "The two password fields didn’t match."
|
||||
msgstr "Sisestatud paroolid polnud identsed."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Salasõna"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Salasõna kinnitus"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr ""
|
||||
"Sisestage sama salasõna uuesti veendumaks, et sisestamisel ei tekkinud vigu"
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
"Salasõnu ei salvestata töötlemata kujul, seega puudub võimalus selle "
|
||||
"kasutaja salasõna nägemiseks, kuid saate seda muuta kasutades <a href="
|
||||
"\"{}\">seda vormi</a>."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"Palun sisestage õige %(username)s ja parool. Teadke, et mõlemad väljad "
|
||||
"võivad olla tõstutundlikud."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "See konto ei ole aktiivne."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "E-post"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Uus salasõna"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Uue salasõna kinnitus"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr "Te sisestasite oma vana parooli vigaselt. Palun sisestage see uuesti."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Vana salasõna"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Salasõna (uuesti)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "algoritm"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "iteratsioone"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "sool"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "räsi"
|
||||
|
||||
msgid "variety"
|
||||
msgstr "liik"
|
||||
|
||||
msgid "version"
|
||||
msgstr "versioon"
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr "mälukasutus"
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "ajakulu"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr "parallelism"
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "töötegur"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "kontrollsumma"
|
||||
|
||||
msgid "name"
|
||||
msgstr "nimi"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "sisutüüp"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "koodnimi"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "õigus"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "õigused"
|
||||
|
||||
msgid "group"
|
||||
msgstr "grupp"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "grupid"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "superkasutaja staatus"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr "Määrab, kas see kasutaja omab automaatselt ja alati kõiki õigus."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"Grupid, millesse antud kasutaja kuulub. Kasutaja pärib kõik õigused, mis on "
|
||||
"määratud igale tema grupile."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "kasutajaõigused"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "Spetsiaalsed õigused sellele kasutajale."
|
||||
|
||||
msgid "username"
|
||||
msgstr "kasutajatunnus"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr ""
|
||||
"Nõutav. 150 märki või vähem. Ainult tähed, numbrid ja @/./+/-/_ tähemärgid."
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Sama kasutajatunnusega kasutaja on juba olemas."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "eesnimi"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "perenimi"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "e-posti aadress"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "personalistaatus"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr ""
|
||||
"Määrab, kas kasutaja saab sisse logida sellesse admininistreerimisliidesesse."
|
||||
|
||||
msgid "active"
|
||||
msgstr "aktiivne"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Määrab, kas see konto on aktiivne. Kustutamise asemel lihtsalt deaktiveerige "
|
||||
"konto."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "liitumise kuupäev"
|
||||
|
||||
msgid "user"
|
||||
msgstr "kasutaja"
|
||||
|
||||
msgid "users"
|
||||
msgstr "kasutajad"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
"Salasõna on liiga lühike. Selles peab olema vähemalt %(min_length)d täht."
|
||||
msgstr[1] ""
|
||||
"Salasõna on liiga lühike. Selles peab olema vähemalt %(min_length)d tähte."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] "Salasõna peab sisaldama vähemalt %(min_length)d tähte."
|
||||
msgstr[1] "Salasõna peab sisaldama vähemalt %(min_length)d tähte."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "Salasõna ja %(verbose_name)s on liiga sarnased."
|
||||
|
||||
msgid "Your password can’t be too similar to your other personal information."
|
||||
msgstr "Salasõna ei tohi olla liialt sarnane teie isiklike andmetega."
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "Salasõna on liiga teada-tuntud."
|
||||
|
||||
msgid "Your password can’t be a commonly used password."
|
||||
msgstr "Salasõna ei tohi olla üks enimlevinud salasõnadest."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "See salasõna koosneb ainult numbritest."
|
||||
|
||||
msgid "Your password can’t be entirely numeric."
|
||||
msgstr "Salasõna ei tohi koosneda ainult numbritest."
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "Uue salasõna loomine saidil %(site_name)s"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Sisesta korrektne kasutajatunnus. See väärtus võib sisaldada ainult "
|
||||
"ingliskeelseid tähti, numbreid ja @/./+/-/_ tähemärke."
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Sisesta korrektne kasutajatunnus. See väärtus võib sisaldada ainult tähti, "
|
||||
"numbreid ja @/./+/-/_ tähemärke."
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Välja logitud"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "Uue salasõna loomine"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "Salasõna lähtestamine saadetud"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "Sisesta uus salasõna"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "Uue salasõna loomine ebaõnnestus"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "Uue salasõna loomine lõpetatud"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "Salasõna muutmine"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "Salasõna muutmine õnnestus"
|
Binary file not shown.
@ -0,0 +1,310 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Aitzol Naberan <anaberan@codesyntax.com>, 2013
|
||||
# Eneko Illarramendi <eneko@illarra.com>, 2017
|
||||
# Jannis Leidel <jannis@leidel.info>, 2011
|
||||
# julen, 2015
|
||||
# Urtzi Odriozola <urtzi.odriozola@gmail.com>, 2016-2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-24 13:46+0200\n"
|
||||
"PO-Revision-Date: 2017-12-11 13:39+0000\n"
|
||||
"Last-Translator: Eneko Illarramendi <eneko@illarra.com>\n"
|
||||
"Language-Team: Basque (http://www.transifex.com/django/django/language/eu/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: eu\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Informazio pertsonala"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Baimenak"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Data garrantzitsuak"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "Ez dago %(key)r gakodun %(name)s objekturik."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Ondo aldatu da pasahitza."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Pasahitza aldatu: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "Autentikazio eta baimentzea"
|
||||
|
||||
msgid "password"
|
||||
msgstr "pasahitza"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "azken sarrera"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "Pasahitza ezarri gabe."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "Pasahitz formatu baliogabea edo hash algoritmo ezezaguna."
|
||||
|
||||
msgid "The two password fields didn't match."
|
||||
msgstr "Pasahitzak ez datoz bat."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Pasahitza"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Pasahitza berretsi"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "Idatzi aurreko pasahitz bera, egiaztapenerako."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user's "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
"Pasahitzak zifratuta gordetzen direnez ez dago erabiltzaile pasahitza "
|
||||
"ikusterik, baina pasahitza aldatu dezakezu <a href=\"{}\">hemen</a>."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"Mesedez idatzi %(username)s eta pasahitz egokiak. Maiskula eta minuskulak "
|
||||
"ondo bereiztu."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "Kontu hau az dago aktibo."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "Emaila"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Pasahitz berria"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Pasahitz berria berretsi"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr "Zure pasahitz zaharra ez da zuzena. Idatzi ezazu berriro."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Pasahitz zaharra"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Pasahitza (berriro)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "algoritmoak"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "iterazioak"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "salt"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "hash"
|
||||
|
||||
msgid "variety"
|
||||
msgstr "aldaera"
|
||||
|
||||
msgid "version"
|
||||
msgstr "bertsioa"
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr "memoria kostua"
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "denbora kostua"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr "paralelismoa"
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "work factor"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "checksum"
|
||||
|
||||
msgid "name"
|
||||
msgstr "izena"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "eduki mota"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "kode izena"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "baimena"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "baimenak"
|
||||
|
||||
msgid "group"
|
||||
msgstr "taldea"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "taldeak"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "Erabiltzaile nagusia"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"Erabiltzaileari baimen guztiak esleitzeko banan-banan aukeratu behar izan "
|
||||
"gabe."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"Erabiltzailea zein taldetakoa den. Erabiltzaileak bere talde bakoitzari "
|
||||
"emandako baimen guztiak jasoko ditu."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "Erabiltzailearen baimenak"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "Erabiltzaile honentzako baimenak."
|
||||
|
||||
msgid "username"
|
||||
msgstr "erabiltzailea"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr ""
|
||||
"Beharrezkoa. 150 karaktere edo gutxiago. Hizki, zenbaki eta @/./+/-/_ "
|
||||
"bakarrik."
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Erabiltzaile izen hori ez dago eskuragarri."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "izena"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "abizena"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "helbide elektronikoa"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "Arduradun egoera"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr ""
|
||||
"Erabiltzaileak kudeaketa gune honetan sartzeko baimena duen edo ez "
|
||||
"adierazten du."
|
||||
|
||||
msgid "active"
|
||||
msgstr "Aktiboa"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Erabiltzaile bat aktibo gisa tratatu edo ez zehazten du. Ezgaitu hau kontuak "
|
||||
"ezabatu beharrean."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "erregistro eguna"
|
||||
|
||||
msgid "user"
|
||||
msgstr "Erabiltzailea"
|
||||
|
||||
msgid "users"
|
||||
msgstr "Erabiltzaileak"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
"Pasahitz hau laburregia da. Gutxienez karaktere %(min_length)d izan behar du."
|
||||
msgstr[1] ""
|
||||
"Pasahitz hau laburregia da. Gutxienez %(min_length)d karaktere izan behar "
|
||||
"ditu."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] "Zure pasahitzak gutxienez karaktere %(min_length)d eduki behar du."
|
||||
msgstr[1] ""
|
||||
"Zure pasahitzak gutxienez %(min_length)d karaktere eduki behar ditu."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "Zure pasahitza %(verbose_name)s-(r)en oso antzekoa da."
|
||||
|
||||
msgid "Your password can't be too similar to your other personal information."
|
||||
msgstr ""
|
||||
"Zure pasahitza ezin da izan zure beste informazio pertsonalaren antzekoa."
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "Pasahitz hau arruntegia da."
|
||||
|
||||
msgid "Your password can't be a commonly used password."
|
||||
msgstr "Zure pasahitza ezin da izan normalean erabiltzen den pasahitza."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "Zure pasahitza osorik zenbakizkoa da."
|
||||
|
||||
msgid "Your password can't be entirely numeric."
|
||||
msgstr "Zure pasahitza ezin da izan osorik zenbakizkoa."
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "Pasahitza berrezarri %(site_name)s webgunean"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Idatzi baleko erabiltzaile izen bat. Eremu honetan hizki, zenbaki eta @/./"
|
||||
"+/-/_ karaktereak bakarrik erabili daitezke."
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Idatzi baleko erabiltzaile izen bat. Eremu honetan hizki, zenbaki eta @/./"
|
||||
"+/-/_ karaktereak bakarrik erabili daitezke."
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Sesiotik kanpo"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "Pasahitz-berrezartzea"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "Pasahitz-berrezartzea bidalita"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "Idatzi pasahitz berria"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "Pasahitza ez da ondo berrezarri"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "Pasahitz-berrezartzea burututa"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "Pasahitz-aldaketa"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "Pasahitza ondo aldatu da"
|
Binary file not shown.
@ -0,0 +1,313 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Ahmad Hosseini <ahmadly.com@gmail.com>, 2020
|
||||
# Ali Nikneshan <ali@nikneshan.com>, 2015
|
||||
# Eric Hamiter <ehamiter@gmail.com>, 2013
|
||||
# Farshad Asadpour, 2021
|
||||
# Jannis Leidel <jannis@leidel.info>, 2011
|
||||
# cef32bddc4c7e18de7e89af20a3a57ef_18bb97f, 2015
|
||||
# MJafar Mashhadi <raindigital2007@gmail.com>, 2018
|
||||
# Pouya Abbassi, 2016
|
||||
# Reza Mohammadi <reza@teeleh.ir>, 2013-2014
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-09-21 10:22+0200\n"
|
||||
"PO-Revision-Date: 2021-11-19 17:35+0000\n"
|
||||
"Last-Translator: Farshad Asadpour\n"
|
||||
"Language-Team: Persian (http://www.transifex.com/django/django/language/"
|
||||
"fa/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: fa\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "اطلاعات شخصی"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "اجازهها"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "تاریخهای مهم"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "شیء %(name)s با کلید اصلی %(key)r وجود ندارد."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "گذرواژه با موفقیت تغییر یافت."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "تغییر گذرواژه: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "بررسی اصالت و اجازهها"
|
||||
|
||||
msgid "password"
|
||||
msgstr "گذرواژه"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "آخرین ورود"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "هیچ رمزی انتخاب نشده است."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "رمز نامعتبر یا الگوریتم رمزنگاری ناشناس"
|
||||
|
||||
msgid "The two password fields didn’t match."
|
||||
msgstr "دو فیلد گذرواژه با هم مطابقت ندارند."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "گذرواژه"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "تأیید گذرواژه"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "برای تائید، رمز عبور قبلی را وارد کنید."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
"گذرواژهها به صورت خام نگهداری نمیشوند لذا راهی برای مشاهدهٔ گذرواژهٔ این کاربر "
|
||||
"وجود ندارد، اما میتوانید آن را با <a href=\"{}\">این فرم</a> تغییر دهید."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"لطفا %(username)s و گذرواژهای قابل قبول وارد کنید.\n"
|
||||
"توجه داشته باشید که ممکن است هر دو به کوچکی و بزرگی حروف حساس باشند."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "این حساب غیر فعال است."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "ایمیل"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "گذرواژهٔ جدید"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "تأیید گذرواژهٔ جدید"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr "گذرواژهٔ قدیمیتان اشتباه وارد شد. لطفاً دوباره وارد کنید."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "گذرواژهٔ قدیمی"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "گذرواژه (تکرار)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "الگوریتم"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "تکرار"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "salt"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "hash"
|
||||
|
||||
msgid "variety"
|
||||
msgstr "تنوع"
|
||||
|
||||
msgid "version"
|
||||
msgstr "نسخه"
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr "هزینهی حافظه"
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "هزینهی زمان"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr "موازات"
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "عامل کار"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "جمع کنترلی"
|
||||
|
||||
msgid "block size"
|
||||
msgstr "اندازه بلاک"
|
||||
|
||||
msgid "name"
|
||||
msgstr "نام"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "نوع محتوی"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "نام کد"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "اجازه"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "اجازهها"
|
||||
|
||||
msgid "group"
|
||||
msgstr "گروه"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "گروهها"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "ابرکاربر"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"نشان میدهد که این کاربر همهٔ اجازهها را دارد بدون آنکه به صراحت به او اختصاص "
|
||||
"داده شده باشد."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"گروههایی که این کاربر به آنها تعلق دارد. کاربر تمام اجازههای مرتبط با این "
|
||||
"گروهها را دریافت خواهد کرد."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "اجازههای کاربر"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "اجازههای خاص این کاربر."
|
||||
|
||||
msgid "username"
|
||||
msgstr "نام کاربری"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr "الزامی. 150 کاراکتر یا کمتر. فقط شامل حروف، اعداد، و علامات @/./+/-/_"
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "کاربری با آن نام کاربری وجود دارد."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "نام"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "نام خانوادگی"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "آدرس ایمیل"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "وضعیت کارمندی"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "نشان میدهد که آیا این کاربر میتواند وارد این وبگاه مدیریت شود یا خیر."
|
||||
|
||||
msgid "active"
|
||||
msgstr "فعال"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"نشان میدهد که آیا این کاربر اجازهٔ فعالیت دارد یا خیر. به جای حذف کاربر این "
|
||||
"تیک را بردارید."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "تاریخ پیوستن"
|
||||
|
||||
msgid "user"
|
||||
msgstr "کاربر"
|
||||
|
||||
msgid "users"
|
||||
msgstr "کاربرها"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
"این رمز عبور خیلی کوتاه است. رمز عبور میبایست حداقل از %(min_length)d حرف "
|
||||
"تشکیل شده باشد."
|
||||
msgstr[1] ""
|
||||
"این رمز عبور خیلی کوتاه است. رمز عبور میبایست حداقل از %(min_length)d حرف "
|
||||
"تشکیل شده باشد."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] "رمز عبور شما میبایست حداقل از %(min_length)d حرف تشکیل شده باشد."
|
||||
msgstr[1] "رمز عبور شما میبایست حداقل از %(min_length)d حرف تشکیل شده باشد."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "این رمز عبور بسیار شبیه %(verbose_name)s میباشد."
|
||||
|
||||
msgid "Your password can’t be too similar to your other personal information."
|
||||
msgstr "گذرواژه شما نمیتواند شبیه سایر اطلاعات شخصی شما باشد."
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "این رمز عبور بسیار رایج است."
|
||||
|
||||
msgid "Your password can’t be a commonly used password."
|
||||
msgstr "گذرواژه شما نمی تواند یک گذرواژه معمول باشد."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "رمز شما کلا عدد است"
|
||||
|
||||
msgid "Your password can’t be entirely numeric."
|
||||
msgstr "گذرواژه شما نمی تواند کلا عدد باشد"
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "بازیابی گذرواژه در %(site_name)s"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"یک نام کاربری معتبر وارد کنید. این مقدار میتواند فقط شامل حروف الفبای "
|
||||
"انگلیسی، اعداد، و علامات @/./+/-/_ باشد."
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"یک نام کاربری معتبر وارد کنید. این مقدار میتواند فقط شامل حروف، اعداد، و "
|
||||
"علامات @/./+/-/_ باشد."
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "خارج شدید"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "ایجاد گذرواژهٔ جدید"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "تقاضای ریست رمز فرستاده شد"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "ورود گذرواژهٔ جدید"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "گذرواژهٔ جدید ایجاد نشد."
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "گذرواژهٔ جدید ایجاد شد"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "تغییر گذرواژه"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "گذرواژه تغییر یافت."
|
Binary file not shown.
@ -0,0 +1,309 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Aarni Koskela, 2015,2017-2018,2020-2021
|
||||
# Antti Kaihola <antti.15+transifex@kaihola.fi>, 2011
|
||||
# Jannis Leidel <jannis@leidel.info>, 2011
|
||||
# Klaus Dahlén <klaus.dahlen@gmail.com>, 2012
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-09-21 10:22+0200\n"
|
||||
"PO-Revision-Date: 2021-11-22 15:17+0000\n"
|
||||
"Last-Translator: Aarni Koskela\n"
|
||||
"Language-Team: Finnish (http://www.transifex.com/django/django/language/"
|
||||
"fi/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: fi\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Henkilökohtaiset tiedot"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Oikeudet"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Tärkeät päivämäärät"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "%(name)s perusavaimella %(key)r ei ole olemassa."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Salasana muutettu onnistuneesti."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Vaihda salasana: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "Kirjautuminen ja oikeudet"
|
||||
|
||||
msgid "password"
|
||||
msgstr "salasana"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "viimeisin kirjautuminen"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "Salasanaa ei ole asetettu."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "Tuntematon salasanamuoto tai tuntematon hajakoodausalgoritmi."
|
||||
|
||||
msgid "The two password fields didn’t match."
|
||||
msgstr "Salasanakentät eivät täsmänneet."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Salasana"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Salasanan vahvistaminen"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "Syötä sama salasana tarkistuksen vuoksi toistamiseen."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
"Salasanoja ei tallenneta selkokielisinä, joten tämän käyttäjän salasanaa on "
|
||||
"mahdoton nähdä, mutta voit vaihtaa salasanan käyttämällä <a href=\"{}\">tätä "
|
||||
"lomaketta</a>."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"Ole hyvä ja syötä kelvollinen %(username)s ja salasana. Huomaa että "
|
||||
"kummassakin kentässä isoilla ja pienillä kirjaimilla saattaa olla merkitystä."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "Tämä käyttäjätili ei ole voimassa."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "Sähköposti"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Uusi salasana"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Uusi salasana uudelleen"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr "Vanha salasana on virheellinen. Yritä uudelleen."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Vanha salasana"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Salasana toistamiseen"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "algoritmi"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "iteraatioita"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "suola"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "tiiviste"
|
||||
|
||||
msgid "variety"
|
||||
msgstr "variaatio"
|
||||
|
||||
msgid "version"
|
||||
msgstr "versio"
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr "muistihinta"
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "aikahinta"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr "rinnakkaisuus"
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "työmäärä"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "tarkistussumma"
|
||||
|
||||
msgid "block size"
|
||||
msgstr "lohkokoko"
|
||||
|
||||
msgid "name"
|
||||
msgstr "nimi"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "sisältötyyppi"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "tunniste"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "oikeus"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "oikeudet"
|
||||
|
||||
msgid "group"
|
||||
msgstr "ryhmä"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "ryhmät"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "pääkäyttäjä"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"Antaa käyttäjälle kaikki oikeudet ilman, että niitä täytyy erikseen luetella."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"Käyttäjäryhmät joihin tämä käyttäjä kuuluu. Käyttäjä saa käyttöoikeudet "
|
||||
"kaikista käyttäjäryhmistä, joihin hän kuuluu."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "käyttäjän oikeudet"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "Tämän käyttäjän spesifit oikeudet."
|
||||
|
||||
msgid "username"
|
||||
msgstr "käyttäjätunnus"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr ""
|
||||
"Vaaditaan. Enintään 150 merkkiä. Vain kirjaimet, numerot ja @/./+/-/_ ovat "
|
||||
"sallittuja."
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Käyttäjätunnus on jo rekisteröity."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "etunimi"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "sukunimi"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "sähköpostiosoite"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "ylläpitäjä"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "Määrittää, pääseekö käyttäjä tähän sivuston ylläpito-osioon."
|
||||
|
||||
msgid "active"
|
||||
msgstr "voimassa"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Määrää, voiko käyttäjä kirjautua sisään. Tällä voi estää käyttäjätilin "
|
||||
"käytön poistamatta sitä."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "liittynyt"
|
||||
|
||||
msgid "user"
|
||||
msgstr "käyttäjä"
|
||||
|
||||
msgid "users"
|
||||
msgstr "käyttäjät"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
"Tämä salasana on liian lyhyt. Sen tulee sisältää ainakin %(min_length)d "
|
||||
"merkki."
|
||||
msgstr[1] ""
|
||||
"Tämä salasana on liian lyhyt. Sen tulee sisältää ainakin %(min_length)d "
|
||||
"merkkiä."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] "Salasanasi tulee sisältää ainakin %(min_length)d merkki."
|
||||
msgstr[1] "Salasanasi tulee sisältää ainakin %(min_length)d merkkiä."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "Salasana on liian lähellä kohdetta %(verbose_name)s."
|
||||
|
||||
msgid "Your password can’t be too similar to your other personal information."
|
||||
msgstr "Salasanasi ei voi olla liian samankaltainen muiden tietojesi kanssa."
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "Tämä salasana on liian yleinen."
|
||||
|
||||
msgid "Your password can’t be a commonly used password."
|
||||
msgstr "Salasanasi ei voi olla yleisesti käytetty salasana."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "Tämä salasana on kokonaan numeerinen."
|
||||
|
||||
msgid "Your password can’t be entirely numeric."
|
||||
msgstr "Salasanasi ei voi olla kokonaan numeerinen."
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "Salasanan nollaus sivustolla %(site_name)s "
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Syötä kelvollinen käyttäjänimi (vain englannin kirjaimet, numerot ja merkit "
|
||||
"@/./+/-/_)."
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Syötä kelvollinen käyttäjänimi (vain kirjaimet, numerot ja merkit @/./+/-/_)."
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Kirjautunut ulos"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "Salasanan nollaus"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "Salasanan nollausviesti lähetetty"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "Syötä uusi salasana"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "Salasanan nollaus ei onnistunut"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "Salasanan nollaus valmis"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "Salasanan vaihtaminen"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "Salasanan vaihtaminen onnistui"
|
Binary file not shown.
@ -0,0 +1,323 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Claude Paroz <claude@2xlibre.net>, 2013-2019,2021,2023
|
||||
# Claude Paroz <claude@2xlibre.net>, 2013
|
||||
# Jannis Leidel <jannis@leidel.info>, 2011
|
||||
# mlorant <maxime.lorant@gmail.com>, 2014
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-03-17 03:19-0500\n"
|
||||
"PO-Revision-Date: 2023-04-25 08:09+0000\n"
|
||||
"Last-Translator: Claude Paroz <claude@2xlibre.net>, 2013-2019,2021,2023\n"
|
||||
"Language-Team: French (http://www.transifex.com/django/django/language/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: fr\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Informations personnelles"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Permissions"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Dates importantes"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "L'objet %(name)s avec la clef primaire %(key)r n’existe pas."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Mot de passe modifié avec succès"
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Modifier le mot de passe : %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "Authentification et autorisation"
|
||||
|
||||
msgid "password"
|
||||
msgstr "mot de passe"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "dernière connexion"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "Aucun mot de passe défini."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr ""
|
||||
"Format de mot de passe non valide ou algorithme de hachage non reconnu."
|
||||
|
||||
msgid "The two password fields didn’t match."
|
||||
msgstr "Les deux mots de passe ne correspondent pas."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Mot de passe"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Confirmation du mot de passe"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "Saisissez le même mot de passe que précédemment, pour vérification."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
"Les mots de passe ne sont pas enregistrés en clair, ce qui ne permet pas "
|
||||
"d’afficher le mot de passe de cet utilisateur, mais il est possible de le "
|
||||
"changer en utilisant <a href=\"{}\">ce formulaire</a>. "
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"Saisissez un %(username)s et un mot de passe valides. Remarquez que chacun "
|
||||
"de ces champs est sensible à la casse (différenciation des majuscules/"
|
||||
"minuscules)."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "Ce compte est inactif."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "Courriel"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Nouveau mot de passe"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Confirmation du nouveau mot de passe"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr "Votre ancien mot de passe est incorrect. Veuillez le rectifier."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Ancien mot de passe"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Mot de passe (à nouveau)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "algorithme"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "itérations"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "salage"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "empreinte"
|
||||
|
||||
msgid "variety"
|
||||
msgstr "variété"
|
||||
|
||||
msgid "version"
|
||||
msgstr "version"
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr "coût mémoire"
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "coût temps"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr "parallélisme"
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "facteur travail"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "somme de contrôle"
|
||||
|
||||
msgid "block size"
|
||||
msgstr "taille de bloc"
|
||||
|
||||
msgid "name"
|
||||
msgstr "nom"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "type de contenu"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "nom de code"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "permission"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "permissions"
|
||||
|
||||
msgid "group"
|
||||
msgstr "groupe"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "groupes"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "statut super-utilisateur"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"Précise que l’utilisateur possède toutes les permissions sans les assigner "
|
||||
"explicitement."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"Les groupes dont fait partie cet utilisateur. Celui-ci obtient tous les "
|
||||
"droits de tous les groupes auxquels il appartient."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "permissions de l’utilisateur"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "Permissions spécifiques à cet utilisateur."
|
||||
|
||||
msgid "username"
|
||||
msgstr "nom d’utilisateur"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr ""
|
||||
"Requis. 150 caractères maximum. Uniquement des lettres, nombres et les "
|
||||
"caractères « @ », « . », « + », « - » et « _ »."
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Un utilisateur avec ce nom existe déjà."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "prénom"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "nom"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "adresse électronique"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "statut équipe"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "Précise si l’utilisateur peut se connecter à ce site d'administration."
|
||||
|
||||
msgid "active"
|
||||
msgstr "actif"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Précise si l’utilisateur doit être considéré comme actif. Décochez ceci "
|
||||
"plutôt que de supprimer le compte."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "date d’inscription"
|
||||
|
||||
msgid "user"
|
||||
msgstr "utilisateur"
|
||||
|
||||
msgid "users"
|
||||
msgstr "utilisateurs"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
"Ce mot de passe est trop court. Il doit contenir au minimum %(min_length)d "
|
||||
"caractère."
|
||||
msgstr[1] ""
|
||||
"Ce mot de passe est trop court. Il doit contenir au minimum %(min_length)d "
|
||||
"caractères."
|
||||
msgstr[2] ""
|
||||
"Ce mot de passe est trop court. Il doit contenir au minimum %(min_length)d "
|
||||
"caractères."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] ""
|
||||
"Votre mot de passe doit contenir au minimum %(min_length)d caractère."
|
||||
msgstr[1] ""
|
||||
"Votre mot de passe doit contenir au minimum %(min_length)d caractères."
|
||||
msgstr[2] ""
|
||||
"Votre mot de passe doit contenir au minimum %(min_length)d caractères."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "Le mot de passe est trop semblable au champ « %(verbose_name)s »."
|
||||
|
||||
msgid "Your password can’t be too similar to your other personal information."
|
||||
msgstr ""
|
||||
"Votre mot de passe ne peut pas trop ressembler à vos autres informations "
|
||||
"personnelles."
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "Ce mot de passe est trop courant."
|
||||
|
||||
msgid "Your password can’t be a commonly used password."
|
||||
msgstr ""
|
||||
"Votre mot de passe ne peut pas être un mot de passe couramment utilisé."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "Ce mot de passe est entièrement numérique."
|
||||
|
||||
msgid "Your password can’t be entirely numeric."
|
||||
msgstr "Votre mot de passe ne peut pas être entièrement numérique."
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "Réinitialisation du mot de passe sur %(site_name)s"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only unaccented lowercase a-z "
|
||||
"and uppercase A-Z letters, numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Saisissez un nom d’utilisateur valide. Il ne peut contenir que des lettres "
|
||||
"non accentuées (de a à z ou de A à Z), des nombres ou les caractères « @ », "
|
||||
"« . », « + », « - » et « _ »."
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Saisissez un nom d’utilisateur valide. Il ne peut contenir que des lettres, "
|
||||
"des nombres ou les caractères « @ », « . », « + », « - » et « _ »."
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Déconnecté"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "Réinitialisation du mot de passe"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "Message de réinitialisation du mot de passe envoyé"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "Saisissez un nouveau mot de passe"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "Échec lors de la mise à jour du mot de passe"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "Mise à jour du mot de passe terminée"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "Modification du mot de passe"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "Mot de passe modifié avec succès"
|
Binary file not shown.
@ -0,0 +1,226 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-03-18 09:16+0100\n"
|
||||
"PO-Revision-Date: 2015-03-18 10:30+0000\n"
|
||||
"Last-Translator: Jannis Leidel <jannis@leidel.info>\n"
|
||||
"Language-Team: Western Frisian (http://www.transifex.com/projects/p/django/"
|
||||
"language/fy/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: fy\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr ""
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr ""
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr ""
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr ""
|
||||
|
||||
msgid "No password set."
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr ""
|
||||
|
||||
msgid "The two password fields didn't match."
|
||||
msgstr ""
|
||||
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter the same password as above, for verification."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user's "
|
||||
"password, but you can change the password using <a href=\"password/\">this "
|
||||
"form</a>."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr ""
|
||||
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
msgid "New password"
|
||||
msgstr ""
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr ""
|
||||
|
||||
msgid "Old password"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr ""
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr ""
|
||||
|
||||
msgid "iterations"
|
||||
msgstr ""
|
||||
|
||||
msgid "salt"
|
||||
msgstr ""
|
||||
|
||||
msgid "hash"
|
||||
msgstr ""
|
||||
|
||||
msgid "work factor"
|
||||
msgstr ""
|
||||
|
||||
msgid "checksum"
|
||||
msgstr ""
|
||||
|
||||
msgid "name"
|
||||
msgstr ""
|
||||
|
||||
msgid "codename"
|
||||
msgstr ""
|
||||
|
||||
msgid "permission"
|
||||
msgstr ""
|
||||
|
||||
msgid "permissions"
|
||||
msgstr ""
|
||||
|
||||
msgid "group"
|
||||
msgstr ""
|
||||
|
||||
msgid "groups"
|
||||
msgstr ""
|
||||
|
||||
msgid "password"
|
||||
msgstr ""
|
||||
|
||||
msgid "last login"
|
||||
msgstr ""
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr ""
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr ""
|
||||
|
||||
msgid "username"
|
||||
msgstr ""
|
||||
|
||||
msgid "Required. 30 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers and @/./"
|
||||
"+/-/_ characters."
|
||||
msgstr ""
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr ""
|
||||
|
||||
msgid "first name"
|
||||
msgstr ""
|
||||
|
||||
msgid "last name"
|
||||
msgstr ""
|
||||
|
||||
msgid "email address"
|
||||
msgstr ""
|
||||
|
||||
msgid "staff status"
|
||||
msgstr ""
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr ""
|
||||
|
||||
msgid "active"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
|
||||
msgid "date joined"
|
||||
msgstr ""
|
||||
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
msgid "users"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr ""
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password change"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr ""
|
Binary file not shown.
@ -0,0 +1,298 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Jannis Leidel <jannis@leidel.info>, 2011
|
||||
# Michael Thornhill <michael@maithu.com>, 2012,2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-24 13:46+0200\n"
|
||||
"PO-Revision-Date: 2017-09-24 14:24+0000\n"
|
||||
"Last-Translator: Jannis Leidel <jannis@leidel.info>\n"
|
||||
"Language-Team: Irish (http://www.transifex.com/django/django/language/ga/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ga\n"
|
||||
"Plural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : "
|
||||
"4);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Eolas pearsantach"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Ceada"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Dáta tábhactach"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr ""
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Focal faire aithraithe rathúil"
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Athraigh focal faire: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr ""
|
||||
|
||||
msgid "password"
|
||||
msgstr "focal faire"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "logáil deirneach"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr ""
|
||||
|
||||
msgid "The two password fields didn't match."
|
||||
msgstr "Níl an dá focla faire comhoiriúnigh"
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Focal faire"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Focal faire deimhniú"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user's "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "Tá an cuntas seo neamhghníomhach."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "Ríomhphost"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Focal faire nua"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Deimnhiú focal faire nua"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr ""
|
||||
"Cuireadh do sean-focal faire isteach go mícheart. Iontráil isteach é arís."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Sean-focal faire "
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Focal faire (arís)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "algartam"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "atriallta"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "salann"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "haiseáil"
|
||||
|
||||
msgid "variety"
|
||||
msgstr ""
|
||||
|
||||
msgid "version"
|
||||
msgstr ""
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr ""
|
||||
|
||||
msgid "time cost"
|
||||
msgstr ""
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr ""
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "fachtóir oibre"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "suim sheiceála"
|
||||
|
||||
msgid "name"
|
||||
msgstr "ainm"
|
||||
|
||||
msgid "content type"
|
||||
msgstr ""
|
||||
|
||||
msgid "codename"
|
||||
msgstr "Ainm cód"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "cead"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "ceada"
|
||||
|
||||
msgid "group"
|
||||
msgstr "grúpa"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "grúpa"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "stádas forúsáideoir"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"Sainíonn go bhfuil gach ceada ag an úsáideoir seo gan iad a cur le go "
|
||||
"díreach."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "ceada úsáideoira"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr ""
|
||||
|
||||
msgid "username"
|
||||
msgstr "Ainm úsáideoir"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr ""
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "In ann do úsáideoir leis an ainm úsáideora."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "ainm baiste"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "sloinne"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "seoladh r-phoist"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "stádas foirne"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr ""
|
||||
"Sainigh an bhfuil cead ag an úsáideoir logáil isteach go dtí an suíomh "
|
||||
"riaracháin seo."
|
||||
|
||||
msgid "active"
|
||||
msgstr "gníomhach"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Sainíonn an bhfuil an úsáideoir gníomhach. Míroghnaigh seo in aineonn de "
|
||||
"scriseadh cuntasí."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "Dáta teacht isteach"
|
||||
|
||||
msgid "user"
|
||||
msgstr "úsáideoir"
|
||||
|
||||
msgid "users"
|
||||
msgstr "úsáideora"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
msgstr[3] ""
|
||||
msgstr[4] ""
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
msgstr[3] ""
|
||||
msgstr[4] ""
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr ""
|
||||
|
||||
msgid "Your password can't be too similar to your other personal information."
|
||||
msgstr ""
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr ""
|
||||
|
||||
msgid "Your password can't be a commonly used password."
|
||||
msgstr ""
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr ""
|
||||
|
||||
msgid "Your password can't be entirely numeric."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "Athshocraigh focal faire ar %(site_name)s"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Logáilte amach"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "Pasfhocal athshocrú"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "Pasfhocal athshocrú sheoladh"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password change"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr ""
|
Binary file not shown.
@ -0,0 +1,337 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# GunChleoc, 2015-2017,2021
|
||||
# GunChleoc, 2015
|
||||
# GunChleoc, 2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-09-21 10:22+0200\n"
|
||||
"PO-Revision-Date: 2021-10-27 12:55+0000\n"
|
||||
"Last-Translator: GunChleoc\n"
|
||||
"Language-Team: Gaelic, Scottish (http://www.transifex.com/django/django/"
|
||||
"language/gd/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: gd\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : "
|
||||
"(n > 2 && n < 20) ? 2 : 3;\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Fiosrachadh pearsanta"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Ceadan"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Cinn-là chudromach"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "Chan eil oibseact %(name)s air a bheil prìomh-iuchair %(key)r ann."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Chaidh am facal-faire atharrachadh gu soirbheachail."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Atharraich am facal-faire: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "Dearbhadh is ùghdarrachadh"
|
||||
|
||||
msgid "password"
|
||||
msgstr "facal-faire"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "an clàradh a-steach mu dheireadh"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "Cha deach facal-faire a shuidheachadh."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr ""
|
||||
"Tha fòrmat mì-dhligheach air an fhacal-fhaire no chan aithne dhuinn algairim "
|
||||
"a’ hais."
|
||||
|
||||
msgid "The two password fields didn’t match."
|
||||
msgstr "Cha robh an dà fhacal-faire co-ionnann."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Facal-faire"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Dearbhadh an fhacail-fhaire"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "Cuir an t-aon fhacal-faire a-steach a-rithist gus a dhearbhadh."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
"Cha dèid faclan-faire amh a shàbhaladh ’s mar sin chan eil dòigh ann gus "
|
||||
"facal-faire a’ chleachdaiche seo a shealltainn. ’S urrainn dhut am facal-"
|
||||
"faire atharrachadh co-dhiù leis <a href=\"{}\">an fhoirm seo</a>."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"Cuir a-steach %(username)s agus facal-faire ceart. Thoir an aire gum bi aire "
|
||||
"do litrichean mòra ’s beaga air an dà raon, ma dh’fhaoidte."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "Chan eil an cunntas seo gnìomhach."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "Post-d"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Facal-faire ùr"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Dearbhadh an fhacail-fhaire ùir"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr ""
|
||||
"Cha do chuir thu an seann fhacal-faire a-steach mar bu chòir. Cuir a-steach "
|
||||
"e a-rithist."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "An seann fhacal-faire"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Facal-faire (a-rithist)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "algairim"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "ath-thriallan"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "salann"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "hais"
|
||||
|
||||
msgid "variety"
|
||||
msgstr "eug-samhail"
|
||||
|
||||
msgid "version"
|
||||
msgstr "tionndadh"
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr "cosgais cuimhne"
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "cosgais ùine"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr "co-shìneadh"
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "factar obrachaidh"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "àireamh dhearbhaidh"
|
||||
|
||||
msgid "block size"
|
||||
msgstr "meud nam blocaichean"
|
||||
|
||||
msgid "name"
|
||||
msgstr "ainm"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "seòrsa susbainte"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "ainm-còd"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "cead"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "ceadan"
|
||||
|
||||
msgid "group"
|
||||
msgstr "buidheann"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "buidhnean"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "staid superuser"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"Iomruinidh seo gu bheil a h-uile aig a’ chleachdaiche seo gun a bhith ’gan "
|
||||
"iomruineadh fa leth."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"Am buidheann ris a bhuineas an cleachdaiche seo. Gheibh cleachdaiche a h-"
|
||||
"uile cead a chaidh a thoirt dha ghin dhe na buidhnean aige."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "ceadan a’ chleachdaiche"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "Ceadan sònraichte airson a’ chleachdaiche seo."
|
||||
|
||||
msgid "username"
|
||||
msgstr "ainm-cleachdaiche"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr ""
|
||||
"Riatanach. 150 caractar air a char as motha. Litrichean, àireamhan agus @/./"
|
||||
"+/-/_ a-mhàin."
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Tha cleachdaiche air a bheil an t-ainm-cleachdaiche seo ann mar-tha."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "ainm"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "sloinneadh"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "seòladh puist-d"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "inbhe luchd-obrach"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr ""
|
||||
"Iomruinidh seo an urrainn dhan chleachdaiche seo clàradh a-steach gu làrach "
|
||||
"nan rianairean gus nach urrainn."
|
||||
|
||||
msgid "active"
|
||||
msgstr "staid ghnìomhach"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Iomruinidh seo an dèid dèiligeadh ris a’ cleachdaiche seo mar fhear "
|
||||
"gnìomhach gus nach dèid. Neo-thagh seo seach an cunntas a sguabadh às."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "fhuair e ballrachd"
|
||||
|
||||
msgid "user"
|
||||
msgstr "cleachdaiche"
|
||||
|
||||
msgid "users"
|
||||
msgstr "cleachdaichean"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
"Tha am facal-faire seo ro ghoirid. Feumaidh %(min_length)d charactar a bhith "
|
||||
"ann air a char as lugha."
|
||||
msgstr[1] ""
|
||||
"Tha am facal-faire seo ro ghoirid. Feumaidh %(min_length)d charactar a bhith "
|
||||
"ann air a char as lugha."
|
||||
msgstr[2] ""
|
||||
"Tha am facal-faire seo ro ghoirid. Feumaidh %(min_length)d caractaran a "
|
||||
"bhith ann air a char as lugha."
|
||||
msgstr[3] ""
|
||||
"Tha am facal-faire seo ro ghoirid. Feumaidh %(min_length)d caractar a bhith "
|
||||
"ann air a char as lugha."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] ""
|
||||
"Feumaidh %(min_length)d charactar a bhith san fhacal-fhaire agad air a char "
|
||||
"as lugha."
|
||||
msgstr[1] ""
|
||||
"Feumaidh %(min_length)d charactar a bhith san fhacal-fhaire agad air a char "
|
||||
"as lugha."
|
||||
msgstr[2] ""
|
||||
"Feumaidh %(min_length)d caractaran a bhith san fhacal-fhaire agad air a char "
|
||||
"as lugha."
|
||||
msgstr[3] ""
|
||||
"Feumaidh %(min_length)d caractar a bhith san fhacal-fhaire agad air a char "
|
||||
"as lugha."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "Tha am facal-faire agad ro choltach ri %(verbose_name)s."
|
||||
|
||||
msgid "Your password can’t be too similar to your other personal information."
|
||||
msgstr ""
|
||||
"Chan fhaod am facal-faire agad a bhith ro choltach ris an fhiosrachadh "
|
||||
"phearsanta eile agad."
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "Tha am facal-faire seo ro chumanta."
|
||||
|
||||
msgid "Your password can’t be a commonly used password."
|
||||
msgstr ""
|
||||
"Chan fhaod thu facal-faire a chleachdadh a chleachd mòran daoine mar-thà."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "Chan eil ach àireamhan san fhacal-fhaire seo."
|
||||
|
||||
msgid "Your password can’t be entirely numeric."
|
||||
msgstr ""
|
||||
"Feumaidh caractaran a bhith san fhacal-fhaire agad nach eil ’nan àireamhan."
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "Ath-shuidheachadh an fhacail-fhaire air %(site_name)s"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Cuir a-steach ainm-cleachdaiche dligheach. Chan fhaod ach litrichean gun "
|
||||
"sràcan, àireamhan is caractaran @/./+/-/_ a bhith ’na bhroinn."
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Cuir a-steach ainm-cleachdaiche dligheach. Chan fhaod ach litrichean, "
|
||||
"àireamhan is caractaran @/./+/-/_ a bhith ’na bhroinn."
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Air a clàradh a-mach"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "Ath-shuidheachadh an fhacail-fhaire"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "Chaidh ath-shuidheachadh an fhacail-fhaire a chur"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "Cuir a-steach facal-faire ùr"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "Cha deach le ath-shuidheachadh an facail-faire"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "Tha ath-shuidheachadh an fhacail-fhaire deiseil"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "Atharrachadh an facail-fhaire"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "Chaidh am facal-faire atharrachadh gu soirbheachail"
|
Binary file not shown.
@ -0,0 +1,314 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# fasouto <fsoutomoure@gmail.com>, 2011
|
||||
# fonso <fonzzo@gmail.com>, 2011,2013
|
||||
# fasouto <fsoutomoure@gmail.com>, 2019
|
||||
# Jannis Leidel <jannis@leidel.info>, 2011
|
||||
# Leandro Regueiro <leandro.regueiro@gmail.com>, 2011,2013
|
||||
# X Bello <xbello@gmail.com>, 2023
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-03-17 03:19-0500\n"
|
||||
"PO-Revision-Date: 2023-04-25 08:09+0000\n"
|
||||
"Last-Translator: X Bello <xbello@gmail.com>, 2023\n"
|
||||
"Language-Team: Galician (http://www.transifex.com/django/django/language/"
|
||||
"gl/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: gl\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Información persoal"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Permisos"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Datas importantes"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "O obxeto %(name)s ca clave primaria %(key)r non existe."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "O contrasinal cambiouse correctamente."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Cambiar o contrasinal: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "Autenticación e Autorización"
|
||||
|
||||
msgid "password"
|
||||
msgstr "contrasinal"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "última sesión"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "Non se configurou ningún contrasinal."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "Formato de contrasinal non válido ou algoritmo de hash descoñecido."
|
||||
|
||||
msgid "The two password fields didn’t match."
|
||||
msgstr "Os dous campos de contrasinal non coinciden."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Contrasinal"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Confirmación do contrasinal"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "Introduza o mesmo contrasinal que antes, para verificalo."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
"Non se gardan os contrasinais sen cifrar, de maneira que non se pode ver o "
|
||||
"contrasinal deste usuario, pero pode modificar o contrasinal mediante <a "
|
||||
"href=\"{}\">este formulario</a>."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"Por favor, insira un %(username)s e contrasinal correctos. Teña en conta que "
|
||||
"ambos os dous campos poden distinguir maiúsculas e minúsculas."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "Esta conta está inactiva."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "Correo electrónico"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Novo contrasinal"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Confirmación do novo contrasinal"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr "Inseriu incorrectamente o seu contrasinal actual. Insírao de novo."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Contrasinal antigo"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Contrasinal (outra vez)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "algoritmo"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "iteracións"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "sal"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "hash"
|
||||
|
||||
msgid "variety"
|
||||
msgstr "variedade"
|
||||
|
||||
msgid "version"
|
||||
msgstr "versión"
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr "custo de memoria"
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "coste temporal"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr "paralelismo"
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "factor de traballo"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "suma de verificación"
|
||||
|
||||
msgid "block size"
|
||||
msgstr "tamaño de bloque"
|
||||
|
||||
msgid "name"
|
||||
msgstr "nome"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "tipo de contido"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "código"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "permiso"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "permisos"
|
||||
|
||||
msgid "group"
|
||||
msgstr "grupo"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "grupos"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "estatus de superusuario"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"Indica que este usuario ten todos os permisos sen asignarllos explicitamente."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"Os grupos ós que pertence este usuario. Un usuario terá todos os permisos "
|
||||
"outorgados a cada un dos seus grupos."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "permisos de usuario"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "Permisos específicos para este usuario"
|
||||
|
||||
msgid "username"
|
||||
msgstr "nome de usuario"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr "Requerido. 150 caracteres ou menos. So letras, díxitos e @/./+/-/_."
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Xa existe un usuario con ese nome de usuario."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "nome"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "apelidos"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "enderezo de correo electrónico"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "membro do persoal"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "Indica se o usuario pode acceder a este sitio de administración."
|
||||
|
||||
msgid "active"
|
||||
msgstr "activo"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Determina se este usuario se debe considerar activo. Deseleccione isto en "
|
||||
"vez de borrar contas de usuario."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "data de rexistro"
|
||||
|
||||
msgid "user"
|
||||
msgstr "usuario"
|
||||
|
||||
msgid "users"
|
||||
msgstr "usuarios"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
"Este contrasinal é moi curto. Ten que conter polo menos %(min_length)d "
|
||||
"caracter."
|
||||
msgstr[1] ""
|
||||
"Este contrasinal é moi curto. Ten que conter polo menos %(min_length)d "
|
||||
"caracteres."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] ""
|
||||
"O seu contrasinal ten que conter polo menos %(min_length)d caracter."
|
||||
msgstr[1] ""
|
||||
"O seu contrasinal ten que conter polo menos %(min_length)d caracteres."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "O contrasinal parécese demasiado a %(verbose_name)s."
|
||||
|
||||
msgid "Your password can’t be too similar to your other personal information."
|
||||
msgstr ""
|
||||
"O seu contrasinal non pode ser tan semellante ó resto da información persal."
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "Este contrasinal é moi común."
|
||||
|
||||
msgid "Your password can’t be a commonly used password."
|
||||
msgstr "O seu contrasinal non pode ser un contrasinal de uso habitual."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "Este constrasinal só ten números."
|
||||
|
||||
msgid "Your password can’t be entirely numeric."
|
||||
msgstr "O seu contrasinal non pode ser únicamente numérico."
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "Cambio de contrasinal en %(site_name)s"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only unaccented lowercase a-z "
|
||||
"and uppercase A-Z letters, numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Introduza un nome de usuario válido. Este valor so pode conter letras sen "
|
||||
"acentos minúsculas do a ó z e maíusculas do A ó Z, números e os caracteres "
|
||||
"@/./+/-/_."
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Introduza un nome de usuario válido. Este valor pode conter so letras, "
|
||||
"números e os caracteres @/./+/-/_."
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Rematou a sesión"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "Recuperar o contrasinal"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "Enviada recuperación de contrasinal"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "Introduza novo contrasinal"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "Fallóu a recuperación do contrasinal"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "Completouse a recuperación do contrasinal"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "Cambio de contrasinal"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "O contrasinal cambiouse correctamente"
|
Binary file not shown.
@ -0,0 +1,303 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Alex Gaynor <inactive+Alex@transifex.com>, 2011-2012
|
||||
# Jannis Leidel <jannis@leidel.info>, 2011
|
||||
# Meir Kriheli <mkriheli@gmail.com>, 2012-2015,2017,2019
|
||||
# אורי רודברג <uri@speedy.net>, 2020
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-09-08 17:27+0200\n"
|
||||
"PO-Revision-Date: 2020-01-19 11:14+0000\n"
|
||||
"Last-Translator: אורי רודברג <uri@speedy.net>\n"
|
||||
"Language-Team: Hebrew (http://www.transifex.com/django/django/language/he/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: he\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % "
|
||||
"1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "מידע אישי"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "הרשאות"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "תאריכים חשובים"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "הפריט %(name)s עם המפתח הראשי %(key)r אינו קיים."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "הסיסמה שונתה בהצלחה."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "שינוי סיסמה: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "אימות והרשאות"
|
||||
|
||||
msgid "password"
|
||||
msgstr "סיסמה"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "כניסה אחרונה"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "לא נקבעה סיסמה."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "תחביר סיסמה בלתי-חוקי או אלגוריתם גיבוב לא ידוע."
|
||||
|
||||
msgid "The two password fields didn’t match."
|
||||
msgstr "שני שדות הסיסמה אינם זהים."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "סיסמה"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "אימות סיסמה"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "יש להזין את אותה סיסמה כמו קודם, לאימות."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
"הסיסמאות אינן נשמרות באופן חשוף, כך שאין דרך לראות את סיסמת המשתמש, אבל ניתן "
|
||||
"לשנות את הסיסמה בעזרת <a href=\"{}\">טופס זה</a>."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"נא להזין %(username)s וסיסמה נכונים. נא לשים לב כי שני השדות רגישים לאותיות "
|
||||
"גדולות/קטנות."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "חשבון זה אינו פעיל."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "דוא\"ל"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "סיסמה חדשה"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "אימות סיסמה חדשה"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr "סיסמתך הישנה הוזנה בצורה שגויה. נא להזינה שוב."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "סיסמה ישנה"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "סיסמה (שוב)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "אלגוריתם"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "חזרות"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "salt"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "גיבוב"
|
||||
|
||||
msgid "variety"
|
||||
msgstr "מגוון"
|
||||
|
||||
msgid "version"
|
||||
msgstr "גרסה"
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr "עלות זכרון"
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "עלות זמן"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr "מקבילות"
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "work factor"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "סיכום ביקורת"
|
||||
|
||||
msgid "name"
|
||||
msgstr "שם"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "סוג תוכן"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "שם קוד"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "הרשאה"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "הרשאות"
|
||||
|
||||
msgid "group"
|
||||
msgstr "קבוצה"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "קבוצות"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "סטטוס משתמש על"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr "מציין שלמשתמש זה יש את כל ההרשאות ללא הצורך המפורש בהענקתן."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"הקבוצות שמשתמש זה שייך אליהן. משתמש יקבל את כל ההרשאות המוקצות לכל אחת "
|
||||
"מהקבוצות שלו/שלה."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "הרשאות משתמש"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "הרשאות ספציפיות למשתמש זה."
|
||||
|
||||
msgid "username"
|
||||
msgstr "שם משתמש"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr "שדה חובה. 150 תווים או פחות. אותיות, ספרות ו-@/./+/-/_ בלבד."
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "משתמש עם שם משתמש זה קיים כבר"
|
||||
|
||||
msgid "first name"
|
||||
msgstr "שם פרטי"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "שם משפחה"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "כתובת דוא\"ל"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "סטטוס איש צוות"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "מציין האם המשתמש יכול להתחבר לאתר הניהול."
|
||||
|
||||
msgid "active"
|
||||
msgstr "פעיל"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"מציין האם יש להתייחס למשתמש כפעיל. יש לבטל בחירה זו במקום למחוק חשבונות "
|
||||
"משתמשים."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "תאריך הצטרפות"
|
||||
|
||||
msgid "user"
|
||||
msgstr "משתמש"
|
||||
|
||||
msgid "users"
|
||||
msgstr "משתמשים"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] "סיסמה זו קצרה מדי. היא חייבת להכיל לפחות תו %(min_length)d."
|
||||
msgstr[1] "סיסמה זו קצרה מדי. היא חייבת להכיל לפחות %(min_length)d תווים."
|
||||
msgstr[2] "סיסמה זו קצרה מדי. היא חייבת להכיל לפחות %(min_length)d תווים."
|
||||
msgstr[3] "סיסמה זו קצרה מדי. היא חייבת להכיל לפחות %(min_length)d תווים."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] "הסיסמה שלך חייבת להכיל לפחות תו %(min_length)d."
|
||||
msgstr[1] "הסיסמה שלך חייבת להכיל לפחות %(min_length)d תווים."
|
||||
msgstr[2] "הסיסמה שלך חייבת להכיל לפחות %(min_length)d תווים."
|
||||
msgstr[3] "הסיסמה שלך חייבת להכיל לפחות %(min_length)d תווים."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "סיסמה זו דומה מדי ל-%(verbose_name)s."
|
||||
|
||||
msgid "Your password can’t be too similar to your other personal information."
|
||||
msgstr "הסיסמה שלך לא יכולה להיות דומה מדי למידע אישי אחר שלך."
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "סיסמה זו נפוצה מדי."
|
||||
|
||||
msgid "Your password can’t be a commonly used password."
|
||||
msgstr "הסיסמה שלך לא יכולה להיות סיסמה שכיחה."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "סיסמה זו מכילה רק ספרות."
|
||||
|
||||
msgid "Your password can’t be entirely numeric."
|
||||
msgstr "הסיסמה שלך לא יכולה להכיל רק ספרות."
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "החלפת הסיסמה ב-%(site_name)s"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"יש להזין שם משתמש חוקי. ערך זה יכול להכיל אותיות אנגליות, ספרות והתווים @/./"
|
||||
"+/-/_ בלבד."
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"יש להזין שם משתמש חוקי. ערך זה יכול להכיל אותיות, ספרות והתווים @/./+/-/_ "
|
||||
"בלבד."
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "יצאת מהמערכת"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "איפוס סיסמה"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "איפוס הסיסמה נשלח."
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "הזנת סיסמה חדשה"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "איפוס הסיסמה נכשל"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "איפוס הסיסמה הושלם"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "שינוי סיסמה"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "הסיסמה שונתה בהצלחה"
|
Binary file not shown.
@ -0,0 +1,290 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# alkuma <alok.kumar@gmail.com>, 2013
|
||||
# Chandan kumar <chandankumar.093047@gmail.com>, 2012
|
||||
# Jannis Leidel <jannis@leidel.info>, 2011
|
||||
# Sandeep Satavlekar <sandysat@gmail.com>, 2011
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-24 13:46+0200\n"
|
||||
"PO-Revision-Date: 2017-09-24 14:24+0000\n"
|
||||
"Last-Translator: Jannis Leidel <jannis@leidel.info>\n"
|
||||
"Language-Team: Hindi (http://www.transifex.com/django/django/language/hi/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: hi\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "व्यक्तिगत सूचना"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "अनुमतियाँ"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "महत्त्वपूर्ण तिथियाँ"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr ""
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "शब्दकूट बदली कामयाब"
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "शब्दकूट बदलें: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr ""
|
||||
|
||||
msgid "password"
|
||||
msgstr "शब्दकूट"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "पिछला लॉगिन"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "कोई कूटशब्द नहीं।"
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "अवैध कूटशब्द प्रारूप या अज्ञात द्रुतान्वेषण कलन विधि"
|
||||
|
||||
msgid "The two password fields didn't match."
|
||||
msgstr "यह दो शब्दकूट क्षेत्रों का मेल नहीं होता "
|
||||
|
||||
msgid "Password"
|
||||
msgstr "कूटशब्द"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "कूटशब्द पुष्टि"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user's "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr "कृपया सही %(username)s व कूटशब्द भरें। भरते समय लघु और दीर्घ अक्षरों का ध्यान रखें।"
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "यस खाता सुस्त है"
|
||||
|
||||
msgid "Email"
|
||||
msgstr "डाक पता"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "नया शब्दकूट"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "नया शब्दकूट पुष्टि"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr "आपने पुराना शब्दकूट गलत दर्ज किया है । कृपया फिर से दर्ज करें"
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "पुराना शब्दकूट"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "शब्दकूट (दुबारा)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "अलगोरिथम"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "पुनरूक्तियाँ"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "साल्ट"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "हैश"
|
||||
|
||||
msgid "variety"
|
||||
msgstr ""
|
||||
|
||||
msgid "version"
|
||||
msgstr ""
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr ""
|
||||
|
||||
msgid "time cost"
|
||||
msgstr ""
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr ""
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "कार्य फ़ैक्टर"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "चेकसम"
|
||||
|
||||
msgid "name"
|
||||
msgstr "नाम"
|
||||
|
||||
msgid "content type"
|
||||
msgstr ""
|
||||
|
||||
msgid "codename"
|
||||
msgstr "कोडनेम"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "अनुमति"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "अनुमतियाँ"
|
||||
|
||||
msgid "group"
|
||||
msgstr "वर्ग"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "वर्गों"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "सर्वोच्च प्रयोक्ता स्थिति"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"निर्दिष्ट करता है कि जो इस उपयोगकर्ता के पास सभी अनुमतियाँ उन्हें बिना बताए स्पष्ट रूप से "
|
||||
"निर्धारित है."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "प्रयोक्ता अनुमतियाँ"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr ""
|
||||
|
||||
msgid "username"
|
||||
msgstr "प्रयोक्ता नाम"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr ""
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "इस नाम के साथ प्रवोक्ता अस्तित्व है"
|
||||
|
||||
msgid "first name"
|
||||
msgstr "पहला नाम"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "आखिरी नाम"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "डाक पता"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "कर्मचारी स्थिति"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "तय करता हैं की उपयोगकर्ता इस साईट प्रशासन में प्रवेश कर सकता हैं या नहीं |"
|
||||
|
||||
msgid "active"
|
||||
msgstr "सक्रिय"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"निर्दिष्ट करता है कि क्या इस उपयोगकर्ता को सक्रिय माना जाना चाहिए.खातों को हटाने की "
|
||||
"बजाय इस अचयनित करे."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "तिथि भरती"
|
||||
|
||||
msgid "user"
|
||||
msgstr "उपभोक्ता"
|
||||
|
||||
msgid "users"
|
||||
msgstr "उपभोक्ताऐं"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr ""
|
||||
|
||||
msgid "Your password can't be too similar to your other personal information."
|
||||
msgstr ""
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr ""
|
||||
|
||||
msgid "Your password can't be a commonly used password."
|
||||
msgstr ""
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr ""
|
||||
|
||||
msgid "Your password can't be entirely numeric."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "%(site_name)s पर कूटशब्द को पुनःठीक करे"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "लाग्ड आउट "
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password change"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr ""
|
Binary file not shown.
@ -0,0 +1,306 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Bojan Mihelač <bmihelac@mihelac.org>, 2012
|
||||
# Davor Lučić <r.dav.lc@gmail.com>, 2012
|
||||
# Jannis Leidel <jannis@leidel.info>, 2011
|
||||
# Mislav Cimperšak <mislav.cimpersak@gmail.com>, 2013,2015
|
||||
# Nino <ninonandroid@gmail.com>, 2013
|
||||
# senko <senko.rasic@dobarkod.hr>, 2012
|
||||
# zmasek <zlatko.masek@gmail.com>, 2012
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-24 13:46+0200\n"
|
||||
"PO-Revision-Date: 2017-09-24 14:24+0000\n"
|
||||
"Last-Translator: Jannis Leidel <jannis@leidel.info>\n"
|
||||
"Language-Team: Croatian (http://www.transifex.com/django/django/language/"
|
||||
"hr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: hr\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Osobni podaci"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Privilegije"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Važni datumi"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "Unos %(name)s sa primarnim ključem %(key)r ne postoji."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Lozinka uspješno promijenjena."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Promijeni lozinku: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr ""
|
||||
|
||||
msgid "password"
|
||||
msgstr "lozinka"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "posljednja prijava"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "Lozinka nije postavljena."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "Neispravan format lozinke ili nepoznati hashing algoritam."
|
||||
|
||||
msgid "The two password fields didn't match."
|
||||
msgstr "Dva polja za lozinku nisu jednaka."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Lozinka"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Potvrda lozinke"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "Unesite istu lozinku, za potvrdu."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user's "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"Unesite ispravno %(username)s i lozinku. Imajte na umu da oba polja mogu "
|
||||
"biti velika i mala slova."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "Ovaj korisnički račun nije aktivan."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "E-mail"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Nova lozinka"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Potvrda nove lozinke"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr "Vaša stara lozinka je pogrešno unesena. Molim unesite ponovo."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Stara lozinka"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Lozinka (unesi ponovo)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "algoritam"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "iteracije"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "slučajna vrijednost"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "hash"
|
||||
|
||||
msgid "variety"
|
||||
msgstr ""
|
||||
|
||||
msgid "version"
|
||||
msgstr ""
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr ""
|
||||
|
||||
msgid "time cost"
|
||||
msgstr ""
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr ""
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "količina rada"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "zbroj za provjeru"
|
||||
|
||||
msgid "name"
|
||||
msgstr "ime"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "tip sadržaja"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "kodno ime"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "privilegija"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "privilegije"
|
||||
|
||||
msgid "group"
|
||||
msgstr "grupa"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "grupe"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "superuser status"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"Određuje da ovaj korisnik ima sve privilegije te uklanja potrebu da se "
|
||||
"privilegije unose eksplicitno/ručno."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"Grupe kojima ovaj korisnik pripada. Korisnik će imati sve privilegije grupa "
|
||||
"kojima pripada."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "privilegije korisnika"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "Određene privilegije za korisnika."
|
||||
|
||||
msgid "username"
|
||||
msgstr "korisničko ime"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr ""
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Korisnik sa navedenim imenom već postoji."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "ime"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "prezime"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "e-mail adresa"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "status osoblja"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "Određuje može li se korisnik prijaviti na ove stranice administracije."
|
||||
|
||||
msgid "active"
|
||||
msgstr "aktivan"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Određuje treba li se ovaj korisnik tretirati kao aktivan korisnik. Koristite "
|
||||
"ovu opciju umjesto brisanja korisničkih računa."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "datum učlanjenja"
|
||||
|
||||
msgid "user"
|
||||
msgstr "korisnik"
|
||||
|
||||
msgid "users"
|
||||
msgstr "korisnici"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
"Lozinka nije dovoljno dugačka. Mora sadržavati minimalno %(min_length)d znak."
|
||||
msgstr[1] ""
|
||||
"Lozinka nije dovoljno dugačka. Mora sadržavati minimalno %(min_length)d "
|
||||
"znaka."
|
||||
msgstr[2] ""
|
||||
"Lozinka nije dovoljno dugačka. Mora sadržavati minimalno %(min_length)d "
|
||||
"znakova."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] "Lozinka mora sadržavati minimalno %(min_length)d znak."
|
||||
msgstr[1] "Lozinka mora sadržavati minimalno %(min_length)d znaka."
|
||||
msgstr[2] "Lozinka mora sadržavati minimalno %(min_length)d znakova."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr ""
|
||||
|
||||
msgid "Your password can't be too similar to your other personal information."
|
||||
msgstr ""
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr ""
|
||||
|
||||
msgid "Your password can't be a commonly used password."
|
||||
msgstr ""
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "Lozinka se u potpunosti sastoji od brojeva."
|
||||
|
||||
msgid "Your password can't be entirely numeric."
|
||||
msgstr "Lozinka se ne smije u potpunosti sastojati od brojeva."
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "Resetiranje lozinke na %(site_name)s"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Niste logirani"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "Resetiranje lozinke"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "Resetiranje lozinke poslano"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "Unesite novu lozinku"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "Resetiranje lozinke neuspješno"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "Resetiranje lozinke završeno"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "Promjena lozinke"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "Promjena lozinke uspješna"
|
Binary file not shown.
@ -0,0 +1,317 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Michael Wolf <milupo@sorbzilla.de>, 2016-2017,2019,2021,2023
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-03-17 03:19-0500\n"
|
||||
"PO-Revision-Date: 2023-04-25 08:09+0000\n"
|
||||
"Last-Translator: Michael Wolf <milupo@sorbzilla.de>, "
|
||||
"2016-2017,2019,2021,2023\n"
|
||||
"Language-Team: Upper Sorbian (http://www.transifex.com/django/django/"
|
||||
"language/hsb/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: hsb\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || "
|
||||
"n%100==4 ? 2 : 3);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Wosobinske informacije"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Prawa"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Wažne daty"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "Objekt %(name)s z primarnym klučom %(key)r njeeksistuje."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Hesło je so wuspěšnje změniło."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Hesło změnić: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "Awtentifikacija a awtorizacija"
|
||||
|
||||
msgid "password"
|
||||
msgstr "hesło"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "poslednje přizjewjenje"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "Žane hesło nastajene."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "Njepłaćiwy hesłowy format abo njeznaty kontrolny algoritmus."
|
||||
|
||||
msgid "The two password fields didn’t match."
|
||||
msgstr "Dwě heslowej poli sej njewotpowědujetej."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Hesło"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Hesłowe wobkrućenje"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "Zapodajće samsne hesło kaž do toho, za přepruwowanje."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
"Hrube hesła so njeskładuja, tohodla njeda so hesło tutoho wužwarja widźeć, "
|
||||
"ale móžeće hesło z pomocu <a href=\"{}\">tutoho formulara</a> změnić. "
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"Prošu zapodajće korektne %(username)s a hesło. Dźiwajće na to, zo wobě poli "
|
||||
"móžetej mjez wulko- a małopisanjom rozeznawać."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "Tute konto je inaktiwne."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "E-mejl"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Nowe hesło"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Wobkrućenje noweho hesła"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr "Waše stare hesło je so wopak zapodało. Prošu zapodajće jo hišće raz."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Stare hesło"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Hesło (znowa)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "algoritmus"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "wospjetowanja"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "sól"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "hash"
|
||||
|
||||
msgid "variety"
|
||||
msgstr "warianta"
|
||||
|
||||
msgid "version"
|
||||
msgstr "wersija"
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr "Składowa přetrjeba"
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "Časowa přetrjeba"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr "paralelizm"
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "dźěłowy faktor"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "pruwowanska suma"
|
||||
|
||||
msgid "block size"
|
||||
msgstr "blokowa wulkosć"
|
||||
|
||||
msgid "name"
|
||||
msgstr "mjeno"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "wobsahowy typ"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "kodowe mjeno"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "prawo"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "prawa"
|
||||
|
||||
msgid "group"
|
||||
msgstr "skupina"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "skupiny"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "status superwužiwarja"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"Woznamjenja, zo tutón wužiwar ma wšě prawa bjez toho, zo by móhł je "
|
||||
"eksplicitnje připokazać."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"Skupiny, ke kotrymž wužiwar słuša. Wužiwar dóstanje wšě prawa, kotrež jemu "
|
||||
"skupiny dawaja."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "wužiwarske prawa"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "Wěste prawa za tutoho wužiwarja."
|
||||
|
||||
msgid "username"
|
||||
msgstr "wužiwarske mjeno"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr "Trěbne. 150 znamješkow abo mjenje. Jenož pismiki, cyfry a @/./+/-/_."
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Wužiwar z tutym mjenom hižo eksistuje."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "předmjeno"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "swójbne mjeno"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "e-mejlowa adresa"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "personalny status"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr ""
|
||||
"Woznamjenja, hač wužiwar móže so pola administratoroweho sydła přizjewić."
|
||||
|
||||
msgid "active"
|
||||
msgstr "aktiwny"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Woznamjenja, hač maja z wužiwarjom jako aktiwnym wobchadźeć. Znjemóžńće to "
|
||||
"město toho, zo byšće konto zhašał."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "čłon wot"
|
||||
|
||||
msgid "user"
|
||||
msgstr "wužiwar"
|
||||
|
||||
msgid "users"
|
||||
msgstr "wužiwarjo"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
"Tute hesło je překrótke. Dyrbi znajmjeńša %(min_length)d znamješko "
|
||||
"wobsahować."
|
||||
msgstr[1] ""
|
||||
"Tute hesło je překrótke. Dyrbi znajmjeńša %(min_length)d znamješce "
|
||||
"wobsahować."
|
||||
msgstr[2] ""
|
||||
"Tute hesło je překrótke. Dyrbi znajmjeńša %(min_length)d znamješka "
|
||||
"wobsahować."
|
||||
msgstr[3] ""
|
||||
"Tute hesło je překrótke. Dyrbi znajmjeńša %(min_length)d znamješkow "
|
||||
"wobsahować."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] "Waše hesło dyrbi znajmjeńša %(min_length)d znamješko měć."
|
||||
msgstr[1] "Waše hesło dyrbi znajmjeńša %(min_length)d znamješce měć."
|
||||
msgstr[2] "Waše hesło dyrbi znajmjeńša %(min_length)d znamješka měć."
|
||||
msgstr[3] "Waše hesło dyrbi znajmjeńša %(min_length)d znamješkow měć."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "Hesło je na %(verbose_name)s přepodobne."
|
||||
|
||||
msgid "Your password can’t be too similar to your other personal information."
|
||||
msgstr "Waše hesło njemóže na waše druhe wosobinske informacije podobne być."
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "Tute hesło je přehuste,"
|
||||
|
||||
msgid "Your password can’t be a commonly used password."
|
||||
msgstr "Waše hesło njemóže husto wužwane hesło być."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "Tute hesło je cyle numeriske."
|
||||
|
||||
msgid "Your password can’t be entirely numeric."
|
||||
msgstr "Waše hesło njemóže cyle numeriske być."
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "Hesło je so na %(site_name)s wróćo stajiło."
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only unaccented lowercase a-z "
|
||||
"and uppercase A-Z letters, numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Zapodajće płaćiwe wužiwarske mjeno. Tuta hódnota smě jenož małopismiki bjez "
|
||||
"diakritiskich znamješkow a-z a wulkopismiki A-Z, ličby a znamješka @/./+/-/_ "
|
||||
"wobsahować."
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Zapodajće płaćiwe wužiwarske mjeno. Tuta hódnota smě jenož pismiki, ličby a "
|
||||
"znamješka @/./+/-/_ wobsahować."
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Wotzjewjeny"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "Wróćostajenje hesła"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "Wróćostajenje hesła jo se wotpósłało."
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "Zapodajće nowe hesło"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "Wróćostajenje hesła njeje so poradźiło"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "Wróćostajenje hesła je zakónčene"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "Změnjenje hesła"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "Hesło je so wuspěšnje změniło"
|
Binary file not shown.
@ -0,0 +1,308 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# András Veres-Szentkirályi, 2016-2017
|
||||
# Istvan Farkas <istvan.farkas@gmail.com>, 2019
|
||||
# Jannis Leidel <jannis@leidel.info>, 2011
|
||||
# János R, 2014
|
||||
# Szilveszter Farkas <szilveszter.farkas@gmail.com>, 2011
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-09-08 17:27+0200\n"
|
||||
"PO-Revision-Date: 2019-11-18 09:27+0000\n"
|
||||
"Last-Translator: Istvan Farkas <istvan.farkas@gmail.com>\n"
|
||||
"Language-Team: Hungarian (http://www.transifex.com/django/django/language/"
|
||||
"hu/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: hu\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Személyes információ"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Jogosultságok"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Fontos dátumok"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "%(name)s objektum %(key)r elsődleges kulccsal nem létezik."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Sikeres jelszóváltoztatás."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Jelszó megváltoztatása: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "Hitelesítés és engedélyezés"
|
||||
|
||||
msgid "password"
|
||||
msgstr "jelszó"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "utolsó bejelentkezés"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "Nincs jelszó beállítva."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "Érvénytelen jelszóformátum vagy ismeretlen hash-algoritmus."
|
||||
|
||||
msgid "The two password fields didn’t match."
|
||||
msgstr "A beírt két jelszó nem egyezik."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Jelszó"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Jelszó megerősítése"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "Írja be az előbb megadott jelszót, ellenőrzés céljából."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
"A jelszavakat olvasható formában nem tároljuk, így egy felhasználó jelszavát "
|
||||
"nem lehet mgnézni, de át lehet állítani <a href=\"{}\">ezzel az űrlappal</a>."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"Írjon be egy helyes %(username)s és jelszót. Mindkét mező kisbetű-nagybetű "
|
||||
"érzékeny lehet."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "Ez a fiók inaktív."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "E-mail"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Új jelszó"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Új jelszó megerősítése"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr "A régi jelszó hibásan lett megadva. Írja be újra."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Régi jelszó"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Jelszó újra"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "algoritmus"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "iterációk"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "salt"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "hash"
|
||||
|
||||
msgid "variety"
|
||||
msgstr "változat"
|
||||
|
||||
msgid "version"
|
||||
msgstr "verzió"
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr "memória költség"
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "idő költség"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr "párhuzamosság"
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "erősség"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "ellenőrző összeg"
|
||||
|
||||
msgid "name"
|
||||
msgstr "név"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "tartalom típusa"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "kódnév"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "jogosultság"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "jogosultságok"
|
||||
|
||||
msgid "group"
|
||||
msgstr "csoport"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "csoportok"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "rendszergazda státusz"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"Megadja, hogy ez a felhasználó rendelkezik-e minden jogosultsággal anélkül, "
|
||||
"hogy azt külön meg kellene adni."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"A csoportok, amelyekhez a felhasználó tartozik. A felhasználó minden egyes "
|
||||
"csoportja jogosultságaival rendelkezni fog."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "felhasználói jogosultságok"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "A felhasználó egyedi jogosultságai."
|
||||
|
||||
msgid "username"
|
||||
msgstr "felhasználónév"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr ""
|
||||
"Kötelező. Legfeljebb 150 karakter. Betűk, számok és @/./+/-/_ karakterek."
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Létezik már egy felhasználó ezzel a névvel."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "keresztnév"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "vezetéknév"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "e-mail cím"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "személyzet státusz"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr ""
|
||||
"Megadja, hogy a felhasználó bejelentkezhet-e erre az adminisztrációs oldalra."
|
||||
|
||||
msgid "active"
|
||||
msgstr "aktív"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Megadja, hogy a felhasználó aktív-e. Állítsa át ezt az értéket a fiók "
|
||||
"törlése helyett."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "csatlakozás dátuma"
|
||||
|
||||
msgid "user"
|
||||
msgstr "felhasználó"
|
||||
|
||||
msgid "users"
|
||||
msgstr "felhasználók"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
"Ez a jelszó túl rövid. Legalább %(min_length)d karakter hosszú legyen."
|
||||
msgstr[1] ""
|
||||
"Ez a jelszó túl rövid. Legalább %(min_length)d karakter hosszú legyen."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] ""
|
||||
"A jelszavának legalább %(min_length)d karakter hosszúnak kell lennie."
|
||||
msgstr[1] ""
|
||||
"A jelszavának legalább %(min_length)d karakter hosszúnak kell lennie."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "A jelszava túlságosan hasonlít a következőhöz: %(verbose_name)s."
|
||||
|
||||
msgid "Your password can’t be too similar to your other personal information."
|
||||
msgstr "A jelszó nem lehet hasonló a személyes adatok egyikéhez sem."
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "Ez a jelszó túlságosan gyakori."
|
||||
|
||||
msgid "Your password can’t be a commonly used password."
|
||||
msgstr "A jelszó nem lehet a túl gyakran használt jelszavak közül."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "A jelszava kizárólag számjegyekből áll."
|
||||
|
||||
msgid "Your password can’t be entirely numeric."
|
||||
msgstr "A jelszó nem állhat csak számjegyekből."
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "Jelszó újragenerálása ezen az oldalon: %(site_name)s"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Írjon be egy érvényes felhasználónevet, mely csak ékezetmentes betűket, "
|
||||
"számokat és @/./+/-/_ karaktereket tartalmazhat."
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Írjon be egy érvényes felhasználónevet, mely csak betűket, számokat és @/./"
|
||||
"+/-/_ karaktereket tartalmazhat."
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Kijelentkezve"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "Jelszó újragenerálása"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "Jelszó beállítás infók elküldve"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "Írja be az új jelszavát"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "Jelszó beállítása sikertelen"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "Jelszó beállítása kész"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "Jelszó megváltoztatása"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "Sikeres jelszóváltoztatás"
|
Binary file not shown.
@ -0,0 +1,295 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Ruben Harutyunov <rharutyunov@mail.ru>, 2018
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-24 13:46+0200\n"
|
||||
"PO-Revision-Date: 2018-11-11 20:11+0000\n"
|
||||
"Last-Translator: Ruben Harutyunov <rharutyunov@mail.ru>\n"
|
||||
"Language-Team: Armenian (http://www.transifex.com/django/django/language/"
|
||||
"hy/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: hy\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Անձնական տվյալներ"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Իրավունքներ"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Կարևոր ամսաթվեր"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "%(key)r հիմնական բանալով %(name)s օբյեկտ գոյություն չունի։"
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Գաղտնաբառը հաջողությամբ փոխվեց։"
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Փոխել գաղտնաբառը․ %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "Նույնականացում և Լիազորում"
|
||||
|
||||
msgid "password"
|
||||
msgstr "գաղտնաբառ"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "վերջին մուտք"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "Գաղտնաբառը նշված չէ։"
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr "Գաղտնաբառի սխալ ֆորմատ, կամ անհայտ հեշավորման ալգորիթմ։"
|
||||
|
||||
msgid "The two password fields didn't match."
|
||||
msgstr "Երկու գաղտնաբառերը չեն համապատասխանում իրար։"
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Գաղտնաբառ"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Գաղտնաբառը նորից"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "Մուտքագրեք հին գաղտնաբառը, ստուգման համար։"
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user's "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"Մուտքագրեք ճիշտ %(username)s և գաղտնաբառ։ Երկու դաշտերն էլ տառաշարազգայուն "
|
||||
"են։"
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "Այս օգտագործողը ակտիվ չէ։"
|
||||
|
||||
msgid "Email"
|
||||
msgstr "Email"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Նոր գաղտնաբառ"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Նոր գաղտնաբառը նորից"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr "Հին գաղտնաբառը սխալ է։ Մուտքագրեք նորից։"
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Հին գաղտնաբառ"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Գաղտնաբառ (նորից)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "ալգորիթմ"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "իտերացիաներ"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "աղ"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "հեշ"
|
||||
|
||||
msgid "variety"
|
||||
msgstr ""
|
||||
|
||||
msgid "version"
|
||||
msgstr ""
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr ""
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "տևողություն"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr ""
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "աշխատանքային ֆակտոր"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "checksum"
|
||||
|
||||
msgid "name"
|
||||
msgstr "անուն"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "պարունակության տիպ"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "կոդային անուն"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "իրավունքնե"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "իրավունքներ"
|
||||
|
||||
msgid "group"
|
||||
msgstr "խումբ"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "խմբեր"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "սուպերօգտագործողի կարգավիճակ"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"Ցույց է տալիս, որ օգտագործողը ունի բոլոր իրավունքները, առանց նրանց նշման։"
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"Խումբը, որին պատկանում է օգտագործողը։ Օգտագործողը ստանում է իր խմբին տրված "
|
||||
"բոլոր իրավունքները։"
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "օգտագործողի իրավունքները"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "Օգտագործողի հատուկ իրավունքները։"
|
||||
|
||||
msgid "username"
|
||||
msgstr "օգտագործողի անուն"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr ""
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Այդ անունով օգտագործող արդեն գոյություն ունի։"
|
||||
|
||||
msgid "first name"
|
||||
msgstr "անուն"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "ազգանուն"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "email հասցե"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "անձնակազմի կարգավիճակ"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr ""
|
||||
"Ցույց է տալիս, թե արդյոք օգտագործողը կարոզ է մուտք գործել ադմինիստրավորման "
|
||||
"բաժին։"
|
||||
|
||||
msgid "active"
|
||||
msgstr "ակտիվ"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Ցույց է տալիս, թե արդյոք օգտագործողին կարելի է համարել ակտիվ։ Ապընտրեք, "
|
||||
"օգտագործողին հեռացնելու փոխարեն։"
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "միացել է"
|
||||
|
||||
msgid "user"
|
||||
msgstr "օգտագործող"
|
||||
|
||||
msgid "users"
|
||||
msgstr "օգտագործողներ"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
"Գաղտնաբառը շատ կարճ է։ Այն պետք է պարունակի ամենաքիչը %(min_length)d նիշ։"
|
||||
msgstr[1] ""
|
||||
"Գաղտնաբառը շատ կարճ է։ Այն պետք է պարունակի ամենաքիչը %(min_length)d նիշ։"
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] "Գաղտնաբառը պետք է պարունակի ամենաքիչը %(min_length)d նիշ։"
|
||||
msgstr[1] "Գաղտնաբառը պետք է պարունակի ամենաքիչը %(min_length)d նիշ։"
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "Գաղտնաբառը շատ նման է %(verbose_name)s֊ին։"
|
||||
|
||||
msgid "Your password can't be too similar to your other personal information."
|
||||
msgstr "Գաղտնաբառը չի կարող շատ նման լինել ձեր անձնական ինֆորմացիային։"
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "Գաղտնաբառը շատ տարածված է։"
|
||||
|
||||
msgid "Your password can't be a commonly used password."
|
||||
msgstr "Գաղտնաբառը չպետք է լինի տարածված գաղտնաբառերից մեկը։"
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "Գաղտնաբառը բաղկացած է միայն թվերից։"
|
||||
|
||||
msgid "Your password can't be entirely numeric."
|
||||
msgstr "Գաղտնաբառը չպետք է բաղկացած լինի միայն թվերից։"
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "Գաղտնաբառի փոփոխում %(site_name)s կայքում։"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Դուք դուրս եք եկել"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "Գաղտնաբառի փոփոխում"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "Գաղտնաբառի փոփոխման հղումն ուղարկված է"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "Մուտքագրեք նոր գաղտնաբառը"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "Գաղտնաբառի փոփոխումը չի ավարտվել հաջողությամբ"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "Գաղտնաբառի փոփոխումը ավարտված է"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "Գաղտնաբառի փոփոխում"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "Գաղտնաբառի փոփոխումը ավարտվել է հաջողությամբ"
|
Binary file not shown.
@ -0,0 +1,310 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Martijn Dekker <mcdutchie@hotmail.com>, 2012,2021
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-09-21 10:22+0200\n"
|
||||
"PO-Revision-Date: 2021-09-22 09:22+0000\n"
|
||||
"Last-Translator: Transifex Bot <>\n"
|
||||
"Language-Team: Interlingua (http://www.transifex.com/django/django/language/"
|
||||
"ia/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ia\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Personal info"
|
||||
msgstr "Information personal"
|
||||
|
||||
msgid "Permissions"
|
||||
msgstr "Permissiones"
|
||||
|
||||
msgid "Important dates"
|
||||
msgstr "Datas importante"
|
||||
|
||||
#, python-format
|
||||
msgid "%(name)s object with primary key %(key)r does not exist."
|
||||
msgstr "Le objecto %(name)s con le clave primari %(key)r non existe."
|
||||
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Le cambio del contrasigno ha succedite."
|
||||
|
||||
#, python-format
|
||||
msgid "Change password: %s"
|
||||
msgstr "Cambia contrasigno: %s"
|
||||
|
||||
msgid "Authentication and Authorization"
|
||||
msgstr "Authentication e autorisation"
|
||||
|
||||
msgid "password"
|
||||
msgstr "contrasigno"
|
||||
|
||||
msgid "last login"
|
||||
msgstr "ultime session"
|
||||
|
||||
msgid "No password set."
|
||||
msgstr "Nulle contrasigno definite."
|
||||
|
||||
msgid "Invalid password format or unknown hashing algorithm."
|
||||
msgstr ""
|
||||
"Le formato del contrasigno es invalide o le algorithmo de hash es incognite."
|
||||
|
||||
msgid "The two password fields didn’t match."
|
||||
msgstr "Le duo campos de contrasigno non es identic."
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Contrasigno"
|
||||
|
||||
msgid "Password confirmation"
|
||||
msgstr "Confirma contrasigno"
|
||||
|
||||
msgid "Enter the same password as before, for verification."
|
||||
msgstr "Scribe le mesme contrasigno que antea, pro verification."
|
||||
|
||||
msgid ""
|
||||
"Raw passwords are not stored, so there is no way to see this user’s "
|
||||
"password, but you can change the password using <a href=\"{}\">this form</a>."
|
||||
msgstr ""
|
||||
"Le contrasignos non es immagazinate in forma de texto simple, dunque il non "
|
||||
"es possibile vider le contrasigno de iste usator, ma tu pote cambiar le "
|
||||
"contrasigno con <a href=\"{}\">iste formulario</a>."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please enter a correct %(username)s and password. Note that both fields may "
|
||||
"be case-sensitive."
|
||||
msgstr ""
|
||||
"Per favor entra un %(username)s e contrasigno correcte. Nota que ambe campos "
|
||||
"pote distinguer inter majusculas e minusculas."
|
||||
|
||||
msgid "This account is inactive."
|
||||
msgstr "Iste conto es inactive."
|
||||
|
||||
msgid "Email"
|
||||
msgstr "E-mail"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Nove contrasigno"
|
||||
|
||||
msgid "New password confirmation"
|
||||
msgstr "Confirma nove contrasigno"
|
||||
|
||||
msgid "Your old password was entered incorrectly. Please enter it again."
|
||||
msgstr "Le ancian contrasigno non es correcte. Per favor scribe lo de novo."
|
||||
|
||||
msgid "Old password"
|
||||
msgstr "Ancian contrasigno"
|
||||
|
||||
msgid "Password (again)"
|
||||
msgstr "Contrasigno (de novo)"
|
||||
|
||||
msgid "algorithm"
|
||||
msgstr "algorithmo"
|
||||
|
||||
msgid "iterations"
|
||||
msgstr "iterationes"
|
||||
|
||||
msgid "salt"
|
||||
msgstr "sal"
|
||||
|
||||
msgid "hash"
|
||||
msgstr "hash"
|
||||
|
||||
msgid "variety"
|
||||
msgstr "varietate"
|
||||
|
||||
msgid "version"
|
||||
msgstr "version"
|
||||
|
||||
msgid "memory cost"
|
||||
msgstr "costo de memoria"
|
||||
|
||||
msgid "time cost"
|
||||
msgstr "costo de tempore"
|
||||
|
||||
msgid "parallelism"
|
||||
msgstr "parallelismo"
|
||||
|
||||
msgid "work factor"
|
||||
msgstr "factor de labor"
|
||||
|
||||
msgid "checksum"
|
||||
msgstr "summa de controlo"
|
||||
|
||||
msgid "block size"
|
||||
msgstr ""
|
||||
|
||||
msgid "name"
|
||||
msgstr "nomine"
|
||||
|
||||
msgid "content type"
|
||||
msgstr "typo de contento"
|
||||
|
||||
msgid "codename"
|
||||
msgstr "nomine de codice"
|
||||
|
||||
msgid "permission"
|
||||
msgstr "permission"
|
||||
|
||||
msgid "permissions"
|
||||
msgstr "permissiones"
|
||||
|
||||
msgid "group"
|
||||
msgstr "gruppo"
|
||||
|
||||
msgid "groups"
|
||||
msgstr "gruppos"
|
||||
|
||||
msgid "superuser status"
|
||||
msgstr "stato de superusator"
|
||||
|
||||
msgid ""
|
||||
"Designates that this user has all permissions without explicitly assigning "
|
||||
"them."
|
||||
msgstr ""
|
||||
"Indica que iste usator ha tote le permissiones sin assignar los "
|
||||
"explicitemente."
|
||||
|
||||
msgid ""
|
||||
"The groups this user belongs to. A user will get all permissions granted to "
|
||||
"each of their groups."
|
||||
msgstr ""
|
||||
"Le gruppos al quales iste usator pertine. Un usator recipe tote le "
|
||||
"permissiones concedite a cata un de su gruppos."
|
||||
|
||||
msgid "user permissions"
|
||||
msgstr "permissiones de usator"
|
||||
|
||||
msgid "Specific permissions for this user."
|
||||
msgstr "Permissiones specific pro iste usator."
|
||||
|
||||
msgid "username"
|
||||
msgstr "nomine de usator"
|
||||
|
||||
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
|
||||
msgstr ""
|
||||
"Obligatori. 150 characteres o minus. Litteras, cifras e @/./+/-/_ solmente."
|
||||
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Un usator con iste nomine de usator jam existe."
|
||||
|
||||
msgid "first name"
|
||||
msgstr "prenomine"
|
||||
|
||||
msgid "last name"
|
||||
msgstr "nomine de familia"
|
||||
|
||||
msgid "email address"
|
||||
msgstr "adresse de e-mail"
|
||||
|
||||
msgid "staff status"
|
||||
msgstr "stato de personal"
|
||||
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "Indica si le usator pote aperir session in iste sito administrative."
|
||||
|
||||
msgid "active"
|
||||
msgstr "active"
|
||||
|
||||
msgid ""
|
||||
"Designates whether this user should be treated as active. Unselect this "
|
||||
"instead of deleting accounts."
|
||||
msgstr ""
|
||||
"Indica si iste usator debe esser tractate como active. Dismarca isto in vice "
|
||||
"de deler contos."
|
||||
|
||||
msgid "date joined"
|
||||
msgstr "data de inscription"
|
||||
|
||||
msgid "user"
|
||||
msgstr "usator"
|
||||
|
||||
msgid "users"
|
||||
msgstr "usatores"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"character."
|
||||
msgid_plural ""
|
||||
"This password is too short. It must contain at least %(min_length)d "
|
||||
"characters."
|
||||
msgstr[0] ""
|
||||
"Le contrasigno es troppo curte. Debe continer al minus %(min_length)d "
|
||||
"character."
|
||||
msgstr[1] ""
|
||||
"Le contrasigno es troppo curte. Debe continer al minus %(min_length)d "
|
||||
"characteres."
|
||||
|
||||
#, python-format
|
||||
msgid "Your password must contain at least %(min_length)d character."
|
||||
msgid_plural "Your password must contain at least %(min_length)d characters."
|
||||
msgstr[0] "Le contrasigno debe continer al minus %(min_length)d character."
|
||||
msgstr[1] "Le contrasigno debe continer al minus %(min_length)d characteres."
|
||||
|
||||
#, python-format
|
||||
msgid "The password is too similar to the %(verbose_name)s."
|
||||
msgstr "Le contrasigno es troppo simile al %(verbose_name)s."
|
||||
|
||||
msgid "Your password can’t be too similar to your other personal information."
|
||||
msgstr ""
|
||||
"Le contrasigno non pote esser troppo similar a tu altere informationes "
|
||||
"personal."
|
||||
|
||||
msgid "This password is too common."
|
||||
msgstr "Iste contrasigno es troppo commun."
|
||||
|
||||
msgid "Your password can’t be a commonly used password."
|
||||
msgstr "Le contrasigno non pote esser un contrasigno communmente usate."
|
||||
|
||||
msgid "This password is entirely numeric."
|
||||
msgstr "Iste contrasigno es toto numeric."
|
||||
|
||||
msgid "Your password can’t be entirely numeric."
|
||||
msgstr "Le contrasigno non pote esser toto numeric."
|
||||
|
||||
#, python-format
|
||||
msgid "Password reset on %(site_name)s"
|
||||
msgstr "Reinitialisation del contrasigno in %(site_name)s"
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only English letters, "
|
||||
"numbers, and @/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Entra un nomine de usator valide. Pote continer solmente litteras anglese, "
|
||||
"numeros e le characteres @/./+/-/_."
|
||||
|
||||
msgid ""
|
||||
"Enter a valid username. This value may contain only letters, numbers, and "
|
||||
"@/./+/-/_ characters."
|
||||
msgstr ""
|
||||
"Entra un nomine de usator valide. Pote continer solmente litteras, numeros e "
|
||||
"le characteres @/./+/-/_."
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Session claudite"
|
||||
|
||||
msgid "Password reset"
|
||||
msgstr "Reinitialisation del contrasigno"
|
||||
|
||||
msgid "Password reset sent"
|
||||
msgstr "Reinitialisation del contrasigno inviate"
|
||||
|
||||
msgid "Enter new password"
|
||||
msgstr "Scribe nove contrasigno"
|
||||
|
||||
msgid "Password reset unsuccessful"
|
||||
msgstr "Reinitialisation de contrasigno fallite"
|
||||
|
||||
msgid "Password reset complete"
|
||||
msgstr "Contrasigno reinitialisate con successo"
|
||||
|
||||
msgid "Password change"
|
||||
msgstr "Cambio de contrasigno"
|
||||
|
||||
msgid "Password change successful"
|
||||
msgstr "Contrasigno cambiate con successo"
|
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user