Features:
1) Userless orders will be merged on user's registration by their phone number and/or email. Added Viewset action "merge_recently_viewed" so recently viewed products may be stored on server's side. 2) Added comprehensive products' filtering by category(support for including subcategories) Fixes: I18N
This commit is contained in:
parent
e7bf6cf912
commit
18f3b9d2e8
87 changed files with 5937 additions and 3926 deletions
134
core/filters.py
134
core/filters.py
|
|
@ -5,6 +5,7 @@ import uuid
|
||||||
from django.db.models import Avg, FloatField, OuterRef, Q, Subquery, Value
|
from django.db.models import Avg, FloatField, OuterRef, Q, Subquery, Value
|
||||||
from django.db.models.functions import Coalesce
|
from django.db.models.functions import Coalesce
|
||||||
from django.utils.http import urlsafe_base64_decode
|
from django.utils.http import urlsafe_base64_decode
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
from django_filters import (
|
from django_filters import (
|
||||||
BaseInFilter,
|
BaseInFilter,
|
||||||
BooleanFilter,
|
BooleanFilter,
|
||||||
|
|
@ -33,20 +34,27 @@ class CaseInsensitiveListFilter(BaseInFilter, CharFilter):
|
||||||
|
|
||||||
|
|
||||||
class ProductFilter(FilterSet):
|
class ProductFilter(FilterSet):
|
||||||
uuid = UUIDFilter(field_name="uuid", lookup_expr="exact", label="UUID")
|
uuid = UUIDFilter(field_name="uuid", lookup_expr="exact", label=_("UUID"))
|
||||||
name = CharFilter(field_name="name", lookup_expr="icontains", label="Name")
|
name = CharFilter(field_name="name", lookup_expr="icontains", label=_("Name"))
|
||||||
categories = CaseInsensitiveListFilter(field_name="category__name", label="Categories")
|
categories = CaseInsensitiveListFilter(field_name="category__name", label=_("Categories"))
|
||||||
category_uuid = CharFilter(field_name="category__uuid", lookup_expr="exact", label="Category")
|
category_uuid = CharFilter(
|
||||||
category_slugs = CaseInsensitiveListFilter(field_name="category__slug", label="Categories Slug")
|
method="filter_category",
|
||||||
tags = CaseInsensitiveListFilter(field_name="tags__tag_name", label="Tags")
|
label="Category (UUID)"
|
||||||
min_price = NumberFilter(field_name="stocks__price", lookup_expr="gte", label="Min Price")
|
)
|
||||||
max_price = NumberFilter(field_name="stocks__price", lookup_expr="lte", label="Max Price")
|
categories_slugs = CaseInsensitiveListFilter(field_name="category__slug", label=_("Categories Slugs"))
|
||||||
is_active = BooleanFilter(field_name="is_active", label="Is Active")
|
tags = CaseInsensitiveListFilter(field_name="tags__tag_name", label=_("Tags"))
|
||||||
brand = CharFilter(field_name="brand__name", lookup_expr="iexact", label="Brand")
|
min_price = NumberFilter(field_name="stocks__price", lookup_expr="gte", label=_("Min Price"))
|
||||||
attributes = CharFilter(method="filter_attributes", label="Attributes")
|
max_price = NumberFilter(field_name="stocks__price", lookup_expr="lte", label=_("Max Price"))
|
||||||
quantity = NumberFilter(field_name="stocks__quantity", lookup_expr="gt", label="Quantity")
|
is_active = BooleanFilter(field_name="is_active", label=_("Is Active"))
|
||||||
slug = CharFilter(field_name="slug", lookup_expr="exact", label="Slug")
|
brand = CharFilter(field_name="brand__name", lookup_expr="iexact", label=_("Brand"))
|
||||||
is_digital = BooleanFilter(field_name="is_digital", label="Is Digital")
|
attributes = CharFilter(method="filter_attributes", label=_("Attributes"))
|
||||||
|
quantity = NumberFilter(field_name="stocks__quantity", lookup_expr="gt", label=_("Quantity"))
|
||||||
|
slug = CharFilter(field_name="slug", lookup_expr="exact", label=_("Slug"))
|
||||||
|
is_digital = BooleanFilter(field_name="is_digital", label=_("Is Digital"))
|
||||||
|
include_subcategories = BooleanFilter(
|
||||||
|
method="filter_include_flag",
|
||||||
|
label=_("Include sub-categories")
|
||||||
|
)
|
||||||
|
|
||||||
order_by = OrderingFilter(
|
order_by = OrderingFilter(
|
||||||
fields=(
|
fields=(
|
||||||
|
|
@ -101,6 +109,10 @@ class ProductFilter(FilterSet):
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def filter_include_flag(self, queryset, name, value):
|
||||||
|
# just a placeholder method
|
||||||
|
return queryset
|
||||||
|
|
||||||
def filter_attributes(self, queryset, _name, value):
|
def filter_attributes(self, queryset, _name, value):
|
||||||
if not value:
|
if not value:
|
||||||
return queryset
|
return queryset
|
||||||
|
|
@ -163,6 +175,24 @@ class ProductFilter(FilterSet):
|
||||||
|
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
|
def filter_category(self, queryset, name, value):
|
||||||
|
if not value:
|
||||||
|
return queryset
|
||||||
|
|
||||||
|
include = self.data.get("include_subcategories")
|
||||||
|
include_children = str(include).lower() in ("1", "true", "t", "yes")
|
||||||
|
|
||||||
|
try:
|
||||||
|
root = Category.objects.get(uuid=value)
|
||||||
|
except Category.DoesNotExist:
|
||||||
|
return queryset.none()
|
||||||
|
|
||||||
|
if include_children:
|
||||||
|
descendants = root.get_descendants(include_self=True)
|
||||||
|
return queryset.filter(category__in=descendants)
|
||||||
|
else:
|
||||||
|
return queryset.filter(category__uuid=value)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _infer_type(value):
|
def _infer_type(value):
|
||||||
try:
|
try:
|
||||||
|
|
@ -189,21 +219,12 @@ class ProductFilter(FilterSet):
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def qs(self):
|
def qs(self):
|
||||||
"""
|
|
||||||
Override the queryset property to annotate a “rating” field
|
|
||||||
when the ordering parameters include “rating”. This makes ordering
|
|
||||||
by rating possible.
|
|
||||||
"""
|
|
||||||
qs = super().qs
|
qs = super().qs
|
||||||
|
|
||||||
# Check if ordering by rating is requested (could be "rating" or "-rating")
|
|
||||||
ordering_param = self.data.get("order_by", "")
|
ordering_param = self.data.get("order_by", "")
|
||||||
if ordering_param:
|
if ordering_param:
|
||||||
order_fields = [field.strip() for field in ordering_param.split(",")]
|
order_fields = [field.strip() for field in ordering_param.split(",")]
|
||||||
if any(field.lstrip("-") == "rating" for field in order_fields):
|
if any(field.lstrip("-") == "rating" for field in order_fields):
|
||||||
# Annotate each product with its average rating.
|
|
||||||
# Here we use a Subquery to calculate the average rating from the Feedback model.
|
|
||||||
# Adjust the filter in Feedback.objects.filter(...) if your relationships differ.
|
|
||||||
feedback_qs = (
|
feedback_qs = (
|
||||||
Feedback.objects.filter(order_product__product_id=OuterRef("pk"))
|
Feedback.objects.filter(order_product__product_id=OuterRef("pk"))
|
||||||
.values("order_product__product_id")
|
.values("order_product__product_id")
|
||||||
|
|
@ -220,26 +241,18 @@ class ProductFilter(FilterSet):
|
||||||
|
|
||||||
class OrderFilter(FilterSet):
|
class OrderFilter(FilterSet):
|
||||||
search = CharFilter(
|
search = CharFilter(
|
||||||
method='filter_search',
|
method="filter_search",
|
||||||
label='Search (ID, product name or part number)',
|
label=_("Search (ID, product name or part number)"),
|
||||||
)
|
)
|
||||||
|
|
||||||
min_buy_time = DateTimeFilter(
|
min_buy_time = DateTimeFilter(field_name="buy_time", lookup_expr="gte", label=_("Bought after (inclusive)"))
|
||||||
field_name='buy_time',
|
max_buy_time = DateTimeFilter(field_name="buy_time", lookup_expr="lte", label=_("Bought before (inclusive)"))
|
||||||
lookup_expr='gte',
|
|
||||||
label='Bought after (inclusive)'
|
|
||||||
)
|
|
||||||
max_buy_time = DateTimeFilter(
|
|
||||||
field_name='buy_time',
|
|
||||||
lookup_expr='lte',
|
|
||||||
label='Bought before (inclusive)'
|
|
||||||
)
|
|
||||||
|
|
||||||
uuid = UUIDFilter(field_name='uuid', lookup_expr='exact')
|
uuid = UUIDFilter(field_name="uuid", lookup_expr="exact")
|
||||||
user_email = CharFilter(field_name='user__email', lookup_expr='iexact')
|
user_email = CharFilter(field_name="user__email", lookup_expr="iexact", label=_("User email"))
|
||||||
user = UUIDFilter(field_name='user__uuid', lookup_expr='exact')
|
user = UUIDFilter(field_name="user__uuid", lookup_expr="exact", label=_("User UUID"))
|
||||||
status = CharFilter(field_name='status', lookup_expr='icontains', label='Status')
|
status = CharFilter(field_name="status", lookup_expr="icontains", label=_("Status"))
|
||||||
human_readable_id = CharFilter(field_name='human_readable_id', lookup_expr='exact')
|
human_readable_id = CharFilter(field_name="human_readable_id", lookup_expr="exact", label=_("Human Readable ID"))
|
||||||
|
|
||||||
order_by = OrderingFilter(
|
order_by = OrderingFilter(
|
||||||
fields=(
|
fields=(
|
||||||
|
|
@ -270,21 +283,17 @@ class OrderFilter(FilterSet):
|
||||||
]
|
]
|
||||||
|
|
||||||
def filter_search(self, queryset, _name, value):
|
def filter_search(self, queryset, _name, value):
|
||||||
return (
|
return queryset.filter(
|
||||||
queryset
|
Q(human_readable_id__icontains=value)
|
||||||
.filter(
|
| Q(order_products__product__name__icontains=value)
|
||||||
Q(human_readable_id__icontains=value) |
|
| Q(order_products__product__partnumber__icontains=value)
|
||||||
Q(order_products__product__name__icontains=value) |
|
).distinct()
|
||||||
Q(order_products__product__partnumber__icontains=value)
|
|
||||||
)
|
|
||||||
.distinct()
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class WishlistFilter(FilterSet):
|
class WishlistFilter(FilterSet):
|
||||||
uuid = UUIDFilter(field_name="uuid", lookup_expr="exact")
|
uuid = UUIDFilter(field_name="uuid", lookup_expr="exact")
|
||||||
user_email = CharFilter(field_name="user__email", lookup_expr="iexact")
|
user_email = CharFilter(field_name="user__email", lookup_expr="iexact", label=_("User email"))
|
||||||
user = UUIDFilter(field_name="user__uuid", lookup_expr="exact")
|
user = UUIDFilter(field_name="user__uuid", lookup_expr="exact", label=_("User UUID"))
|
||||||
|
|
||||||
order_by = OrderingFilter(
|
order_by = OrderingFilter(
|
||||||
fields=(("uuid", "uuid"), ("created", "created"), ("modified", "modified"), ("?", "random"))
|
fields=(("uuid", "uuid"), ("created", "created"), ("modified", "modified"), ("?", "random"))
|
||||||
|
|
@ -297,9 +306,10 @@ class WishlistFilter(FilterSet):
|
||||||
|
|
||||||
class CategoryFilter(FilterSet):
|
class CategoryFilter(FilterSet):
|
||||||
uuid = UUIDFilter(field_name="uuid", lookup_expr="exact")
|
uuid = UUIDFilter(field_name="uuid", lookup_expr="exact")
|
||||||
name = CharFilter(field_name="name", lookup_expr="icontains")
|
name = CharFilter(field_name="name", lookup_expr="icontains", label=_("Name"))
|
||||||
parent_uuid = CharFilter(method="filter_parent_uuid")
|
parent_uuid = CharFilter(method="filter_parent_uuid", label=_("Parent"))
|
||||||
slug = CharFilter(field_name="slug", lookup_expr="exact")
|
slug = CharFilter(field_name="slug", lookup_expr="exact", label=_("Slug"))
|
||||||
|
tags = CaseInsensitiveListFilter(field_name="tags__tag_name", label=_("Tags"))
|
||||||
|
|
||||||
order_by = OrderingFilter(
|
order_by = OrderingFilter(
|
||||||
fields=(
|
fields=(
|
||||||
|
|
@ -311,13 +321,9 @@ class CategoryFilter(FilterSet):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Category
|
model = Category
|
||||||
fields = ["uuid", "name", "parent_uuid", "slug"]
|
fields = ["uuid", "name", "parent_uuid", "slug", "tags"]
|
||||||
|
|
||||||
def filter_parent_uuid(self, queryset, _name, value):
|
def filter_parent_uuid(self, queryset, _name, value):
|
||||||
"""
|
|
||||||
If ?parent_uuid= or ?parent_uuid=null, return items with parent=None.
|
|
||||||
Otherwise treat `value` as a real UUID and filter parent__uuid=value.
|
|
||||||
"""
|
|
||||||
if value in ("", "null", "None"):
|
if value in ("", "null", "None"):
|
||||||
return queryset.filter(parent=None)
|
return queryset.filter(parent=None)
|
||||||
|
|
||||||
|
|
@ -331,8 +337,8 @@ class CategoryFilter(FilterSet):
|
||||||
|
|
||||||
class BrandFilter(FilterSet):
|
class BrandFilter(FilterSet):
|
||||||
uuid = UUIDFilter(field_name="uuid", lookup_expr="exact")
|
uuid = UUIDFilter(field_name="uuid", lookup_expr="exact")
|
||||||
name = CharFilter(field_name="name", lookup_expr="icontains")
|
name = CharFilter(field_name="name", lookup_expr="icontains", label=_("Name"))
|
||||||
categories = CaseInsensitiveListFilter(field_name="categories__uuid", lookup_expr="exact")
|
categories = CaseInsensitiveListFilter(field_name="categories__uuid", lookup_expr="exact", label=_("Categories"))
|
||||||
|
|
||||||
order_by = OrderingFilter(
|
order_by = OrderingFilter(
|
||||||
fields=(
|
fields=(
|
||||||
|
|
@ -348,9 +354,9 @@ class BrandFilter(FilterSet):
|
||||||
|
|
||||||
|
|
||||||
class FeedbackFilter(FilterSet):
|
class FeedbackFilter(FilterSet):
|
||||||
uuid = UUIDFilter(field_name="uuid", lookup_expr="exact")
|
uuid = UUIDFilter(field_name="uuid", lookup_expr="exact", label=_("UUID"))
|
||||||
product_uuid = UUIDFilter(field_name="order_product__product__uuid", lookup_expr="exact")
|
product_uuid = UUIDFilter(field_name="order_product__product__uuid", lookup_expr="exact", label=_("Product UUID"))
|
||||||
user_uuid = UUIDFilter(field_name="order_product__order__user__uuid", lookup_expr="exact")
|
user_uuid = UUIDFilter(field_name="order_product__order__user__uuid", lookup_expr="exact", label=_("User UUID"))
|
||||||
|
|
||||||
order_by = OrderingFilter(
|
order_by = OrderingFilter(
|
||||||
fields=(
|
fields=(
|
||||||
|
|
|
||||||
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
|
|
@ -12,28 +12,29 @@ class Command(BaseCommand):
|
||||||
|
|
||||||
def add_arguments(self, parser):
|
def add_arguments(self, parser):
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'-b', '--base-dir',
|
"-b",
|
||||||
|
"--base-dir",
|
||||||
default=settings.BASE_DIR,
|
default=settings.BASE_DIR,
|
||||||
help="Root directory to start searching for .po files (default: settings.BASE_DIR)."
|
help="Root directory to start searching for .po files (default: settings.BASE_DIR).",
|
||||||
)
|
)
|
||||||
|
|
||||||
def handle(self, *args, **options):
|
def handle(self, *args, **options):
|
||||||
base_dir = options['base_dir']
|
base_dir = options["base_dir"]
|
||||||
for root, dirs, files in os.walk(base_dir):
|
for root, _dirs, files in os.walk(base_dir):
|
||||||
for fname in files:
|
for fname in files:
|
||||||
if not fname.endswith('.po'):
|
if not fname.endswith(".po"):
|
||||||
continue
|
continue
|
||||||
path = os.path.join(root, fname)
|
path = os.path.join(root, fname)
|
||||||
self.stdout.write(f"→ Processing {path}")
|
self.stdout.write(f"→ Processing {path}")
|
||||||
self._clean_po_file(path)
|
self._clean_po_file(path)
|
||||||
|
|
||||||
def _clean_po_file(self, filepath):
|
def _clean_po_file(self, filepath):
|
||||||
with open(filepath, 'r', encoding='utf-8') as f:
|
with open(filepath, encoding="utf-8") as f:
|
||||||
lines = f.readlines()
|
lines = f.readlines()
|
||||||
|
|
||||||
entries, curr = [], []
|
entries, curr = [], []
|
||||||
for line in lines:
|
for line in lines:
|
||||||
if line.strip() == '':
|
if line.strip() == "":
|
||||||
if curr:
|
if curr:
|
||||||
entries.append(curr)
|
entries.append(curr)
|
||||||
curr = []
|
curr = []
|
||||||
|
|
@ -48,33 +49,30 @@ class Command(BaseCommand):
|
||||||
for ent in entries:
|
for ent in entries:
|
||||||
if ent and ent[0].startswith('msgid ""'):
|
if ent and ent[0].startswith('msgid ""'):
|
||||||
new_lines.extend(ent)
|
new_lines.extend(ent)
|
||||||
new_lines.append('\n')
|
new_lines.append("\n")
|
||||||
continue
|
continue
|
||||||
|
|
||||||
fuzzy_idx = next(
|
fuzzy_idx = next((i for i, line in enumerate(ent) if line.startswith("#,") and "fuzzy" in line), None)
|
||||||
(i for i, l in enumerate(ent) if l.startswith('#,') and 'fuzzy' in l),
|
|
||||||
None
|
|
||||||
)
|
|
||||||
if fuzzy_idx is not None:
|
if fuzzy_idx is not None:
|
||||||
flag_line = ent[fuzzy_idx]
|
flag_line = ent[fuzzy_idx]
|
||||||
remaining = [f.strip() for f in flag_line[2:].split(',') if f.strip() != 'fuzzy']
|
remaining = [f.strip() for f in flag_line[2:].split(",") if f.strip() != "fuzzy"]
|
||||||
if remaining:
|
if remaining:
|
||||||
ent[fuzzy_idx] = '#, ' + ', '.join(remaining) + '\n'
|
ent[fuzzy_idx] = "#, " + ", ".join(remaining) + "\n"
|
||||||
else:
|
else:
|
||||||
del ent[fuzzy_idx]
|
del ent[fuzzy_idx]
|
||||||
|
|
||||||
ent = [l for l in ent if not l.startswith('#| msgid')]
|
ent = [line for line in ent if not line.startswith("#| msgid")]
|
||||||
|
|
||||||
ent = ['msgstr ""\n' if l.startswith('msgstr') else l for l in ent]
|
ent = ['msgstr ""\n' if line.startswith("msgstr") else line for line in ent]
|
||||||
|
|
||||||
changed = True
|
changed = True
|
||||||
|
|
||||||
new_lines.extend(ent)
|
new_lines.extend(ent)
|
||||||
new_lines.append('\n')
|
new_lines.append("\n")
|
||||||
|
|
||||||
if changed:
|
if changed:
|
||||||
with open(filepath, 'w', encoding='utf-8') as f:
|
with open(filepath, "w", encoding="utf-8") as f:
|
||||||
f.writelines(new_lines)
|
f.writelines(new_lines)
|
||||||
self.stdout.write(self.style.SUCCESS(f" → Updated {filepath}"))
|
self.stdout.write(self.style.SUCCESS(f" → Updated {filepath}"))
|
||||||
else:
|
else:
|
||||||
self.stdout.write(f" (no fuzzy entries found)")
|
self.stdout.write(" (no fuzzy entries found)")
|
||||||
|
|
|
||||||
|
|
@ -10,17 +10,9 @@ logger = logging.getLogger("django.request")
|
||||||
|
|
||||||
class AddressManager(models.Manager):
|
class AddressManager(models.Manager):
|
||||||
def create(self, raw_data: str, **kwargs):
|
def create(self, raw_data: str, **kwargs):
|
||||||
"""
|
|
||||||
Create an Address instance by geocoding the provided raw address string.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
raw_data (str): The raw address input from the user (e.g., '36 Mornington Rd Loughton England').
|
|
||||||
**kwargs: Additional fields to pass to the Address model (e.g., user).
|
|
||||||
"""
|
|
||||||
if not raw_data:
|
if not raw_data:
|
||||||
raise ValueError("'raw_data' (address string) must be provided.")
|
raise ValueError("'raw_data' (address string) must be provided.")
|
||||||
|
|
||||||
# Query Nominatim
|
|
||||||
params = {
|
params = {
|
||||||
"format": "json",
|
"format": "json",
|
||||||
"addressdetails": 1,
|
"addressdetails": 1,
|
||||||
|
|
@ -33,7 +25,6 @@ class AddressManager(models.Manager):
|
||||||
raise ValueError(f"No geocoding result for address: {raw_data}")
|
raise ValueError(f"No geocoding result for address: {raw_data}")
|
||||||
data = results[0]
|
data = results[0]
|
||||||
|
|
||||||
# Parse address components
|
|
||||||
addr = data.get("address", {})
|
addr = data.get("address", {})
|
||||||
street = f"{addr.get('road', '') or addr.get('pedestrian', '')}, {addr.get('house_number', '')}"
|
street = f"{addr.get('road', '') or addr.get('pedestrian', '')}, {addr.get('house_number', '')}"
|
||||||
district = addr.get("city_district") or addr.get("suburb") or ""
|
district = addr.get("city_district") or addr.get("suburb") or ""
|
||||||
|
|
@ -42,7 +33,6 @@ class AddressManager(models.Manager):
|
||||||
postal_code = addr.get("postcode") or ""
|
postal_code = addr.get("postcode") or ""
|
||||||
country = addr.get("country") or ""
|
country = addr.get("country") or ""
|
||||||
|
|
||||||
# Parse location
|
|
||||||
try:
|
try:
|
||||||
lat = float(data.get("lat"))
|
lat = float(data.get("lat"))
|
||||||
lon = float(data.get("lon"))
|
lon = float(data.get("lon"))
|
||||||
|
|
@ -51,16 +41,15 @@ class AddressManager(models.Manager):
|
||||||
location = None
|
location = None
|
||||||
|
|
||||||
try:
|
try:
|
||||||
address_line_1 = kwargs.pop('address_line_1')
|
address_line_1 = kwargs.pop("address_line_1")
|
||||||
except KeyError:
|
except KeyError as e:
|
||||||
raise ValueError("Missing required field 'address_line_1'") from e
|
raise ValueError("Missing required field 'address_line_1'") from e
|
||||||
|
|
||||||
try:
|
try:
|
||||||
address_line_2 = kwargs.pop('address_line_2')
|
address_line_2 = kwargs.pop("address_line_2")
|
||||||
except KeyError:
|
except KeyError:
|
||||||
address_line_2 = ""
|
address_line_2 = ""
|
||||||
|
|
||||||
# Create the model instance, storing both the input string and full API response
|
|
||||||
return super().get_or_create(
|
return super().get_or_create(
|
||||||
raw_data=raw_data,
|
raw_data=raw_data,
|
||||||
address_line=f"{address_line_1}, {address_line_2}",
|
address_line=f"{address_line_1}, {address_line_2}",
|
||||||
|
|
@ -70,6 +59,6 @@ class AddressManager(models.Manager):
|
||||||
region=region,
|
region=region,
|
||||||
postal_code=postal_code,
|
postal_code=postal_code,
|
||||||
country=country,
|
country=country,
|
||||||
user=kwargs.pop('user'),
|
user=kwargs.pop("user"),
|
||||||
defaults={"api_response": data, "location": location},
|
defaults={"api_response": data, "location": location},
|
||||||
)[0]
|
)[0]
|
||||||
|
|
|
||||||
|
|
@ -206,6 +206,12 @@ class Category(ExportModelOperationsMixin("category"), NiceModel, MPTTModel):
|
||||||
editable=False,
|
editable=False,
|
||||||
null=True,
|
null=True,
|
||||||
)
|
)
|
||||||
|
tags = ManyToManyField(
|
||||||
|
"core.CategoryTag",
|
||||||
|
blank=True,
|
||||||
|
help_text=_("tags that help describe or group this category"),
|
||||||
|
verbose_name=_("category tags"),
|
||||||
|
)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
@ -550,8 +556,9 @@ class Order(ExportModelOperationsMixin("order"), NiceModel):
|
||||||
def total_quantity(self) -> int:
|
def total_quantity(self) -> int:
|
||||||
return sum([op.quantity for op in self.order_products.all()])
|
return sum([op.quantity for op in self.order_products.all()])
|
||||||
|
|
||||||
def add_product(self, product_uuid: str | None = None, attributes: Optional[list] = None,
|
def add_product(
|
||||||
update_quantity: bool = True):
|
self, product_uuid: str | None = None, attributes: Optional[list] = None, update_quantity: bool = True
|
||||||
|
):
|
||||||
if attributes is None:
|
if attributes is None:
|
||||||
attributes = []
|
attributes = []
|
||||||
|
|
||||||
|
|
@ -952,6 +959,31 @@ class ProductTag(ExportModelOperationsMixin("product_tag"), NiceModel):
|
||||||
verbose_name_plural = _("product tags")
|
verbose_name_plural = _("product tags")
|
||||||
|
|
||||||
|
|
||||||
|
class CategoryTag(ExportModelOperationsMixin("category_tag"), NiceModel):
|
||||||
|
is_publicly_visible = True
|
||||||
|
|
||||||
|
tag_name = CharField(
|
||||||
|
blank=False,
|
||||||
|
null=False,
|
||||||
|
max_length=255,
|
||||||
|
help_text=_("internal tag identifier for the product tag"),
|
||||||
|
verbose_name=_("tag name"),
|
||||||
|
)
|
||||||
|
name = CharField(
|
||||||
|
max_length=255,
|
||||||
|
help_text=_("user-friendly name for the product tag"),
|
||||||
|
verbose_name=_("tag display name"),
|
||||||
|
unique=True,
|
||||||
|
)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.tag_name
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
verbose_name = _("category tag")
|
||||||
|
verbose_name_plural = _("category tags")
|
||||||
|
|
||||||
|
|
||||||
class ProductImage(ExportModelOperationsMixin("product_image"), NiceModel):
|
class ProductImage(ExportModelOperationsMixin("product_image"), NiceModel):
|
||||||
is_publicly_visible = True
|
is_publicly_visible = True
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ class EvibesPermission(permissions.BasePermission):
|
||||||
if action == "create" and view.additional.get("create") == "ALLOW":
|
if action == "create" and view.additional.get("create") == "ALLOW":
|
||||||
return True
|
return True
|
||||||
|
|
||||||
if action == 'retrieve' and view.additional.get("retrieve") == "ALLOW":
|
if action == "retrieve" and view.additional.get("retrieve") == "ALLOW":
|
||||||
return True
|
return True
|
||||||
|
|
||||||
if action in self.USER_SCOPED_ACTIONS:
|
if action in self.USER_SCOPED_ACTIONS:
|
||||||
|
|
@ -75,8 +75,12 @@ class EvibesPermission(permissions.BasePermission):
|
||||||
return bool(perm_prefix and request.user.has_perm(f"{app_label}.{perm_prefix}_{model_name}"))
|
return bool(perm_prefix and request.user.has_perm(f"{app_label}.{perm_prefix}_{model_name}"))
|
||||||
|
|
||||||
perm_prefix = self.ACTION_PERM_MAP.get(view.action)
|
perm_prefix = self.ACTION_PERM_MAP.get(view.action)
|
||||||
return bool(perm_prefix and request.user.has_perm(
|
return bool(
|
||||||
f"{view.queryset.model._meta.app_label}.{perm_prefix}_{view.queryset.model._meta.model_name}"))
|
perm_prefix
|
||||||
|
and request.user.has_perm(
|
||||||
|
f"{view.queryset.model._meta.app_label}.{perm_prefix}_{view.queryset.model._meta.model_name}"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
def has_queryset_permission(self, request, view, queryset):
|
def has_queryset_permission(self, request, view, queryset):
|
||||||
model = view.queryset.model
|
model = view.queryset.model
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
from rest_framework.exceptions import ValidationError
|
from rest_framework.exceptions import ValidationError
|
||||||
from rest_framework.fields import CharField, DictField, FloatField, IntegerField
|
from rest_framework.fields import CharField, DictField, FloatField, IntegerField
|
||||||
from rest_framework.serializers import ModelSerializer, Serializer
|
from rest_framework.serializers import ModelSerializer, Serializer
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,17 @@
|
||||||
from modeltranslation.decorators import register
|
from modeltranslation.decorators import register
|
||||||
from modeltranslation.translator import TranslationOptions
|
from modeltranslation.translator import TranslationOptions
|
||||||
|
|
||||||
from core.models import Attribute, AttributeGroup, AttributeValue, Brand, Category, Product, ProductTag, Promotion
|
from core.models import (
|
||||||
|
Attribute,
|
||||||
|
AttributeGroup,
|
||||||
|
AttributeValue,
|
||||||
|
Brand,
|
||||||
|
Category,
|
||||||
|
CategoryTag,
|
||||||
|
Product,
|
||||||
|
ProductTag,
|
||||||
|
Promotion,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@register(AttributeGroup)
|
@register(AttributeGroup)
|
||||||
|
|
@ -39,6 +49,11 @@ class ProductTagOptions(TranslationOptions):
|
||||||
fields = ("name",)
|
fields = ("name",)
|
||||||
|
|
||||||
|
|
||||||
|
@register(CategoryTag)
|
||||||
|
class CategoryTagOptions(TranslationOptions):
|
||||||
|
fields = ("name",)
|
||||||
|
|
||||||
|
|
||||||
@register(Promotion)
|
@register(Promotion)
|
||||||
class PromotionOptions(TranslationOptions):
|
class PromotionOptions(TranslationOptions):
|
||||||
fields = ("name", "description")
|
fields = ("name", "description")
|
||||||
|
|
|
||||||
|
|
@ -229,10 +229,12 @@ class ProductViewSet(EvibesViewSet):
|
||||||
lookup_val = kwargs.get(self.lookup_field)
|
lookup_val = kwargs.get(self.lookup_field)
|
||||||
try:
|
try:
|
||||||
product = Product.objects.get(uuid=lookup_val)
|
product = Product.objects.get(uuid=lookup_val)
|
||||||
feedbacks = Feedback.objects.filter(order_product__product=product) if request.user.has_perm(
|
feedbacks = (
|
||||||
"core.view_feedback") else Feedback.objects.filter(order_product__product=product, is_active=True)
|
Feedback.objects.filter(order_product__product=product)
|
||||||
return Response(
|
if request.user.has_perm("core.view_feedback")
|
||||||
data=FeedbackDetailSerializer(feedbacks, many=True).data)
|
else Feedback.objects.filter(order_product__product=product, is_active=True)
|
||||||
|
)
|
||||||
|
return Response(data=FeedbackDetailSerializer(feedbacks, many=True).data)
|
||||||
except Product.DoesNotExist:
|
except Product.DoesNotExist:
|
||||||
name = "Product"
|
name = "Product"
|
||||||
return Response(status=status.HTTP_404_NOT_FOUND, data={"detail": _(f"{name} does not exist: {uuid}")})
|
return Response(status=status.HTTP_404_NOT_FOUND, data={"detail": _(f"{name} does not exist: {uuid}")})
|
||||||
|
|
@ -267,8 +269,8 @@ class FeedbackViewSet(EvibesViewSet):
|
||||||
|
|
||||||
@extend_schema_view(**ORDER_SCHEMA)
|
@extend_schema_view(**ORDER_SCHEMA)
|
||||||
class OrderViewSet(EvibesViewSet):
|
class OrderViewSet(EvibesViewSet):
|
||||||
lookup_field = 'lookup_value'
|
lookup_field = "lookup_value"
|
||||||
lookup_url_kwarg = 'lookup_value'
|
lookup_url_kwarg = "lookup_value"
|
||||||
queryset = Order.objects.prefetch_related("order_products").all()
|
queryset = Order.objects.prefetch_related("order_products").all()
|
||||||
filter_backends = [DjangoFilterBackend]
|
filter_backends = [DjangoFilterBackend]
|
||||||
filterset_class = OrderFilter
|
filterset_class = OrderFilter
|
||||||
|
|
@ -279,9 +281,7 @@ class OrderViewSet(EvibesViewSet):
|
||||||
"add_order_product": AddOrderProductSerializer,
|
"add_order_product": AddOrderProductSerializer,
|
||||||
"remove_order_product": RemoveOrderProductSerializer,
|
"remove_order_product": RemoveOrderProductSerializer,
|
||||||
}
|
}
|
||||||
additional = {
|
additional = {"retrieve": "ALLOW"}
|
||||||
"retrieve": "ALLOW"
|
|
||||||
}
|
|
||||||
|
|
||||||
def get_serializer_class(self):
|
def get_serializer_class(self):
|
||||||
return self.action_serializer_classes.get(self.action, super().get_serializer_class())
|
return self.action_serializer_classes.get(self.action, super().get_serializer_class())
|
||||||
|
|
@ -308,10 +308,7 @@ class OrderViewSet(EvibesViewSet):
|
||||||
except ValueError:
|
except ValueError:
|
||||||
uuid_q = Q()
|
uuid_q = Q()
|
||||||
|
|
||||||
obj = get_object_or_404(
|
obj = get_object_or_404(qs, uuid_q | Q(human_readable_id=lookup_val))
|
||||||
qs,
|
|
||||||
uuid_q | Q(human_readable_id=lookup_val)
|
|
||||||
)
|
|
||||||
self.check_object_permissions(self.request, obj)
|
self.check_object_permissions(self.request, obj)
|
||||||
return obj
|
return obj
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ from core.views import CustomGraphQLView, CustomRedocView, CustomSwaggerView, fa
|
||||||
from evibes.settings import SPECTACULAR_PLATFORM_SETTINGS
|
from evibes.settings import SPECTACULAR_PLATFORM_SETTINGS
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('prometheus/', include('django_prometheus.urls')),
|
path("prometheus/", include("django_prometheus.urls")),
|
||||||
path(r"graphql/", csrf_exempt(CustomGraphQLView.as_view(graphiql=True, schema=schema))),
|
path(r"graphql/", csrf_exempt(CustomGraphQLView.as_view(graphiql=True, schema=schema))),
|
||||||
path(
|
path(
|
||||||
r"docs/",
|
r"docs/",
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ from evibes.settings import SPECTACULAR_B2B_SETTINGS
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
# path(r'graphql/', csrf_exempt(CustomGraphQLView.as_view(graphiql=True, schema=schema))),
|
# path(r'graphql/', csrf_exempt(CustomGraphQLView.as_view(graphiql=True, schema=schema))),
|
||||||
path('prometheus/', include('django_prometheus.urls')),
|
path("prometheus/", include("django_prometheus.urls")),
|
||||||
path(
|
path(
|
||||||
r"docs/",
|
r"docs/",
|
||||||
SpectacularAPIView.as_view(urlconf="evibes.b2b_urls", custom_settings=SPECTACULAR_B2B_SETTINGS),
|
SpectacularAPIView.as_view(urlconf="evibes.b2b_urls", custom_settings=SPECTACULAR_B2B_SETTINGS),
|
||||||
|
|
|
||||||
|
|
@ -69,15 +69,17 @@ class BlockInvalidHostMiddleware:
|
||||||
self.get_response = get_response
|
self.get_response = get_response
|
||||||
|
|
||||||
def __call__(self, request):
|
def __call__(self, request):
|
||||||
allowed_hosts = ["app:8000",
|
allowed_hosts = [
|
||||||
"worker:8000",
|
"app:8000",
|
||||||
"beat:8000",
|
"worker:8000",
|
||||||
"localhost:8000",
|
"beat:8000",
|
||||||
"api.localhost:8000",
|
"localhost:8000",
|
||||||
"b2b.localhost:8000",
|
"api.localhost:8000",
|
||||||
"127.0.0.1:8000",
|
"b2b.localhost:8000",
|
||||||
"api.127.0.0.1:8000",
|
"127.0.0.1:8000",
|
||||||
"b2b.127.0.0.1:8000"]
|
"api.127.0.0.1:8000",
|
||||||
|
"b2b.127.0.0.1:8000",
|
||||||
|
]
|
||||||
|
|
||||||
if DEBUG:
|
if DEBUG:
|
||||||
allowed_hosts += ["*"]
|
allowed_hosts += ["*"]
|
||||||
|
|
|
||||||
|
|
@ -2,22 +2,24 @@ import logging
|
||||||
from os import getenv
|
from os import getenv
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
EVIBES_VERSION = "2.8.0"
|
EVIBES_VERSION = "2.8.5"
|
||||||
|
|
||||||
BASE_DIR = Path(__file__).resolve().parent.parent.parent
|
BASE_DIR = Path(__file__).resolve().parent.parent.parent
|
||||||
|
|
||||||
SECRET_KEY = getenv("SECRET_KEY")
|
SECRET_KEY = getenv("SECRET_KEY")
|
||||||
DEBUG = bool(int(getenv("DEBUG")))
|
DEBUG = bool(int(getenv("DEBUG")))
|
||||||
|
|
||||||
ALLOWED_HOSTS = ["app:8000",
|
ALLOWED_HOSTS = [
|
||||||
"worker:8000",
|
"app:8000",
|
||||||
"beat:8000",
|
"worker:8000",
|
||||||
"localhost:8000",
|
"beat:8000",
|
||||||
"api.localhost:8000",
|
"localhost:8000",
|
||||||
"b2b.localhost:8000",
|
"api.localhost:8000",
|
||||||
"127.0.0.1:8000",
|
"b2b.localhost:8000",
|
||||||
"api.127.0.0.1:8000",
|
"127.0.0.1:8000",
|
||||||
"b2b.127.0.0.1:8000"]
|
"api.127.0.0.1:8000",
|
||||||
|
"b2b.127.0.0.1:8000",
|
||||||
|
]
|
||||||
|
|
||||||
if DEBUG:
|
if DEBUG:
|
||||||
ALLOWED_HOSTS += ["*"]
|
ALLOWED_HOSTS += ["*"]
|
||||||
|
|
@ -126,7 +128,7 @@ MIDDLEWARE = [
|
||||||
"evibes.middleware.CustomLocaleMiddleware",
|
"evibes.middleware.CustomLocaleMiddleware",
|
||||||
"django_hosts.middleware.HostsResponseMiddleware",
|
"django_hosts.middleware.HostsResponseMiddleware",
|
||||||
"djangorestframework_camel_case.middleware.CamelCaseMiddleWare",
|
"djangorestframework_camel_case.middleware.CamelCaseMiddleWare",
|
||||||
"django_prometheus.middleware.PrometheusAfterMiddleware"
|
"django_prometheus.middleware.PrometheusAfterMiddleware",
|
||||||
]
|
]
|
||||||
|
|
||||||
TEMPLATES = [
|
TEMPLATES = [
|
||||||
|
|
|
||||||
8
poetry.lock
generated
8
poetry.lock
generated
|
|
@ -4496,13 +4496,13 @@ xmlsec = ["xmlsec (>=0.6.1)"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zipp"
|
name = "zipp"
|
||||||
version = "3.22.0"
|
version = "3.23.0"
|
||||||
description = "Backport of pathlib-compatible object wrapper for zip files"
|
description = "Backport of pathlib-compatible object wrapper for zip files"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.9"
|
python-versions = ">=3.9"
|
||||||
files = [
|
files = [
|
||||||
{ file = "zipp-3.22.0-py3-none-any.whl", hash = "sha256:fe208f65f2aca48b81f9e6fd8cf7b8b32c26375266b009b413d45306b6148343" },
|
{ file = "zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e" },
|
||||||
{ file = "zipp-3.22.0.tar.gz", hash = "sha256:dd2f28c3ce4bc67507bfd3781d21b7bb2be31103b51a4553ad7d90b84e57ace5" },
|
{ file = "zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
|
|
@ -4510,7 +4510,7 @@ check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"]
|
||||||
cover = ["pytest-cov"]
|
cover = ["pytest-cov"]
|
||||||
doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
|
doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
|
||||||
enabler = ["pytest-enabler (>=2.2)"]
|
enabler = ["pytest-enabler (>=2.2)"]
|
||||||
test = ["big-O", "importlib_resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more_itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"]
|
test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more_itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"]
|
||||||
type = ["pytest-mypy"]
|
type = ["pytest-mypy"]
|
||||||
|
|
||||||
[extras]
|
[extras]
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[tool.poetry]
|
[tool.poetry]
|
||||||
name = "eVibes"
|
name = "eVibes"
|
||||||
version = "2.8.0"
|
version = "2.8.5"
|
||||||
description = "eVibes is an open-source eCommerce backend service built with Django. It’s designed for flexibility, making it ideal for various use cases and learning Django skills. The project is easy to customize, allowing for straightforward editing and extension."
|
description = "eVibes is an open-source eCommerce backend service built with Django. It’s designed for flexibility, making it ideal for various use cases and learning Django skills. The project is easy to customize, allowing for straightforward editing and extension."
|
||||||
authors = ["fureunoir <contact@fureunoir.com>"]
|
authors = ["fureunoir <contact@fureunoir.com>"]
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ from core.docs.drf import BASE_ERRORS
|
||||||
from vibes_auth.serializers import (
|
from vibes_auth.serializers import (
|
||||||
ActivateEmailSerializer,
|
ActivateEmailSerializer,
|
||||||
ConfirmPasswordResetSerializer,
|
ConfirmPasswordResetSerializer,
|
||||||
|
MergeRecentlyViewedSerializer,
|
||||||
ResetPasswordSerializer,
|
ResetPasswordSerializer,
|
||||||
UserSerializer,
|
UserSerializer,
|
||||||
)
|
)
|
||||||
|
|
@ -38,8 +39,7 @@ USER_SCHEMA = {
|
||||||
request={
|
request={
|
||||||
"multipart/form-data": {
|
"multipart/form-data": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {"avatar": {"type": "string", "format": "binary"}},
|
||||||
"avatar": {"type": "string", "format": "binary"}},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
responses={
|
responses={
|
||||||
|
|
@ -67,4 +67,12 @@ USER_SCHEMA = {
|
||||||
**BASE_ERRORS,
|
**BASE_ERRORS,
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
"merge_recently_viewed": extend_schema(
|
||||||
|
summary=_("merge client-stored recently viewed products"),
|
||||||
|
request=MergeRecentlyViewedSerializer,
|
||||||
|
responses={
|
||||||
|
status.HTTP_202_ACCEPTED: UserSerializer,
|
||||||
|
**BASE_ERRORS,
|
||||||
|
},
|
||||||
|
),
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 1\n"
|
"Project-Id-Version: 1\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-06-08 19:42+0100\n"
|
"POT-Creation-Date: 2025-06-10 03:32+0100\n"
|
||||||
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -74,29 +74,29 @@ msgstr "التحقق من الرمز المميز (التحديث أو الوص
|
||||||
msgid "the token is valid"
|
msgid "the token is valid"
|
||||||
msgstr "الرمز المميز صالح"
|
msgstr "الرمز المميز صالح"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:15
|
#: vibes_auth/docs/drf/viewsets.py:16
|
||||||
msgid "create a new user"
|
msgid "create a new user"
|
||||||
msgstr "إنشاء مستخدم جديد"
|
msgstr "إنشاء مستخدم جديد"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:19
|
#: vibes_auth/docs/drf/viewsets.py:20
|
||||||
msgid "retrieve a user's details"
|
msgid "retrieve a user's details"
|
||||||
msgstr "استرداد تفاصيل المستخدم"
|
msgstr "استرداد تفاصيل المستخدم"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:23
|
#: vibes_auth/docs/drf/viewsets.py:24
|
||||||
msgid "update a user's details"
|
msgid "update a user's details"
|
||||||
msgstr "تحديث تفاصيل المستخدم"
|
msgstr "تحديث تفاصيل المستخدم"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:28
|
#: vibes_auth/docs/drf/viewsets.py:29
|
||||||
msgid "delete a user"
|
msgid "delete a user"
|
||||||
msgstr "حذف مستخدم"
|
msgstr "حذف مستخدم"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:32
|
#: vibes_auth/docs/drf/viewsets.py:33
|
||||||
msgid "reset a user's password by sending a reset password email"
|
msgid "reset a user's password by sending a reset password email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"إعادة تعيين كلمة مرور المستخدم عن طريق إرسال بريد إلكتروني لإعادة تعيين كلمة "
|
"إعادة تعيين كلمة مرور المستخدم عن طريق إرسال بريد إلكتروني لإعادة تعيين كلمة"
|
||||||
"المرور"
|
" المرور"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:37
|
#: vibes_auth/docs/drf/viewsets.py:38
|
||||||
msgid "handle avatar upload for a user"
|
msgid "handle avatar upload for a user"
|
||||||
msgstr "التعامل مع تحميل الصورة الرمزية للمستخدم"
|
msgstr "التعامل مع تحميل الصورة الرمزية للمستخدم"
|
||||||
|
|
||||||
|
|
@ -105,7 +105,7 @@ msgid "confirm a user's password reset"
|
||||||
msgstr "تأكيد إعادة تعيين كلمة مرور المستخدم"
|
msgstr "تأكيد إعادة تعيين كلمة مرور المستخدم"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
||||||
#: vibes_auth/viewsets.py:72
|
#: vibes_auth/viewsets.py:73
|
||||||
msgid "passwords do not match"
|
msgid "passwords do not match"
|
||||||
msgstr "كلمات المرور غير متطابقة"
|
msgstr "كلمات المرور غير متطابقة"
|
||||||
|
|
||||||
|
|
@ -117,6 +117,10 @@ msgstr "تنشيط حساب مستخدم"
|
||||||
msgid "activation link is invalid or account already activated"
|
msgid "activation link is invalid or account already activated"
|
||||||
msgstr "رابط التفعيل غير صالح أو أن الحساب مفعل بالفعل"
|
msgstr "رابط التفعيل غير صالح أو أن الحساب مفعل بالفعل"
|
||||||
|
|
||||||
|
#: vibes_auth/docs/drf/viewsets.py:71
|
||||||
|
msgid "merge client-stored recently viewed products"
|
||||||
|
msgstr "دمج المنتجات التي تم عرضها مؤخراً المخزنة لدى العميل"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:41
|
#: vibes_auth/graphene/mutations.py:41
|
||||||
msgid "the user's b64-encoded uuid who referred the new user to us."
|
msgid "the user's b64-encoded uuid who referred the new user to us."
|
||||||
msgstr "معرّف المستخدم الذي تم ترميزه بـ b64 الذي أحال المستخدم الجديد إلينا."
|
msgstr "معرّف المستخدم الذي تم ترميزه بـ b64 الذي أحال المستخدم الجديد إلينا."
|
||||||
|
|
@ -144,8 +148,8 @@ msgstr "رقم هاتف مشوّه: {phone_number}"
|
||||||
msgid "Invalid attribute format: {attribute_pair}"
|
msgid "Invalid attribute format: {attribute_pair}"
|
||||||
msgstr "تنسيق السمة غير صالح: {attribute_pair}"
|
msgstr "تنسيق السمة غير صالح: {attribute_pair}"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:115
|
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116
|
||||||
#: vibes_auth/viewsets.py:134
|
#: vibes_auth/viewsets.py:135
|
||||||
msgid "activation link is invalid!"
|
msgid "activation link is invalid!"
|
||||||
msgstr "رابط التفعيل غير صالح!"
|
msgstr "رابط التفعيل غير صالح!"
|
||||||
|
|
||||||
|
|
@ -157,14 +161,14 @@ msgstr "تم تفعيل الحساب بالفعل..."
|
||||||
msgid "something went wrong: {e!s}"
|
msgid "something went wrong: {e!s}"
|
||||||
msgstr "حدث خطأ ما: {e!s}"
|
msgstr "حدث خطأ ما: {e!s}"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:83
|
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84
|
||||||
msgid "token is invalid!"
|
msgid "token is invalid!"
|
||||||
msgstr "الرمز غير صالح!"
|
msgstr "الرمز غير صالح!"
|
||||||
|
|
||||||
#: vibes_auth/graphene/object_types.py:39
|
#: vibes_auth/graphene/object_types.py:39
|
||||||
msgid ""
|
msgid ""
|
||||||
"the products this user has viewed most recently (max 48), in reverse‐"
|
"the products this user has viewed most recently (max 48), in "
|
||||||
"chronological order"
|
"reverse‐chronological order"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"المنتجات التي شاهدها هذا المستخدم مؤخرًا (بحد أقصى 48)، بترتيب زمني عكسي."
|
"المنتجات التي شاهدها هذا المستخدم مؤخرًا (بحد أقصى 48)، بترتيب زمني عكسي."
|
||||||
|
|
||||||
|
|
@ -277,23 +281,23 @@ msgstr "الرمز المميز المدرج في القائمة السوداء"
|
||||||
msgid "blacklisted tokens"
|
msgid "blacklisted tokens"
|
||||||
msgstr "الرموز المميزة المدرجة في القائمة السوداء"
|
msgstr "الرموز المميزة المدرجة في القائمة السوداء"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:106 vibes_auth/serializers.py:128
|
#: vibes_auth/serializers.py:107 vibes_auth/serializers.py:129
|
||||||
msgid "no active account"
|
msgid "no active account"
|
||||||
msgstr "لم يتم العثور على حساب نشط"
|
msgstr "لم يتم العثور على حساب نشط"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:199
|
#: vibes_auth/serializers.py:200
|
||||||
msgid "token_blacklisted"
|
msgid "token_blacklisted"
|
||||||
msgstr "تم إدراج الرمز المميز في القائمة السوداء"
|
msgstr "تم إدراج الرمز المميز في القائمة السوداء"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:204
|
#: vibes_auth/serializers.py:205
|
||||||
msgid "invalid token"
|
msgid "invalid token"
|
||||||
msgstr "رمز غير صالح"
|
msgstr "رمز غير صالح"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:210
|
#: vibes_auth/serializers.py:211
|
||||||
msgid "no user uuid claim present in token"
|
msgid "no user uuid claim present in token"
|
||||||
msgstr "لا توجد مطالبة معرف المستخدم في الرمز المميز"
|
msgstr "لا توجد مطالبة معرف المستخدم في الرمز المميز"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:212
|
#: vibes_auth/serializers.py:213
|
||||||
msgid "user does not exist"
|
msgid "user does not exist"
|
||||||
msgstr "المستخدم غير موجود"
|
msgstr "المستخدم غير موجود"
|
||||||
|
|
||||||
|
|
@ -416,10 +420,10 @@ msgstr ""
|
||||||
msgid "the token is invalid"
|
msgid "the token is invalid"
|
||||||
msgstr "الرمز المميز غير صالح"
|
msgstr "الرمز المميز غير صالح"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:87
|
#: vibes_auth/viewsets.py:88
|
||||||
msgid "password reset successfully"
|
msgid "password reset successfully"
|
||||||
msgstr "تمت إعادة تعيين كلمة المرور بنجاح!"
|
msgstr "تمت إعادة تعيين كلمة المرور بنجاح!"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:120
|
#: vibes_auth/viewsets.py:121
|
||||||
msgid "account already activated!"
|
msgid "account already activated!"
|
||||||
msgstr "لقد قمت بتفعيل الحساب بالفعل..."
|
msgstr "لقد قمت بتفعيل الحساب بالفعل..."
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 1\n"
|
"Project-Id-Version: 1\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-06-08 19:42+0100\n"
|
"POT-Creation-Date: 2025-06-10 03:32+0100\n"
|
||||||
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -74,27 +74,27 @@ msgstr "Ověření tokenu (obnovení nebo přístup)."
|
||||||
msgid "the token is valid"
|
msgid "the token is valid"
|
||||||
msgstr "Token je platný"
|
msgstr "Token je platný"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:15
|
#: vibes_auth/docs/drf/viewsets.py:16
|
||||||
msgid "create a new user"
|
msgid "create a new user"
|
||||||
msgstr "Vytvoření nového uživatele"
|
msgstr "Vytvoření nového uživatele"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:19
|
#: vibes_auth/docs/drf/viewsets.py:20
|
||||||
msgid "retrieve a user's details"
|
msgid "retrieve a user's details"
|
||||||
msgstr "Získání údajů o uživateli"
|
msgstr "Získání údajů o uživateli"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:23
|
#: vibes_auth/docs/drf/viewsets.py:24
|
||||||
msgid "update a user's details"
|
msgid "update a user's details"
|
||||||
msgstr "Aktualizace údajů uživatele"
|
msgstr "Aktualizace údajů uživatele"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:28
|
#: vibes_auth/docs/drf/viewsets.py:29
|
||||||
msgid "delete a user"
|
msgid "delete a user"
|
||||||
msgstr "Odstranění uživatele"
|
msgstr "Odstranění uživatele"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:32
|
#: vibes_auth/docs/drf/viewsets.py:33
|
||||||
msgid "reset a user's password by sending a reset password email"
|
msgid "reset a user's password by sending a reset password email"
|
||||||
msgstr "Obnovení hesla uživatele odesláním e-mailu s obnovením hesla."
|
msgstr "Obnovení hesla uživatele odesláním e-mailu s obnovením hesla."
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:37
|
#: vibes_auth/docs/drf/viewsets.py:38
|
||||||
msgid "handle avatar upload for a user"
|
msgid "handle avatar upload for a user"
|
||||||
msgstr "Zpracování nahrávání avataru pro uživatele"
|
msgstr "Zpracování nahrávání avataru pro uživatele"
|
||||||
|
|
||||||
|
|
@ -103,7 +103,7 @@ msgid "confirm a user's password reset"
|
||||||
msgstr "Potvrzení obnovení hesla uživatele"
|
msgstr "Potvrzení obnovení hesla uživatele"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
||||||
#: vibes_auth/viewsets.py:72
|
#: vibes_auth/viewsets.py:73
|
||||||
msgid "passwords do not match"
|
msgid "passwords do not match"
|
||||||
msgstr "Hesla se neshodují"
|
msgstr "Hesla se neshodují"
|
||||||
|
|
||||||
|
|
@ -115,6 +115,10 @@ msgstr "Aktivace účtu uživatele"
|
||||||
msgid "activation link is invalid or account already activated"
|
msgid "activation link is invalid or account already activated"
|
||||||
msgstr "Aktivační odkaz je neplatný nebo je účet již aktivován"
|
msgstr "Aktivační odkaz je neplatný nebo je účet již aktivován"
|
||||||
|
|
||||||
|
#: vibes_auth/docs/drf/viewsets.py:71
|
||||||
|
msgid "merge client-stored recently viewed products"
|
||||||
|
msgstr "Sloučení naposledy zobrazených produktů uložených u klienta"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:41
|
#: vibes_auth/graphene/mutations.py:41
|
||||||
msgid "the user's b64-encoded uuid who referred the new user to us."
|
msgid "the user's b64-encoded uuid who referred the new user to us."
|
||||||
msgstr "Uuid uživatele s kódem b64, který nám nového uživatele doporučil."
|
msgstr "Uuid uživatele s kódem b64, který nám nového uživatele doporučil."
|
||||||
|
|
@ -142,8 +146,8 @@ msgstr "Chybně zadané telefonní číslo: {phone_number}"
|
||||||
msgid "Invalid attribute format: {attribute_pair}"
|
msgid "Invalid attribute format: {attribute_pair}"
|
||||||
msgstr "Nesprávný formát atributu: {attribute_pair}"
|
msgstr "Nesprávný formát atributu: {attribute_pair}"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:115
|
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116
|
||||||
#: vibes_auth/viewsets.py:134
|
#: vibes_auth/viewsets.py:135
|
||||||
msgid "activation link is invalid!"
|
msgid "activation link is invalid!"
|
||||||
msgstr "Aktivační odkaz je neplatný!"
|
msgstr "Aktivační odkaz je neplatný!"
|
||||||
|
|
||||||
|
|
@ -155,14 +159,14 @@ msgstr "Účet byl již aktivován..."
|
||||||
msgid "something went wrong: {e!s}"
|
msgid "something went wrong: {e!s}"
|
||||||
msgstr "Něco se pokazilo: {e!s}"
|
msgstr "Něco se pokazilo: {e!s}"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:83
|
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84
|
||||||
msgid "token is invalid!"
|
msgid "token is invalid!"
|
||||||
msgstr "Token je neplatný!"
|
msgstr "Token je neplatný!"
|
||||||
|
|
||||||
#: vibes_auth/graphene/object_types.py:39
|
#: vibes_auth/graphene/object_types.py:39
|
||||||
msgid ""
|
msgid ""
|
||||||
"the products this user has viewed most recently (max 48), in reverse‐"
|
"the products this user has viewed most recently (max 48), in "
|
||||||
"chronological order"
|
"reverse‐chronological order"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Produkty, které si tento uživatel prohlížel naposledy (max. 48), seřazené v "
|
"Produkty, které si tento uživatel prohlížel naposledy (max. 48), seřazené v "
|
||||||
"opačném pořadí."
|
"opačném pořadí."
|
||||||
|
|
@ -276,23 +280,23 @@ msgstr "Token na černé listině"
|
||||||
msgid "blacklisted tokens"
|
msgid "blacklisted tokens"
|
||||||
msgstr "Tokeny na černé listině"
|
msgstr "Tokeny na černé listině"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:106 vibes_auth/serializers.py:128
|
#: vibes_auth/serializers.py:107 vibes_auth/serializers.py:129
|
||||||
msgid "no active account"
|
msgid "no active account"
|
||||||
msgstr "Nebyl nalezen žádný aktivní účet"
|
msgstr "Nebyl nalezen žádný aktivní účet"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:199
|
#: vibes_auth/serializers.py:200
|
||||||
msgid "token_blacklisted"
|
msgid "token_blacklisted"
|
||||||
msgstr "Token na černé listině"
|
msgstr "Token na černé listině"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:204
|
#: vibes_auth/serializers.py:205
|
||||||
msgid "invalid token"
|
msgid "invalid token"
|
||||||
msgstr "Neplatný token"
|
msgstr "Neplatný token"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:210
|
#: vibes_auth/serializers.py:211
|
||||||
msgid "no user uuid claim present in token"
|
msgid "no user uuid claim present in token"
|
||||||
msgstr "V tokenu není deklarace uuid uživatele"
|
msgstr "V tokenu není deklarace uuid uživatele"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:212
|
#: vibes_auth/serializers.py:213
|
||||||
msgid "user does not exist"
|
msgid "user does not exist"
|
||||||
msgstr "Uživatel neexistuje"
|
msgstr "Uživatel neexistuje"
|
||||||
|
|
||||||
|
|
@ -376,8 +380,7 @@ msgid ""
|
||||||
"if the button above does not work, please copy and paste the following URL\n"
|
"if the button above does not work, please copy and paste the following URL\n"
|
||||||
" into your web browser:"
|
" into your web browser:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Pokud výše uvedené tlačítko nefunguje, zkopírujte a vložte následující "
|
"Pokud výše uvedené tlačítko nefunguje, zkopírujte a vložte následující adresu URL\n"
|
||||||
"adresu URL\n"
|
|
||||||
" do webového prohlížeče:"
|
" do webového prohlížeče:"
|
||||||
|
|
||||||
#: vibes_auth/templates/user_verification_email.html:101
|
#: vibes_auth/templates/user_verification_email.html:101
|
||||||
|
|
@ -416,10 +419,10 @@ msgstr ""
|
||||||
msgid "the token is invalid"
|
msgid "the token is invalid"
|
||||||
msgstr "Token je neplatný"
|
msgstr "Token je neplatný"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:87
|
#: vibes_auth/viewsets.py:88
|
||||||
msgid "password reset successfully"
|
msgid "password reset successfully"
|
||||||
msgstr "Heslo bylo úspěšně resetováno!"
|
msgstr "Heslo bylo úspěšně resetováno!"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:120
|
#: vibes_auth/viewsets.py:121
|
||||||
msgid "account already activated!"
|
msgid "account already activated!"
|
||||||
msgstr "Účet jste již aktivovali..."
|
msgstr "Účet jste již aktivovali..."
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 1\n"
|
"Project-Id-Version: 1\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-06-08 19:42+0100\n"
|
"POT-Creation-Date: 2025-06-10 03:32+0100\n"
|
||||||
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -74,29 +74,29 @@ msgstr "Bekræft et token (opdatering eller adgang)."
|
||||||
msgid "the token is valid"
|
msgid "the token is valid"
|
||||||
msgstr "Tokenet er gyldigt"
|
msgstr "Tokenet er gyldigt"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:15
|
#: vibes_auth/docs/drf/viewsets.py:16
|
||||||
msgid "create a new user"
|
msgid "create a new user"
|
||||||
msgstr "Opret en ny bruger"
|
msgstr "Opret en ny bruger"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:19
|
#: vibes_auth/docs/drf/viewsets.py:20
|
||||||
msgid "retrieve a user's details"
|
msgid "retrieve a user's details"
|
||||||
msgstr "Hent oplysninger om en bruger"
|
msgstr "Hent oplysninger om en bruger"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:23
|
#: vibes_auth/docs/drf/viewsets.py:24
|
||||||
msgid "update a user's details"
|
msgid "update a user's details"
|
||||||
msgstr "Opdater en brugers oplysninger"
|
msgstr "Opdater en brugers oplysninger"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:28
|
#: vibes_auth/docs/drf/viewsets.py:29
|
||||||
msgid "delete a user"
|
msgid "delete a user"
|
||||||
msgstr "Slet en bruger"
|
msgstr "Slet en bruger"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:32
|
#: vibes_auth/docs/drf/viewsets.py:33
|
||||||
msgid "reset a user's password by sending a reset password email"
|
msgid "reset a user's password by sending a reset password email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Nulstil en brugers adgangskode ved at sende en e-mail om nulstilling af "
|
"Nulstil en brugers adgangskode ved at sende en e-mail om nulstilling af "
|
||||||
"adgangskode"
|
"adgangskode"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:37
|
#: vibes_auth/docs/drf/viewsets.py:38
|
||||||
msgid "handle avatar upload for a user"
|
msgid "handle avatar upload for a user"
|
||||||
msgstr "Håndter upload af avatar for en bruger"
|
msgstr "Håndter upload af avatar for en bruger"
|
||||||
|
|
||||||
|
|
@ -105,7 +105,7 @@ msgid "confirm a user's password reset"
|
||||||
msgstr "Bekræft nulstilling af en brugers adgangskode"
|
msgstr "Bekræft nulstilling af en brugers adgangskode"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
||||||
#: vibes_auth/viewsets.py:72
|
#: vibes_auth/viewsets.py:73
|
||||||
msgid "passwords do not match"
|
msgid "passwords do not match"
|
||||||
msgstr "Adgangskoderne stemmer ikke overens"
|
msgstr "Adgangskoderne stemmer ikke overens"
|
||||||
|
|
||||||
|
|
@ -117,6 +117,10 @@ msgstr "Aktivér en brugers konto"
|
||||||
msgid "activation link is invalid or account already activated"
|
msgid "activation link is invalid or account already activated"
|
||||||
msgstr "Aktiveringslinket er ugyldigt, eller kontoen er allerede aktiveret"
|
msgstr "Aktiveringslinket er ugyldigt, eller kontoen er allerede aktiveret"
|
||||||
|
|
||||||
|
#: vibes_auth/docs/drf/viewsets.py:71
|
||||||
|
msgid "merge client-stored recently viewed products"
|
||||||
|
msgstr "Flet nyligt viste produkter, der er gemt af klienten"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:41
|
#: vibes_auth/graphene/mutations.py:41
|
||||||
msgid "the user's b64-encoded uuid who referred the new user to us."
|
msgid "the user's b64-encoded uuid who referred the new user to us."
|
||||||
msgstr "Brugerens b64-kodede uuid, som henviste den nye bruger til os."
|
msgstr "Brugerens b64-kodede uuid, som henviste den nye bruger til os."
|
||||||
|
|
@ -144,8 +148,8 @@ msgstr "Misdannet telefonnummer: {phone_number}."
|
||||||
msgid "Invalid attribute format: {attribute_pair}"
|
msgid "Invalid attribute format: {attribute_pair}"
|
||||||
msgstr "Ugyldigt attributformat: {attribute_pair}"
|
msgstr "Ugyldigt attributformat: {attribute_pair}"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:115
|
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116
|
||||||
#: vibes_auth/viewsets.py:134
|
#: vibes_auth/viewsets.py:135
|
||||||
msgid "activation link is invalid!"
|
msgid "activation link is invalid!"
|
||||||
msgstr "Aktiveringslinket er ugyldigt!"
|
msgstr "Aktiveringslinket er ugyldigt!"
|
||||||
|
|
||||||
|
|
@ -157,14 +161,14 @@ msgstr "Kontoen er allerede aktiveret..."
|
||||||
msgid "something went wrong: {e!s}"
|
msgid "something went wrong: {e!s}"
|
||||||
msgstr "Noget gik galt: {e!s}"
|
msgstr "Noget gik galt: {e!s}"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:83
|
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84
|
||||||
msgid "token is invalid!"
|
msgid "token is invalid!"
|
||||||
msgstr "Token er ugyldig!"
|
msgstr "Token er ugyldig!"
|
||||||
|
|
||||||
#: vibes_auth/graphene/object_types.py:39
|
#: vibes_auth/graphene/object_types.py:39
|
||||||
msgid ""
|
msgid ""
|
||||||
"the products this user has viewed most recently (max 48), in reverse‐"
|
"the products this user has viewed most recently (max 48), in "
|
||||||
"chronological order"
|
"reverse‐chronological order"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"De produkter, som denne bruger har set for nylig (maks. 48), i omvendt "
|
"De produkter, som denne bruger har set for nylig (maks. 48), i omvendt "
|
||||||
"kronologisk rækkefølge."
|
"kronologisk rækkefølge."
|
||||||
|
|
@ -278,23 +282,23 @@ msgstr "Sortlistet token"
|
||||||
msgid "blacklisted tokens"
|
msgid "blacklisted tokens"
|
||||||
msgstr "Sortlistede tokens"
|
msgstr "Sortlistede tokens"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:106 vibes_auth/serializers.py:128
|
#: vibes_auth/serializers.py:107 vibes_auth/serializers.py:129
|
||||||
msgid "no active account"
|
msgid "no active account"
|
||||||
msgstr "Ingen aktiv konto fundet"
|
msgstr "Ingen aktiv konto fundet"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:199
|
#: vibes_auth/serializers.py:200
|
||||||
msgid "token_blacklisted"
|
msgid "token_blacklisted"
|
||||||
msgstr "Token blacklistet"
|
msgstr "Token blacklistet"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:204
|
#: vibes_auth/serializers.py:205
|
||||||
msgid "invalid token"
|
msgid "invalid token"
|
||||||
msgstr "Ugyldigt token"
|
msgstr "Ugyldigt token"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:210
|
#: vibes_auth/serializers.py:211
|
||||||
msgid "no user uuid claim present in token"
|
msgid "no user uuid claim present in token"
|
||||||
msgstr "Ingen bruger-uuid-krav til stede i token"
|
msgstr "Ingen bruger-uuid-krav til stede i token"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:212
|
#: vibes_auth/serializers.py:213
|
||||||
msgid "user does not exist"
|
msgid "user does not exist"
|
||||||
msgstr "Brugeren findes ikke"
|
msgstr "Brugeren findes ikke"
|
||||||
|
|
||||||
|
|
@ -379,8 +383,7 @@ msgid ""
|
||||||
"if the button above does not work, please copy and paste the following URL\n"
|
"if the button above does not work, please copy and paste the following URL\n"
|
||||||
" into your web browser:"
|
" into your web browser:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Hvis ovenstående knap ikke virker, bedes du kopiere og indsætte følgende "
|
"Hvis ovenstående knap ikke virker, bedes du kopiere og indsætte følgende URL\n"
|
||||||
"URL\n"
|
|
||||||
" i din webbrowser:"
|
" i din webbrowser:"
|
||||||
|
|
||||||
#: vibes_auth/templates/user_verification_email.html:101
|
#: vibes_auth/templates/user_verification_email.html:101
|
||||||
|
|
@ -419,10 +422,10 @@ msgstr ""
|
||||||
msgid "the token is invalid"
|
msgid "the token is invalid"
|
||||||
msgstr "Tokenet er ugyldigt"
|
msgstr "Tokenet er ugyldigt"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:87
|
#: vibes_auth/viewsets.py:88
|
||||||
msgid "password reset successfully"
|
msgid "password reset successfully"
|
||||||
msgstr "Adgangskoden er blevet nulstillet med succes!"
|
msgstr "Adgangskoden er blevet nulstillet med succes!"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:120
|
#: vibes_auth/viewsets.py:121
|
||||||
msgid "account already activated!"
|
msgid "account already activated!"
|
||||||
msgstr "Du har allerede aktiveret kontoen..."
|
msgstr "Du har allerede aktiveret kontoen..."
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 1\n"
|
"Project-Id-Version: 1\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-06-08 19:42+0100\n"
|
"POT-Creation-Date: 2025-06-10 03:32+0100\n"
|
||||||
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -75,29 +75,29 @@ msgstr "Überprüfen eines Tokens (Aktualisierung oder Zugriff)."
|
||||||
msgid "the token is valid"
|
msgid "the token is valid"
|
||||||
msgstr "Das Token ist gültig"
|
msgstr "Das Token ist gültig"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:15
|
#: vibes_auth/docs/drf/viewsets.py:16
|
||||||
msgid "create a new user"
|
msgid "create a new user"
|
||||||
msgstr "Einen neuen Benutzer anlegen"
|
msgstr "Einen neuen Benutzer anlegen"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:19
|
#: vibes_auth/docs/drf/viewsets.py:20
|
||||||
msgid "retrieve a user's details"
|
msgid "retrieve a user's details"
|
||||||
msgstr "Abrufen der Details eines Benutzers"
|
msgstr "Abrufen der Details eines Benutzers"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:23
|
#: vibes_auth/docs/drf/viewsets.py:24
|
||||||
msgid "update a user's details"
|
msgid "update a user's details"
|
||||||
msgstr "Aktualisieren der Benutzerdaten"
|
msgstr "Aktualisieren der Benutzerdaten"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:28
|
#: vibes_auth/docs/drf/viewsets.py:29
|
||||||
msgid "delete a user"
|
msgid "delete a user"
|
||||||
msgstr "Einen Benutzer löschen"
|
msgstr "Einen Benutzer löschen"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:32
|
#: vibes_auth/docs/drf/viewsets.py:33
|
||||||
msgid "reset a user's password by sending a reset password email"
|
msgid "reset a user's password by sending a reset password email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Zurücksetzen des Kennworts eines Benutzers durch Senden einer E-Mail zum "
|
"Zurücksetzen des Kennworts eines Benutzers durch Senden einer E-Mail zum "
|
||||||
"Zurücksetzen des Kennworts"
|
"Zurücksetzen des Kennworts"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:37
|
#: vibes_auth/docs/drf/viewsets.py:38
|
||||||
msgid "handle avatar upload for a user"
|
msgid "handle avatar upload for a user"
|
||||||
msgstr "Avatar-Upload für einen Benutzer verwalten"
|
msgstr "Avatar-Upload für einen Benutzer verwalten"
|
||||||
|
|
||||||
|
|
@ -106,7 +106,7 @@ msgid "confirm a user's password reset"
|
||||||
msgstr "Bestätigen Sie das Zurücksetzen des Passworts eines Benutzers"
|
msgstr "Bestätigen Sie das Zurücksetzen des Passworts eines Benutzers"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
||||||
#: vibes_auth/viewsets.py:72
|
#: vibes_auth/viewsets.py:73
|
||||||
msgid "passwords do not match"
|
msgid "passwords do not match"
|
||||||
msgstr "Passwörter stimmen nicht überein"
|
msgstr "Passwörter stimmen nicht überein"
|
||||||
|
|
||||||
|
|
@ -118,11 +118,16 @@ msgstr "Aktivieren eines Benutzerkontos"
|
||||||
msgid "activation link is invalid or account already activated"
|
msgid "activation link is invalid or account already activated"
|
||||||
msgstr "Aktivierungslink ist ungültig oder Konto bereits aktiviert"
|
msgstr "Aktivierungslink ist ungültig oder Konto bereits aktiviert"
|
||||||
|
|
||||||
|
#: vibes_auth/docs/drf/viewsets.py:71
|
||||||
|
msgid "merge client-stored recently viewed products"
|
||||||
|
msgstr ""
|
||||||
|
"Zusammenführen der vom Kunden gespeicherten, zuletzt angesehenen Produkte"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:41
|
#: vibes_auth/graphene/mutations.py:41
|
||||||
msgid "the user's b64-encoded uuid who referred the new user to us."
|
msgid "the user's b64-encoded uuid who referred the new user to us."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Die b64-kodierte uuid des Benutzers, der den neuen Benutzer an uns verwiesen "
|
"Die b64-kodierte uuid des Benutzers, der den neuen Benutzer an uns verwiesen"
|
||||||
"hat."
|
" hat."
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:61
|
#: vibes_auth/graphene/mutations.py:61
|
||||||
msgid "password too weak"
|
msgid "password too weak"
|
||||||
|
|
@ -147,8 +152,8 @@ msgstr "Fehlerhafte Telefonnummer: {phone_number}"
|
||||||
msgid "Invalid attribute format: {attribute_pair}"
|
msgid "Invalid attribute format: {attribute_pair}"
|
||||||
msgstr "Ungültiges Attributformat: {attribute_pair}"
|
msgstr "Ungültiges Attributformat: {attribute_pair}"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:115
|
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116
|
||||||
#: vibes_auth/viewsets.py:134
|
#: vibes_auth/viewsets.py:135
|
||||||
msgid "activation link is invalid!"
|
msgid "activation link is invalid!"
|
||||||
msgstr "Der Aktivierungslink ist ungültig!"
|
msgstr "Der Aktivierungslink ist ungültig!"
|
||||||
|
|
||||||
|
|
@ -160,14 +165,14 @@ msgstr "Das Konto wurde bereits aktiviert..."
|
||||||
msgid "something went wrong: {e!s}"
|
msgid "something went wrong: {e!s}"
|
||||||
msgstr "Etwas ist schief gelaufen: {e!s}"
|
msgstr "Etwas ist schief gelaufen: {e!s}"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:83
|
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84
|
||||||
msgid "token is invalid!"
|
msgid "token is invalid!"
|
||||||
msgstr "Token ist ungültig!"
|
msgstr "Token ist ungültig!"
|
||||||
|
|
||||||
#: vibes_auth/graphene/object_types.py:39
|
#: vibes_auth/graphene/object_types.py:39
|
||||||
msgid ""
|
msgid ""
|
||||||
"the products this user has viewed most recently (max 48), in reverse‐"
|
"the products this user has viewed most recently (max 48), in "
|
||||||
"chronological order"
|
"reverse‐chronological order"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Die Produkte, die dieser Benutzer zuletzt angesehen hat (maximal 48), in "
|
"Die Produkte, die dieser Benutzer zuletzt angesehen hat (maximal 48), in "
|
||||||
"umgekehrter chronologischer Reihenfolge."
|
"umgekehrter chronologischer Reihenfolge."
|
||||||
|
|
@ -282,23 +287,23 @@ msgstr "Token auf der schwarzen Liste"
|
||||||
msgid "blacklisted tokens"
|
msgid "blacklisted tokens"
|
||||||
msgstr "Token auf der schwarzen Liste"
|
msgstr "Token auf der schwarzen Liste"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:106 vibes_auth/serializers.py:128
|
#: vibes_auth/serializers.py:107 vibes_auth/serializers.py:129
|
||||||
msgid "no active account"
|
msgid "no active account"
|
||||||
msgstr "Kein aktives Konto gefunden"
|
msgstr "Kein aktives Konto gefunden"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:199
|
#: vibes_auth/serializers.py:200
|
||||||
msgid "token_blacklisted"
|
msgid "token_blacklisted"
|
||||||
msgstr "Token auf der schwarzen Liste"
|
msgstr "Token auf der schwarzen Liste"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:204
|
#: vibes_auth/serializers.py:205
|
||||||
msgid "invalid token"
|
msgid "invalid token"
|
||||||
msgstr "Ungültiges Token"
|
msgstr "Ungültiges Token"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:210
|
#: vibes_auth/serializers.py:211
|
||||||
msgid "no user uuid claim present in token"
|
msgid "no user uuid claim present in token"
|
||||||
msgstr "Kein Benutzer uuid-Anspruch im Token vorhanden"
|
msgstr "Kein Benutzer uuid-Anspruch im Token vorhanden"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:212
|
#: vibes_auth/serializers.py:213
|
||||||
msgid "user does not exist"
|
msgid "user does not exist"
|
||||||
msgstr "Benutzer existiert nicht"
|
msgstr "Benutzer existiert nicht"
|
||||||
|
|
||||||
|
|
@ -344,8 +349,8 @@ msgstr ""
|
||||||
#: vibes_auth/templates/user_reset_password_email.html:88
|
#: vibes_auth/templates/user_reset_password_email.html:88
|
||||||
msgid "if you did not send this request, please ignore this email."
|
msgid "if you did not send this request, please ignore this email."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Wenn Sie diese Anfrage nicht gesendet haben, ignorieren Sie bitte diese E-"
|
"Wenn Sie diese Anfrage nicht gesendet haben, ignorieren Sie bitte diese "
|
||||||
"Mail."
|
"E-Mail."
|
||||||
|
|
||||||
#: vibes_auth/templates/user_reset_password_email.html:89
|
#: vibes_auth/templates/user_reset_password_email.html:89
|
||||||
#, python-format
|
#, python-format
|
||||||
|
|
@ -384,8 +389,7 @@ msgid ""
|
||||||
"if the button above does not work, please copy and paste the following URL\n"
|
"if the button above does not work, please copy and paste the following URL\n"
|
||||||
" into your web browser:"
|
" into your web browser:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Wenn die obige Schaltfläche nicht funktioniert, kopieren Sie bitte die "
|
"Wenn die obige Schaltfläche nicht funktioniert, kopieren Sie bitte die folgende URL und fügen Sie sie in Ihren Browser ein\n"
|
||||||
"folgende URL und fügen Sie sie in Ihren Browser ein\n"
|
|
||||||
" in Ihren Webbrowser ein:"
|
" in Ihren Webbrowser ein:"
|
||||||
|
|
||||||
#: vibes_auth/templates/user_verification_email.html:101
|
#: vibes_auth/templates/user_verification_email.html:101
|
||||||
|
|
@ -424,10 +428,10 @@ msgstr ""
|
||||||
msgid "the token is invalid"
|
msgid "the token is invalid"
|
||||||
msgstr "Das Token ist ungültig"
|
msgstr "Das Token ist ungültig"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:87
|
#: vibes_auth/viewsets.py:88
|
||||||
msgid "password reset successfully"
|
msgid "password reset successfully"
|
||||||
msgstr "Das Passwort wurde erfolgreich zurückgesetzt!"
|
msgstr "Das Passwort wurde erfolgreich zurückgesetzt!"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:120
|
#: vibes_auth/viewsets.py:121
|
||||||
msgid "account already activated!"
|
msgid "account already activated!"
|
||||||
msgstr "Sie haben das Konto bereits aktiviert..."
|
msgstr "Sie haben das Konto bereits aktiviert..."
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 1\n"
|
"Project-Id-Version: 1\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-06-08 19:42+0100\n"
|
"POT-Creation-Date: 2025-06-10 03:32+0100\n"
|
||||||
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -78,27 +78,27 @@ msgstr "Verify a token (refresh or access)."
|
||||||
msgid "the token is valid"
|
msgid "the token is valid"
|
||||||
msgstr "The token is valid"
|
msgstr "The token is valid"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:15
|
#: vibes_auth/docs/drf/viewsets.py:16
|
||||||
msgid "create a new user"
|
msgid "create a new user"
|
||||||
msgstr "Create a new user"
|
msgstr "Create a new user"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:19
|
#: vibes_auth/docs/drf/viewsets.py:20
|
||||||
msgid "retrieve a user's details"
|
msgid "retrieve a user's details"
|
||||||
msgstr "Retrieve a user's details"
|
msgstr "Retrieve a user's details"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:23
|
#: vibes_auth/docs/drf/viewsets.py:24
|
||||||
msgid "update a user's details"
|
msgid "update a user's details"
|
||||||
msgstr "Update a user's details"
|
msgstr "Update a user's details"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:28
|
#: vibes_auth/docs/drf/viewsets.py:29
|
||||||
msgid "delete a user"
|
msgid "delete a user"
|
||||||
msgstr "Delete a user"
|
msgstr "Delete a user"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:32
|
#: vibes_auth/docs/drf/viewsets.py:33
|
||||||
msgid "reset a user's password by sending a reset password email"
|
msgid "reset a user's password by sending a reset password email"
|
||||||
msgstr "Reset a user's password by sending a reset password email"
|
msgstr "Reset a user's password by sending a reset password email"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:37
|
#: vibes_auth/docs/drf/viewsets.py:38
|
||||||
msgid "handle avatar upload for a user"
|
msgid "handle avatar upload for a user"
|
||||||
msgstr "Handle avatar upload for a user"
|
msgstr "Handle avatar upload for a user"
|
||||||
|
|
||||||
|
|
@ -107,7 +107,7 @@ msgid "confirm a user's password reset"
|
||||||
msgstr "Confirm a user's password reset"
|
msgstr "Confirm a user's password reset"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
||||||
#: vibes_auth/viewsets.py:72
|
#: vibes_auth/viewsets.py:73
|
||||||
msgid "passwords do not match"
|
msgid "passwords do not match"
|
||||||
msgstr "Passwords do not match"
|
msgstr "Passwords do not match"
|
||||||
|
|
||||||
|
|
@ -119,6 +119,10 @@ msgstr "Activate a user's account"
|
||||||
msgid "activation link is invalid or account already activated"
|
msgid "activation link is invalid or account already activated"
|
||||||
msgstr "Activation link is invalid or account already activated"
|
msgstr "Activation link is invalid or account already activated"
|
||||||
|
|
||||||
|
#: vibes_auth/docs/drf/viewsets.py:71
|
||||||
|
msgid "merge client-stored recently viewed products"
|
||||||
|
msgstr "Merge client-stored recently viewed products"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:41
|
#: vibes_auth/graphene/mutations.py:41
|
||||||
msgid "the user's b64-encoded uuid who referred the new user to us."
|
msgid "the user's b64-encoded uuid who referred the new user to us."
|
||||||
msgstr "The user's b64-encoded uuid who referred the new user to us."
|
msgstr "The user's b64-encoded uuid who referred the new user to us."
|
||||||
|
|
@ -146,8 +150,8 @@ msgstr "Malformed phone number: {phone_number}"
|
||||||
msgid "Invalid attribute format: {attribute_pair}"
|
msgid "Invalid attribute format: {attribute_pair}"
|
||||||
msgstr "Invalid attribute format: {attribute_pair}"
|
msgstr "Invalid attribute format: {attribute_pair}"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:115
|
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116
|
||||||
#: vibes_auth/viewsets.py:134
|
#: vibes_auth/viewsets.py:135
|
||||||
msgid "activation link is invalid!"
|
msgid "activation link is invalid!"
|
||||||
msgstr "Activation link is invalid!"
|
msgstr "Activation link is invalid!"
|
||||||
|
|
||||||
|
|
@ -159,14 +163,14 @@ msgstr "Account has been already activated..."
|
||||||
msgid "something went wrong: {e!s}"
|
msgid "something went wrong: {e!s}"
|
||||||
msgstr "Something went wrong: {e!s}"
|
msgstr "Something went wrong: {e!s}"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:83
|
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84
|
||||||
msgid "token is invalid!"
|
msgid "token is invalid!"
|
||||||
msgstr "Token is invalid!"
|
msgstr "Token is invalid!"
|
||||||
|
|
||||||
#: vibes_auth/graphene/object_types.py:39
|
#: vibes_auth/graphene/object_types.py:39
|
||||||
msgid ""
|
msgid ""
|
||||||
"the products this user has viewed most recently (max 48), in reverse‐"
|
"the products this user has viewed most recently (max 48), in "
|
||||||
"chronological order"
|
"reverse‐chronological order"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"The products this user has viewed most recently (max 48), in reverse-"
|
"The products this user has viewed most recently (max 48), in reverse-"
|
||||||
"chronological order."
|
"chronological order."
|
||||||
|
|
@ -280,23 +284,23 @@ msgstr "Blacklisted token"
|
||||||
msgid "blacklisted tokens"
|
msgid "blacklisted tokens"
|
||||||
msgstr "Blacklisted tokens"
|
msgstr "Blacklisted tokens"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:106 vibes_auth/serializers.py:128
|
#: vibes_auth/serializers.py:107 vibes_auth/serializers.py:129
|
||||||
msgid "no active account"
|
msgid "no active account"
|
||||||
msgstr "No active account found"
|
msgstr "No active account found"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:199
|
#: vibes_auth/serializers.py:200
|
||||||
msgid "token_blacklisted"
|
msgid "token_blacklisted"
|
||||||
msgstr "Token blacklisted"
|
msgstr "Token blacklisted"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:204
|
#: vibes_auth/serializers.py:205
|
||||||
msgid "invalid token"
|
msgid "invalid token"
|
||||||
msgstr "Invalid token"
|
msgstr "Invalid token"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:210
|
#: vibes_auth/serializers.py:211
|
||||||
msgid "no user uuid claim present in token"
|
msgid "no user uuid claim present in token"
|
||||||
msgstr "No user uuid claim present in token"
|
msgstr "No user uuid claim present in token"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:212
|
#: vibes_auth/serializers.py:213
|
||||||
msgid "user does not exist"
|
msgid "user does not exist"
|
||||||
msgstr "User does not exist"
|
msgstr "User does not exist"
|
||||||
|
|
||||||
|
|
@ -419,16 +423,13 @@ msgstr ""
|
||||||
msgid "the token is invalid"
|
msgid "the token is invalid"
|
||||||
msgstr "The token is invalid"
|
msgstr "The token is invalid"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:87
|
#: vibes_auth/viewsets.py:88
|
||||||
msgid "password reset successfully"
|
msgid "password reset successfully"
|
||||||
msgstr "Password has been reset successfully!"
|
msgstr "Password has been reset successfully!"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:120
|
#: vibes_auth/viewsets.py:121
|
||||||
msgid "account already activated!"
|
msgid "account already activated!"
|
||||||
msgstr "You have already activated the account..."
|
msgstr "You have already activated the account..."
|
||||||
|
|
||||||
#~ msgid "recently viewed products"
|
|
||||||
#~ msgstr "Recently viewed products"
|
|
||||||
|
|
||||||
#~ msgid "recently viwed"
|
#~ msgid "recently viwed"
|
||||||
#~ msgstr "Recently viewed"
|
#~ msgstr "Recently viewed"
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 1\n"
|
"Project-Id-Version: 1\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-06-08 19:42+0100\n"
|
"POT-Creation-Date: 2025-06-10 03:32+0100\n"
|
||||||
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -74,27 +74,27 @@ msgstr "Verify a token (refresh or access)."
|
||||||
msgid "the token is valid"
|
msgid "the token is valid"
|
||||||
msgstr "The token is valid"
|
msgstr "The token is valid"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:15
|
#: vibes_auth/docs/drf/viewsets.py:16
|
||||||
msgid "create a new user"
|
msgid "create a new user"
|
||||||
msgstr "Create a new user"
|
msgstr "Create a new user"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:19
|
#: vibes_auth/docs/drf/viewsets.py:20
|
||||||
msgid "retrieve a user's details"
|
msgid "retrieve a user's details"
|
||||||
msgstr "Retrieve a user's details"
|
msgstr "Retrieve a user's details"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:23
|
#: vibes_auth/docs/drf/viewsets.py:24
|
||||||
msgid "update a user's details"
|
msgid "update a user's details"
|
||||||
msgstr "Update a user's details"
|
msgstr "Update a user's details"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:28
|
#: vibes_auth/docs/drf/viewsets.py:29
|
||||||
msgid "delete a user"
|
msgid "delete a user"
|
||||||
msgstr "Delete a user"
|
msgstr "Delete a user"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:32
|
#: vibes_auth/docs/drf/viewsets.py:33
|
||||||
msgid "reset a user's password by sending a reset password email"
|
msgid "reset a user's password by sending a reset password email"
|
||||||
msgstr "Reset a user's password by sending a reset password email"
|
msgstr "Reset a user's password by sending a reset password email"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:37
|
#: vibes_auth/docs/drf/viewsets.py:38
|
||||||
msgid "handle avatar upload for a user"
|
msgid "handle avatar upload for a user"
|
||||||
msgstr "Handle avatar upload for a user"
|
msgstr "Handle avatar upload for a user"
|
||||||
|
|
||||||
|
|
@ -103,7 +103,7 @@ msgid "confirm a user's password reset"
|
||||||
msgstr "Confirm a user's password reset"
|
msgstr "Confirm a user's password reset"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
||||||
#: vibes_auth/viewsets.py:72
|
#: vibes_auth/viewsets.py:73
|
||||||
msgid "passwords do not match"
|
msgid "passwords do not match"
|
||||||
msgstr "Passwords do not match"
|
msgstr "Passwords do not match"
|
||||||
|
|
||||||
|
|
@ -115,6 +115,10 @@ msgstr "Activate a user's account"
|
||||||
msgid "activation link is invalid or account already activated"
|
msgid "activation link is invalid or account already activated"
|
||||||
msgstr "Activation link is invalid or account already activated"
|
msgstr "Activation link is invalid or account already activated"
|
||||||
|
|
||||||
|
#: vibes_auth/docs/drf/viewsets.py:71
|
||||||
|
msgid "merge client-stored recently viewed products"
|
||||||
|
msgstr "Merge client-stored recently viewed products"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:41
|
#: vibes_auth/graphene/mutations.py:41
|
||||||
msgid "the user's b64-encoded uuid who referred the new user to us."
|
msgid "the user's b64-encoded uuid who referred the new user to us."
|
||||||
msgstr "The user's b64-encoded uuid who referred the new user to us."
|
msgstr "The user's b64-encoded uuid who referred the new user to us."
|
||||||
|
|
@ -142,8 +146,8 @@ msgstr "Malformed phone number: {phone_number}"
|
||||||
msgid "Invalid attribute format: {attribute_pair}"
|
msgid "Invalid attribute format: {attribute_pair}"
|
||||||
msgstr "Invalid attribute format: {attribute_pair}"
|
msgstr "Invalid attribute format: {attribute_pair}"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:115
|
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116
|
||||||
#: vibes_auth/viewsets.py:134
|
#: vibes_auth/viewsets.py:135
|
||||||
msgid "activation link is invalid!"
|
msgid "activation link is invalid!"
|
||||||
msgstr "Activation link is invalid!"
|
msgstr "Activation link is invalid!"
|
||||||
|
|
||||||
|
|
@ -155,14 +159,14 @@ msgstr "Account has been already activated..."
|
||||||
msgid "something went wrong: {e!s}"
|
msgid "something went wrong: {e!s}"
|
||||||
msgstr "Something went wrong: {e!s}"
|
msgstr "Something went wrong: {e!s}"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:83
|
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84
|
||||||
msgid "token is invalid!"
|
msgid "token is invalid!"
|
||||||
msgstr "Token is invalid!"
|
msgstr "Token is invalid!"
|
||||||
|
|
||||||
#: vibes_auth/graphene/object_types.py:39
|
#: vibes_auth/graphene/object_types.py:39
|
||||||
msgid ""
|
msgid ""
|
||||||
"the products this user has viewed most recently (max 48), in reverse‐"
|
"the products this user has viewed most recently (max 48), in "
|
||||||
"chronological order"
|
"reverse‐chronological order"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"The products this user has viewed most recently (max 48), in reverse-"
|
"The products this user has viewed most recently (max 48), in reverse-"
|
||||||
"chronological order."
|
"chronological order."
|
||||||
|
|
@ -276,23 +280,23 @@ msgstr "Blacklisted token"
|
||||||
msgid "blacklisted tokens"
|
msgid "blacklisted tokens"
|
||||||
msgstr "Blacklisted tokens"
|
msgstr "Blacklisted tokens"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:106 vibes_auth/serializers.py:128
|
#: vibes_auth/serializers.py:107 vibes_auth/serializers.py:129
|
||||||
msgid "no active account"
|
msgid "no active account"
|
||||||
msgstr "No active account found"
|
msgstr "No active account found"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:199
|
#: vibes_auth/serializers.py:200
|
||||||
msgid "token_blacklisted"
|
msgid "token_blacklisted"
|
||||||
msgstr "Token blacklisted"
|
msgstr "Token blacklisted"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:204
|
#: vibes_auth/serializers.py:205
|
||||||
msgid "invalid token"
|
msgid "invalid token"
|
||||||
msgstr "Invalid token"
|
msgstr "Invalid token"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:210
|
#: vibes_auth/serializers.py:211
|
||||||
msgid "no user uuid claim present in token"
|
msgid "no user uuid claim present in token"
|
||||||
msgstr "No user uuid claim present in token"
|
msgstr "No user uuid claim present in token"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:212
|
#: vibes_auth/serializers.py:213
|
||||||
msgid "user does not exist"
|
msgid "user does not exist"
|
||||||
msgstr "User does not exist"
|
msgstr "User does not exist"
|
||||||
|
|
||||||
|
|
@ -415,10 +419,10 @@ msgstr ""
|
||||||
msgid "the token is invalid"
|
msgid "the token is invalid"
|
||||||
msgstr "The token is invalid"
|
msgstr "The token is invalid"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:87
|
#: vibes_auth/viewsets.py:88
|
||||||
msgid "password reset successfully"
|
msgid "password reset successfully"
|
||||||
msgstr "Password has been reset successfully!"
|
msgstr "Password has been reset successfully!"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:120
|
#: vibes_auth/viewsets.py:121
|
||||||
msgid "account already activated!"
|
msgid "account already activated!"
|
||||||
msgstr "You have already activated the account..."
|
msgstr "You have already activated the account..."
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 1\n"
|
"Project-Id-Version: 1\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-06-08 19:42+0100\n"
|
"POT-Creation-Date: 2025-06-10 03:32+0100\n"
|
||||||
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -74,29 +74,29 @@ msgstr "Verificar un token (actualización o acceso)."
|
||||||
msgid "the token is valid"
|
msgid "the token is valid"
|
||||||
msgstr "El token es válido"
|
msgstr "El token es válido"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:15
|
#: vibes_auth/docs/drf/viewsets.py:16
|
||||||
msgid "create a new user"
|
msgid "create a new user"
|
||||||
msgstr "Crear un nuevo usuario"
|
msgstr "Crear un nuevo usuario"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:19
|
#: vibes_auth/docs/drf/viewsets.py:20
|
||||||
msgid "retrieve a user's details"
|
msgid "retrieve a user's details"
|
||||||
msgstr "Recuperar los datos de un usuario"
|
msgstr "Recuperar los datos de un usuario"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:23
|
#: vibes_auth/docs/drf/viewsets.py:24
|
||||||
msgid "update a user's details"
|
msgid "update a user's details"
|
||||||
msgstr "Actualizar los datos de un usuario"
|
msgstr "Actualizar los datos de un usuario"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:28
|
#: vibes_auth/docs/drf/viewsets.py:29
|
||||||
msgid "delete a user"
|
msgid "delete a user"
|
||||||
msgstr "Eliminar un usuario"
|
msgstr "Eliminar un usuario"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:32
|
#: vibes_auth/docs/drf/viewsets.py:33
|
||||||
msgid "reset a user's password by sending a reset password email"
|
msgid "reset a user's password by sending a reset password email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Restablecer la contraseña de un usuario enviando un correo electrónico de "
|
"Restablecer la contraseña de un usuario enviando un correo electrónico de "
|
||||||
"restablecimiento de contraseña"
|
"restablecimiento de contraseña"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:37
|
#: vibes_auth/docs/drf/viewsets.py:38
|
||||||
msgid "handle avatar upload for a user"
|
msgid "handle avatar upload for a user"
|
||||||
msgstr "Gestionar la subida de avatares de un usuario"
|
msgstr "Gestionar la subida de avatares de un usuario"
|
||||||
|
|
||||||
|
|
@ -105,7 +105,7 @@ msgid "confirm a user's password reset"
|
||||||
msgstr "Confirmar el restablecimiento de la contraseña de un usuario"
|
msgstr "Confirmar el restablecimiento de la contraseña de un usuario"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
||||||
#: vibes_auth/viewsets.py:72
|
#: vibes_auth/viewsets.py:73
|
||||||
msgid "passwords do not match"
|
msgid "passwords do not match"
|
||||||
msgstr "Las contraseñas no coinciden"
|
msgstr "Las contraseñas no coinciden"
|
||||||
|
|
||||||
|
|
@ -117,6 +117,10 @@ msgstr "Activar la cuenta de un usuario"
|
||||||
msgid "activation link is invalid or account already activated"
|
msgid "activation link is invalid or account already activated"
|
||||||
msgstr "El enlace de activación no es válido o la cuenta ya está activada"
|
msgstr "El enlace de activación no es válido o la cuenta ya está activada"
|
||||||
|
|
||||||
|
#: vibes_auth/docs/drf/viewsets.py:71
|
||||||
|
msgid "merge client-stored recently viewed products"
|
||||||
|
msgstr "Fusionar productos vistos recientemente almacenados por el cliente"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:41
|
#: vibes_auth/graphene/mutations.py:41
|
||||||
msgid "the user's b64-encoded uuid who referred the new user to us."
|
msgid "the user's b64-encoded uuid who referred the new user to us."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -145,8 +149,8 @@ msgstr "Número de teléfono malformado: {phone_number}"
|
||||||
msgid "Invalid attribute format: {attribute_pair}"
|
msgid "Invalid attribute format: {attribute_pair}"
|
||||||
msgstr "Formato de atributo no válido: {attribute_pair}"
|
msgstr "Formato de atributo no válido: {attribute_pair}"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:115
|
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116
|
||||||
#: vibes_auth/viewsets.py:134
|
#: vibes_auth/viewsets.py:135
|
||||||
msgid "activation link is invalid!"
|
msgid "activation link is invalid!"
|
||||||
msgstr "El enlace de activación no es válido."
|
msgstr "El enlace de activación no es válido."
|
||||||
|
|
||||||
|
|
@ -158,14 +162,14 @@ msgstr "La cuenta ya ha sido activada..."
|
||||||
msgid "something went wrong: {e!s}"
|
msgid "something went wrong: {e!s}"
|
||||||
msgstr "Algo salió mal: {e!s}."
|
msgstr "Algo salió mal: {e!s}."
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:83
|
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84
|
||||||
msgid "token is invalid!"
|
msgid "token is invalid!"
|
||||||
msgstr "¡La ficha no es válida!"
|
msgstr "¡La ficha no es válida!"
|
||||||
|
|
||||||
#: vibes_auth/graphene/object_types.py:39
|
#: vibes_auth/graphene/object_types.py:39
|
||||||
msgid ""
|
msgid ""
|
||||||
"the products this user has viewed most recently (max 48), in reverse‐"
|
"the products this user has viewed most recently (max 48), in "
|
||||||
"chronological order"
|
"reverse‐chronological order"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Los productos que este usuario ha visto más recientemente (máx. 48), en "
|
"Los productos que este usuario ha visto más recientemente (máx. 48), en "
|
||||||
"orden cronológico inverso."
|
"orden cronológico inverso."
|
||||||
|
|
@ -279,23 +283,23 @@ msgstr "Ficha en la lista negra"
|
||||||
msgid "blacklisted tokens"
|
msgid "blacklisted tokens"
|
||||||
msgstr "Fichas en la lista negra"
|
msgstr "Fichas en la lista negra"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:106 vibes_auth/serializers.py:128
|
#: vibes_auth/serializers.py:107 vibes_auth/serializers.py:129
|
||||||
msgid "no active account"
|
msgid "no active account"
|
||||||
msgstr "No se ha encontrado ninguna cuenta activa"
|
msgstr "No se ha encontrado ninguna cuenta activa"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:199
|
#: vibes_auth/serializers.py:200
|
||||||
msgid "token_blacklisted"
|
msgid "token_blacklisted"
|
||||||
msgstr "Ficha en la lista negra"
|
msgstr "Ficha en la lista negra"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:204
|
#: vibes_auth/serializers.py:205
|
||||||
msgid "invalid token"
|
msgid "invalid token"
|
||||||
msgstr "Token no válido"
|
msgstr "Token no válido"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:210
|
#: vibes_auth/serializers.py:211
|
||||||
msgid "no user uuid claim present in token"
|
msgid "no user uuid claim present in token"
|
||||||
msgstr "No user uuid claim present in token"
|
msgstr "No user uuid claim present in token"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:212
|
#: vibes_auth/serializers.py:213
|
||||||
msgid "user does not exist"
|
msgid "user does not exist"
|
||||||
msgstr "El usuario no existe"
|
msgstr "El usuario no existe"
|
||||||
|
|
||||||
|
|
@ -418,10 +422,10 @@ msgstr ""
|
||||||
msgid "the token is invalid"
|
msgid "the token is invalid"
|
||||||
msgstr "El token no es válido"
|
msgstr "El token no es válido"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:87
|
#: vibes_auth/viewsets.py:88
|
||||||
msgid "password reset successfully"
|
msgid "password reset successfully"
|
||||||
msgstr "La contraseña se ha restablecido correctamente."
|
msgstr "La contraseña se ha restablecido correctamente."
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:120
|
#: vibes_auth/viewsets.py:121
|
||||||
msgid "account already activated!"
|
msgid "account already activated!"
|
||||||
msgstr "Ya ha activado la cuenta..."
|
msgstr "Ya ha activado la cuenta..."
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 1\n"
|
"Project-Id-Version: 1\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-06-08 19:42+0100\n"
|
"POT-Creation-Date: 2025-06-10 03:32+0100\n"
|
||||||
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -76,29 +76,29 @@ msgstr "Vérifier un jeton (rafraîchissement ou accès)."
|
||||||
msgid "the token is valid"
|
msgid "the token is valid"
|
||||||
msgstr "Le jeton est valide"
|
msgstr "Le jeton est valide"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:15
|
#: vibes_auth/docs/drf/viewsets.py:16
|
||||||
msgid "create a new user"
|
msgid "create a new user"
|
||||||
msgstr "Créer un nouvel utilisateur"
|
msgstr "Créer un nouvel utilisateur"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:19
|
#: vibes_auth/docs/drf/viewsets.py:20
|
||||||
msgid "retrieve a user's details"
|
msgid "retrieve a user's details"
|
||||||
msgstr "Récupérer les données d'un utilisateur"
|
msgstr "Récupérer les données d'un utilisateur"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:23
|
#: vibes_auth/docs/drf/viewsets.py:24
|
||||||
msgid "update a user's details"
|
msgid "update a user's details"
|
||||||
msgstr "Mettre à jour les coordonnées d'un utilisateur"
|
msgstr "Mettre à jour les coordonnées d'un utilisateur"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:28
|
#: vibes_auth/docs/drf/viewsets.py:29
|
||||||
msgid "delete a user"
|
msgid "delete a user"
|
||||||
msgstr "Supprimer un utilisateur"
|
msgstr "Supprimer un utilisateur"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:32
|
#: vibes_auth/docs/drf/viewsets.py:33
|
||||||
msgid "reset a user's password by sending a reset password email"
|
msgid "reset a user's password by sending a reset password email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Réinitialiser le mot de passe d'un utilisateur en envoyant un courriel de "
|
"Réinitialiser le mot de passe d'un utilisateur en envoyant un courriel de "
|
||||||
"réinitialisation du mot de passe"
|
"réinitialisation du mot de passe"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:37
|
#: vibes_auth/docs/drf/viewsets.py:38
|
||||||
msgid "handle avatar upload for a user"
|
msgid "handle avatar upload for a user"
|
||||||
msgstr "Gérer le téléchargement d'un avatar pour un utilisateur"
|
msgstr "Gérer le téléchargement d'un avatar pour un utilisateur"
|
||||||
|
|
||||||
|
|
@ -107,7 +107,7 @@ msgid "confirm a user's password reset"
|
||||||
msgstr "Confirmer la réinitialisation du mot de passe d'un utilisateur"
|
msgstr "Confirmer la réinitialisation du mot de passe d'un utilisateur"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
||||||
#: vibes_auth/viewsets.py:72
|
#: vibes_auth/viewsets.py:73
|
||||||
msgid "passwords do not match"
|
msgid "passwords do not match"
|
||||||
msgstr "Les mots de passe ne correspondent pas"
|
msgstr "Les mots de passe ne correspondent pas"
|
||||||
|
|
||||||
|
|
@ -119,6 +119,10 @@ msgstr "Activer le compte d'un utilisateur"
|
||||||
msgid "activation link is invalid or account already activated"
|
msgid "activation link is invalid or account already activated"
|
||||||
msgstr "Le lien d'activation n'est pas valide ou le compte est déjà activé"
|
msgstr "Le lien d'activation n'est pas valide ou le compte est déjà activé"
|
||||||
|
|
||||||
|
#: vibes_auth/docs/drf/viewsets.py:71
|
||||||
|
msgid "merge client-stored recently viewed products"
|
||||||
|
msgstr "Fusionner les produits récemment consultés stockés par le client"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:41
|
#: vibes_auth/graphene/mutations.py:41
|
||||||
msgid "the user's b64-encoded uuid who referred the new user to us."
|
msgid "the user's b64-encoded uuid who referred the new user to us."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -148,8 +152,8 @@ msgstr "Numéro de téléphone malformé : {phone_number}"
|
||||||
msgid "Invalid attribute format: {attribute_pair}"
|
msgid "Invalid attribute format: {attribute_pair}"
|
||||||
msgstr "Format d'attribut non valide : {attribute_pair}"
|
msgstr "Format d'attribut non valide : {attribute_pair}"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:115
|
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116
|
||||||
#: vibes_auth/viewsets.py:134
|
#: vibes_auth/viewsets.py:135
|
||||||
msgid "activation link is invalid!"
|
msgid "activation link is invalid!"
|
||||||
msgstr "Le lien d'activation n'est pas valide !"
|
msgstr "Le lien d'activation n'est pas valide !"
|
||||||
|
|
||||||
|
|
@ -161,17 +165,17 @@ msgstr "Le compte a déjà été activé..."
|
||||||
msgid "something went wrong: {e!s}"
|
msgid "something went wrong: {e!s}"
|
||||||
msgstr "Quelque chose a mal tourné : {e!s}"
|
msgstr "Quelque chose a mal tourné : {e!s}"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:83
|
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84
|
||||||
msgid "token is invalid!"
|
msgid "token is invalid!"
|
||||||
msgstr "Le jeton n'est pas valide !"
|
msgstr "Le jeton n'est pas valide !"
|
||||||
|
|
||||||
#: vibes_auth/graphene/object_types.py:39
|
#: vibes_auth/graphene/object_types.py:39
|
||||||
msgid ""
|
msgid ""
|
||||||
"the products this user has viewed most recently (max 48), in reverse‐"
|
"the products this user has viewed most recently (max 48), in "
|
||||||
"chronological order"
|
"reverse‐chronological order"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Les produits que cet utilisateur a consultés le plus récemment (max 48), par "
|
"Les produits que cet utilisateur a consultés le plus récemment (max 48), par"
|
||||||
"ordre chronologique inverse."
|
" ordre chronologique inverse."
|
||||||
|
|
||||||
#: vibes_auth/graphene/object_types.py:41 vibes_auth/models.py:108
|
#: vibes_auth/graphene/object_types.py:41 vibes_auth/models.py:108
|
||||||
msgid "groups"
|
msgid "groups"
|
||||||
|
|
@ -285,23 +289,24 @@ msgstr "Jeton sur liste noire"
|
||||||
msgid "blacklisted tokens"
|
msgid "blacklisted tokens"
|
||||||
msgstr "Jetons sur liste noire"
|
msgstr "Jetons sur liste noire"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:106 vibes_auth/serializers.py:128
|
#: vibes_auth/serializers.py:107 vibes_auth/serializers.py:129
|
||||||
msgid "no active account"
|
msgid "no active account"
|
||||||
msgstr "Aucun compte actif trouvé"
|
msgstr "Aucun compte actif trouvé"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:199
|
#: vibes_auth/serializers.py:200
|
||||||
msgid "token_blacklisted"
|
msgid "token_blacklisted"
|
||||||
msgstr "Token sur liste noire"
|
msgstr "Token sur liste noire"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:204
|
#: vibes_auth/serializers.py:205
|
||||||
msgid "invalid token"
|
msgid "invalid token"
|
||||||
msgstr "Jeton non valide"
|
msgstr "Jeton non valide"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:210
|
#: vibes_auth/serializers.py:211
|
||||||
msgid "no user uuid claim present in token"
|
msgid "no user uuid claim present in token"
|
||||||
msgstr "Aucune revendication d'uuid d'utilisateur n'est présente dans le jeton"
|
msgstr ""
|
||||||
|
"Aucune revendication d'uuid d'utilisateur n'est présente dans le jeton"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:212
|
#: vibes_auth/serializers.py:213
|
||||||
msgid "user does not exist"
|
msgid "user does not exist"
|
||||||
msgstr "L'utilisateur n'existe pas"
|
msgstr "L'utilisateur n'existe pas"
|
||||||
|
|
||||||
|
|
@ -347,7 +352,8 @@ msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/templates/user_reset_password_email.html:88
|
#: vibes_auth/templates/user_reset_password_email.html:88
|
||||||
msgid "if you did not send this request, please ignore this email."
|
msgid "if you did not send this request, please ignore this email."
|
||||||
msgstr "Si vous n'avez pas envoyé cette demande, veuillez ignorer ce courriel."
|
msgstr ""
|
||||||
|
"Si vous n'avez pas envoyé cette demande, veuillez ignorer ce courriel."
|
||||||
|
|
||||||
#: vibes_auth/templates/user_reset_password_email.html:89
|
#: vibes_auth/templates/user_reset_password_email.html:89
|
||||||
#, python-format
|
#, python-format
|
||||||
|
|
@ -370,8 +376,8 @@ msgid ""
|
||||||
"thank you for signing up for %(project_name)s. please activate your account "
|
"thank you for signing up for %(project_name)s. please activate your account "
|
||||||
"by clicking the button below:"
|
"by clicking the button below:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Merci de vous être inscrit à %(project_name)s. Veuillez activer votre compte "
|
"Merci de vous être inscrit à %(project_name)s. Veuillez activer votre compte"
|
||||||
"en cliquant sur le bouton ci-dessous :"
|
" en cliquant sur le bouton ci-dessous :"
|
||||||
|
|
||||||
#: vibes_auth/templates/user_verification_email.html:95
|
#: vibes_auth/templates/user_verification_email.html:95
|
||||||
msgid ""
|
msgid ""
|
||||||
|
|
@ -386,8 +392,7 @@ msgid ""
|
||||||
"if the button above does not work, please copy and paste the following URL\n"
|
"if the button above does not work, please copy and paste the following URL\n"
|
||||||
" into your web browser:"
|
" into your web browser:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Si le bouton ci-dessus ne fonctionne pas, veuillez copier et coller l'URL "
|
"Si le bouton ci-dessus ne fonctionne pas, veuillez copier et coller l'URL suivante\n"
|
||||||
"suivante\n"
|
|
||||||
" suivante dans votre navigateur web :"
|
" suivante dans votre navigateur web :"
|
||||||
|
|
||||||
#: vibes_auth/templates/user_verification_email.html:101
|
#: vibes_auth/templates/user_verification_email.html:101
|
||||||
|
|
@ -426,10 +431,10 @@ msgstr ""
|
||||||
msgid "the token is invalid"
|
msgid "the token is invalid"
|
||||||
msgstr "Le jeton n'est pas valide"
|
msgstr "Le jeton n'est pas valide"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:87
|
#: vibes_auth/viewsets.py:88
|
||||||
msgid "password reset successfully"
|
msgid "password reset successfully"
|
||||||
msgstr "Le mot de passe a été réinitialisé avec succès !"
|
msgstr "Le mot de passe a été réinitialisé avec succès !"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:120
|
#: vibes_auth/viewsets.py:121
|
||||||
msgid "account already activated!"
|
msgid "account already activated!"
|
||||||
msgstr "Vous avez déjà activé le compte..."
|
msgstr "Vous avez déjà activé le compte..."
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-06-08 19:42+0100\n"
|
"POT-Creation-Date: 2025-06-10 03:32+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|
@ -77,27 +77,27 @@ msgstr ""
|
||||||
msgid "the token is valid"
|
msgid "the token is valid"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:15
|
#: vibes_auth/docs/drf/viewsets.py:16
|
||||||
msgid "create a new user"
|
msgid "create a new user"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:19
|
#: vibes_auth/docs/drf/viewsets.py:20
|
||||||
msgid "retrieve a user's details"
|
msgid "retrieve a user's details"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:23
|
#: vibes_auth/docs/drf/viewsets.py:24
|
||||||
msgid "update a user's details"
|
msgid "update a user's details"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:28
|
#: vibes_auth/docs/drf/viewsets.py:29
|
||||||
msgid "delete a user"
|
msgid "delete a user"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:32
|
#: vibes_auth/docs/drf/viewsets.py:33
|
||||||
msgid "reset a user's password by sending a reset password email"
|
msgid "reset a user's password by sending a reset password email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:37
|
#: vibes_auth/docs/drf/viewsets.py:38
|
||||||
msgid "handle avatar upload for a user"
|
msgid "handle avatar upload for a user"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -106,7 +106,7 @@ msgid "confirm a user's password reset"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
||||||
#: vibes_auth/viewsets.py:72
|
#: vibes_auth/viewsets.py:73
|
||||||
msgid "passwords do not match"
|
msgid "passwords do not match"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -118,6 +118,10 @@ msgstr ""
|
||||||
msgid "activation link is invalid or account already activated"
|
msgid "activation link is invalid or account already activated"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: vibes_auth/docs/drf/viewsets.py:71
|
||||||
|
msgid "merge client-stored recently viewed products"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:41
|
#: vibes_auth/graphene/mutations.py:41
|
||||||
msgid "the user's b64-encoded uuid who referred the new user to us."
|
msgid "the user's b64-encoded uuid who referred the new user to us."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -145,8 +149,8 @@ msgstr ""
|
||||||
msgid "Invalid attribute format: {attribute_pair}"
|
msgid "Invalid attribute format: {attribute_pair}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:115
|
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116
|
||||||
#: vibes_auth/viewsets.py:134
|
#: vibes_auth/viewsets.py:135
|
||||||
msgid "activation link is invalid!"
|
msgid "activation link is invalid!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -158,7 +162,7 @@ msgstr ""
|
||||||
msgid "something went wrong: {e!s}"
|
msgid "something went wrong: {e!s}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:83
|
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84
|
||||||
msgid "token is invalid!"
|
msgid "token is invalid!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -277,23 +281,23 @@ msgstr ""
|
||||||
msgid "blacklisted tokens"
|
msgid "blacklisted tokens"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:106 vibes_auth/serializers.py:128
|
#: vibes_auth/serializers.py:107 vibes_auth/serializers.py:129
|
||||||
msgid "no active account"
|
msgid "no active account"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:199
|
#: vibes_auth/serializers.py:200
|
||||||
msgid "token_blacklisted"
|
msgid "token_blacklisted"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:204
|
#: vibes_auth/serializers.py:205
|
||||||
msgid "invalid token"
|
msgid "invalid token"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:210
|
#: vibes_auth/serializers.py:211
|
||||||
msgid "no user uuid claim present in token"
|
msgid "no user uuid claim present in token"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:212
|
#: vibes_auth/serializers.py:213
|
||||||
msgid "user does not exist"
|
msgid "user does not exist"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -404,10 +408,10 @@ msgstr ""
|
||||||
msgid "the token is invalid"
|
msgid "the token is invalid"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:87
|
#: vibes_auth/viewsets.py:88
|
||||||
msgid "password reset successfully"
|
msgid "password reset successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:120
|
#: vibes_auth/viewsets.py:121
|
||||||
msgid "account already activated!"
|
msgid "account already activated!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 1\n"
|
"Project-Id-Version: 1\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-06-08 19:42+0100\n"
|
"POT-Creation-Date: 2025-06-10 03:32+0100\n"
|
||||||
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -75,29 +75,29 @@ msgstr "Verifica di un token (aggiornamento o accesso)."
|
||||||
msgid "the token is valid"
|
msgid "the token is valid"
|
||||||
msgstr "Il token è valido"
|
msgstr "Il token è valido"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:15
|
#: vibes_auth/docs/drf/viewsets.py:16
|
||||||
msgid "create a new user"
|
msgid "create a new user"
|
||||||
msgstr "Creare un nuovo utente"
|
msgstr "Creare un nuovo utente"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:19
|
#: vibes_auth/docs/drf/viewsets.py:20
|
||||||
msgid "retrieve a user's details"
|
msgid "retrieve a user's details"
|
||||||
msgstr "Recuperare i dettagli di un utente"
|
msgstr "Recuperare i dettagli di un utente"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:23
|
#: vibes_auth/docs/drf/viewsets.py:24
|
||||||
msgid "update a user's details"
|
msgid "update a user's details"
|
||||||
msgstr "Aggiornare i dettagli di un utente"
|
msgstr "Aggiornare i dettagli di un utente"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:28
|
#: vibes_auth/docs/drf/viewsets.py:29
|
||||||
msgid "delete a user"
|
msgid "delete a user"
|
||||||
msgstr "Eliminare un utente"
|
msgstr "Eliminare un utente"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:32
|
#: vibes_auth/docs/drf/viewsets.py:33
|
||||||
msgid "reset a user's password by sending a reset password email"
|
msgid "reset a user's password by sending a reset password email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Reimpostare la password di un utente inviando un'e-mail di reimpostazione "
|
"Reimpostare la password di un utente inviando un'e-mail di reimpostazione "
|
||||||
"della password"
|
"della password"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:37
|
#: vibes_auth/docs/drf/viewsets.py:38
|
||||||
msgid "handle avatar upload for a user"
|
msgid "handle avatar upload for a user"
|
||||||
msgstr "Gestire il caricamento dell'avatar per un utente"
|
msgstr "Gestire il caricamento dell'avatar per un utente"
|
||||||
|
|
||||||
|
|
@ -106,7 +106,7 @@ msgid "confirm a user's password reset"
|
||||||
msgstr "Confermare la reimpostazione della password di un utente"
|
msgstr "Confermare la reimpostazione della password di un utente"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
||||||
#: vibes_auth/viewsets.py:72
|
#: vibes_auth/viewsets.py:73
|
||||||
msgid "passwords do not match"
|
msgid "passwords do not match"
|
||||||
msgstr "Le password non corrispondono"
|
msgstr "Le password non corrispondono"
|
||||||
|
|
||||||
|
|
@ -118,6 +118,10 @@ msgstr "Attivare l'account di un utente"
|
||||||
msgid "activation link is invalid or account already activated"
|
msgid "activation link is invalid or account already activated"
|
||||||
msgstr "Il link di attivazione non è valido o l'account è già stato attivato."
|
msgstr "Il link di attivazione non è valido o l'account è già stato attivato."
|
||||||
|
|
||||||
|
#: vibes_auth/docs/drf/viewsets.py:71
|
||||||
|
msgid "merge client-stored recently viewed products"
|
||||||
|
msgstr "Unire i prodotti memorizzati dal cliente e visti di recente"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:41
|
#: vibes_auth/graphene/mutations.py:41
|
||||||
msgid "the user's b64-encoded uuid who referred the new user to us."
|
msgid "the user's b64-encoded uuid who referred the new user to us."
|
||||||
msgstr "L'uuid b64-encoded dell'utente che ci ha segnalato il nuovo utente."
|
msgstr "L'uuid b64-encoded dell'utente che ci ha segnalato il nuovo utente."
|
||||||
|
|
@ -145,8 +149,8 @@ msgstr "Numero di telefono malformato: {phone_number}"
|
||||||
msgid "Invalid attribute format: {attribute_pair}"
|
msgid "Invalid attribute format: {attribute_pair}"
|
||||||
msgstr "Formato attributo non valido: {attribute_pair}"
|
msgstr "Formato attributo non valido: {attribute_pair}"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:115
|
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116
|
||||||
#: vibes_auth/viewsets.py:134
|
#: vibes_auth/viewsets.py:135
|
||||||
msgid "activation link is invalid!"
|
msgid "activation link is invalid!"
|
||||||
msgstr "Il link di attivazione non è valido!"
|
msgstr "Il link di attivazione non è valido!"
|
||||||
|
|
||||||
|
|
@ -158,14 +162,14 @@ msgstr "L'account è già stato attivato..."
|
||||||
msgid "something went wrong: {e!s}"
|
msgid "something went wrong: {e!s}"
|
||||||
msgstr "Qualcosa è andato storto: {e!s}"
|
msgstr "Qualcosa è andato storto: {e!s}"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:83
|
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84
|
||||||
msgid "token is invalid!"
|
msgid "token is invalid!"
|
||||||
msgstr "Il gettone non è valido!"
|
msgstr "Il gettone non è valido!"
|
||||||
|
|
||||||
#: vibes_auth/graphene/object_types.py:39
|
#: vibes_auth/graphene/object_types.py:39
|
||||||
msgid ""
|
msgid ""
|
||||||
"the products this user has viewed most recently (max 48), in reverse‐"
|
"the products this user has viewed most recently (max 48), in "
|
||||||
"chronological order"
|
"reverse‐chronological order"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"I prodotti che questo utente ha visualizzato più di recente (max 48), in "
|
"I prodotti che questo utente ha visualizzato più di recente (max 48), in "
|
||||||
"ordine cronologico inverso."
|
"ordine cronologico inverso."
|
||||||
|
|
@ -281,23 +285,23 @@ msgstr "Token in lista nera"
|
||||||
msgid "blacklisted tokens"
|
msgid "blacklisted tokens"
|
||||||
msgstr "Gettoni nella lista nera"
|
msgstr "Gettoni nella lista nera"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:106 vibes_auth/serializers.py:128
|
#: vibes_auth/serializers.py:107 vibes_auth/serializers.py:129
|
||||||
msgid "no active account"
|
msgid "no active account"
|
||||||
msgstr "Nessun conto attivo trovato"
|
msgstr "Nessun conto attivo trovato"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:199
|
#: vibes_auth/serializers.py:200
|
||||||
msgid "token_blacklisted"
|
msgid "token_blacklisted"
|
||||||
msgstr "Token nella lista nera"
|
msgstr "Token nella lista nera"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:204
|
#: vibes_auth/serializers.py:205
|
||||||
msgid "invalid token"
|
msgid "invalid token"
|
||||||
msgstr "Token non valido"
|
msgstr "Token non valido"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:210
|
#: vibes_auth/serializers.py:211
|
||||||
msgid "no user uuid claim present in token"
|
msgid "no user uuid claim present in token"
|
||||||
msgstr "Nessuna richiesta di uuid utente presente nel token"
|
msgstr "Nessuna richiesta di uuid utente presente nel token"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:212
|
#: vibes_auth/serializers.py:213
|
||||||
msgid "user does not exist"
|
msgid "user does not exist"
|
||||||
msgstr "L'utente non esiste"
|
msgstr "L'utente non esiste"
|
||||||
|
|
||||||
|
|
@ -420,10 +424,10 @@ msgstr ""
|
||||||
msgid "the token is invalid"
|
msgid "the token is invalid"
|
||||||
msgstr "Il token non è valido"
|
msgstr "Il token non è valido"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:87
|
#: vibes_auth/viewsets.py:88
|
||||||
msgid "password reset successfully"
|
msgid "password reset successfully"
|
||||||
msgstr "La password è stata reimpostata con successo!"
|
msgstr "La password è stata reimpostata con successo!"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:120
|
#: vibes_auth/viewsets.py:121
|
||||||
msgid "account already activated!"
|
msgid "account already activated!"
|
||||||
msgstr "Avete già attivato l'account..."
|
msgstr "Avete già attivato l'account..."
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 1\n"
|
"Project-Id-Version: 1\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-06-08 19:42+0100\n"
|
"POT-Creation-Date: 2025-06-10 03:32+0100\n"
|
||||||
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -74,27 +74,27 @@ msgstr "トークンを確認する(リフレッシュまたはアクセス)
|
||||||
msgid "the token is valid"
|
msgid "the token is valid"
|
||||||
msgstr "トークンは有効です"
|
msgstr "トークンは有効です"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:15
|
#: vibes_auth/docs/drf/viewsets.py:16
|
||||||
msgid "create a new user"
|
msgid "create a new user"
|
||||||
msgstr "新規ユーザーの作成"
|
msgstr "新規ユーザーの作成"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:19
|
#: vibes_auth/docs/drf/viewsets.py:20
|
||||||
msgid "retrieve a user's details"
|
msgid "retrieve a user's details"
|
||||||
msgstr "ユーザーの詳細を取得する"
|
msgstr "ユーザーの詳細を取得する"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:23
|
#: vibes_auth/docs/drf/viewsets.py:24
|
||||||
msgid "update a user's details"
|
msgid "update a user's details"
|
||||||
msgstr "ユーザー情報の更新"
|
msgstr "ユーザー情報の更新"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:28
|
#: vibes_auth/docs/drf/viewsets.py:29
|
||||||
msgid "delete a user"
|
msgid "delete a user"
|
||||||
msgstr "ユーザーを削除する"
|
msgstr "ユーザーを削除する"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:32
|
#: vibes_auth/docs/drf/viewsets.py:33
|
||||||
msgid "reset a user's password by sending a reset password email"
|
msgid "reset a user's password by sending a reset password email"
|
||||||
msgstr "パスワード再設定メールを送信して、ユーザーのパスワードを再設定する。"
|
msgstr "パスワード再設定メールを送信して、ユーザーのパスワードを再設定する。"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:37
|
#: vibes_auth/docs/drf/viewsets.py:38
|
||||||
msgid "handle avatar upload for a user"
|
msgid "handle avatar upload for a user"
|
||||||
msgstr "ユーザーのアバターアップロードを処理する"
|
msgstr "ユーザーのアバターアップロードを処理する"
|
||||||
|
|
||||||
|
|
@ -103,7 +103,7 @@ msgid "confirm a user's password reset"
|
||||||
msgstr "ユーザーのパスワード・リセットを確認する"
|
msgstr "ユーザーのパスワード・リセットを確認する"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
||||||
#: vibes_auth/viewsets.py:72
|
#: vibes_auth/viewsets.py:73
|
||||||
msgid "passwords do not match"
|
msgid "passwords do not match"
|
||||||
msgstr "パスワードが一致しない"
|
msgstr "パスワードが一致しない"
|
||||||
|
|
||||||
|
|
@ -113,9 +113,11 @@ msgstr "ユーザーアカウントの有効化"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:66
|
#: vibes_auth/docs/drf/viewsets.py:66
|
||||||
msgid "activation link is invalid or account already activated"
|
msgid "activation link is invalid or account already activated"
|
||||||
msgstr ""
|
msgstr "アクティベーションリンクが無効であるか、アカウントがすでにアクティベーションされています。"
|
||||||
"アクティベーションリンクが無効であるか、アカウントがすでにアクティベーション"
|
|
||||||
"されています。"
|
#: vibes_auth/docs/drf/viewsets.py:71
|
||||||
|
msgid "merge client-stored recently viewed products"
|
||||||
|
msgstr "クライアントが最近閲覧した商品をマージする"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:41
|
#: vibes_auth/graphene/mutations.py:41
|
||||||
msgid "the user's b64-encoded uuid who referred the new user to us."
|
msgid "the user's b64-encoded uuid who referred the new user to us."
|
||||||
|
|
@ -144,8 +146,8 @@ msgstr "不正な電話番号:{phone_number}。"
|
||||||
msgid "Invalid attribute format: {attribute_pair}"
|
msgid "Invalid attribute format: {attribute_pair}"
|
||||||
msgstr "無効な属性形式です:{attribute_pair}。"
|
msgstr "無効な属性形式です:{attribute_pair}。"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:115
|
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116
|
||||||
#: vibes_auth/viewsets.py:134
|
#: vibes_auth/viewsets.py:135
|
||||||
msgid "activation link is invalid!"
|
msgid "activation link is invalid!"
|
||||||
msgstr "アクティベーションリンクが無効です!"
|
msgstr "アクティベーションリンクが無効です!"
|
||||||
|
|
||||||
|
|
@ -157,14 +159,14 @@ msgstr "アカウントはすでに有効になっています..."
|
||||||
msgid "something went wrong: {e!s}"
|
msgid "something went wrong: {e!s}"
|
||||||
msgstr "何かが間違っていた:{e!s}"
|
msgstr "何かが間違っていた:{e!s}"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:83
|
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84
|
||||||
msgid "token is invalid!"
|
msgid "token is invalid!"
|
||||||
msgstr "トークンが無効です!"
|
msgstr "トークンが無効です!"
|
||||||
|
|
||||||
#: vibes_auth/graphene/object_types.py:39
|
#: vibes_auth/graphene/object_types.py:39
|
||||||
msgid ""
|
msgid ""
|
||||||
"the products this user has viewed most recently (max 48), in reverse‐"
|
"the products this user has viewed most recently (max 48), in "
|
||||||
"chronological order"
|
"reverse‐chronological order"
|
||||||
msgstr "このユーザーが最近閲覧した商品(最大48件)を逆順に表示します。"
|
msgstr "このユーザーが最近閲覧した商品(最大48件)を逆順に表示します。"
|
||||||
|
|
||||||
#: vibes_auth/graphene/object_types.py:41 vibes_auth/models.py:108
|
#: vibes_auth/graphene/object_types.py:41 vibes_auth/models.py:108
|
||||||
|
|
@ -276,23 +278,23 @@ msgstr "ブラックリストトークン"
|
||||||
msgid "blacklisted tokens"
|
msgid "blacklisted tokens"
|
||||||
msgstr "ブラックリストに載ったトークン"
|
msgstr "ブラックリストに載ったトークン"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:106 vibes_auth/serializers.py:128
|
#: vibes_auth/serializers.py:107 vibes_auth/serializers.py:129
|
||||||
msgid "no active account"
|
msgid "no active account"
|
||||||
msgstr "アクティブなアカウントが見つかりません"
|
msgstr "アクティブなアカウントが見つかりません"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:199
|
#: vibes_auth/serializers.py:200
|
||||||
msgid "token_blacklisted"
|
msgid "token_blacklisted"
|
||||||
msgstr "トークンのブラックリスト入り"
|
msgstr "トークンのブラックリスト入り"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:204
|
#: vibes_auth/serializers.py:205
|
||||||
msgid "invalid token"
|
msgid "invalid token"
|
||||||
msgstr "無効なトークン"
|
msgstr "無効なトークン"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:210
|
#: vibes_auth/serializers.py:211
|
||||||
msgid "no user uuid claim present in token"
|
msgid "no user uuid claim present in token"
|
||||||
msgstr "トークンにユーザー uuid クレームが存在しない"
|
msgstr "トークンにユーザー uuid クレームが存在しない"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:212
|
#: vibes_auth/serializers.py:213
|
||||||
msgid "user does not exist"
|
msgid "user does not exist"
|
||||||
msgstr "ユーザーが存在しない"
|
msgstr "ユーザーが存在しない"
|
||||||
|
|
||||||
|
|
@ -319,9 +321,7 @@ msgstr "こんにちは、%(user_first_name)sです、"
|
||||||
msgid ""
|
msgid ""
|
||||||
"we have received a request to reset your password. please reset your "
|
"we have received a request to reset your password. please reset your "
|
||||||
"password by clicking the button below:"
|
"password by clicking the button below:"
|
||||||
msgstr ""
|
msgstr "パスワードの再設定依頼が届いております。以下のボタンをクリックして、パスワードをリセットしてください:"
|
||||||
"パスワードの再設定依頼が届いております。以下のボタンをクリックして、パスワー"
|
|
||||||
"ドをリセットしてください:"
|
|
||||||
|
|
||||||
#: vibes_auth/templates/user_reset_password_email.html:84
|
#: vibes_auth/templates/user_reset_password_email.html:84
|
||||||
msgid "reset password"
|
msgid "reset password"
|
||||||
|
|
@ -331,9 +331,7 @@ msgstr "パスワードのリセット"
|
||||||
msgid ""
|
msgid ""
|
||||||
"if the button above does not work, please copy and paste the following URL "
|
"if the button above does not work, please copy and paste the following URL "
|
||||||
"into your web browser:"
|
"into your web browser:"
|
||||||
msgstr ""
|
msgstr "上記のボタンが機能しない場合は、以下のURLをコピーしてウェブブラウザに貼り付けてください:"
|
||||||
"上記のボタンが機能しない場合は、以下のURLをコピーしてウェブブラウザに貼り付け"
|
|
||||||
"てください:"
|
|
||||||
|
|
||||||
#: vibes_auth/templates/user_reset_password_email.html:88
|
#: vibes_auth/templates/user_reset_password_email.html:88
|
||||||
msgid "if you did not send this request, please ignore this email."
|
msgid "if you did not send this request, please ignore this email."
|
||||||
|
|
@ -359,9 +357,7 @@ msgstr "アカウントの有効化"
|
||||||
msgid ""
|
msgid ""
|
||||||
"thank you for signing up for %(project_name)s. please activate your account "
|
"thank you for signing up for %(project_name)s. please activate your account "
|
||||||
"by clicking the button below:"
|
"by clicking the button below:"
|
||||||
msgstr ""
|
msgstr "%(project_name)sにご登録いただきありがとうございます。下のボタンをクリックしてアカウントを有効にしてください:"
|
||||||
"%(project_name)sにご登録いただきありがとうございます。下のボタンをクリックし"
|
|
||||||
"てアカウントを有効にしてください:"
|
|
||||||
|
|
||||||
#: vibes_auth/templates/user_verification_email.html:95
|
#: vibes_auth/templates/user_verification_email.html:95
|
||||||
msgid ""
|
msgid ""
|
||||||
|
|
@ -376,8 +372,7 @@ msgid ""
|
||||||
"if the button above does not work, please copy and paste the following URL\n"
|
"if the button above does not work, please copy and paste the following URL\n"
|
||||||
" into your web browser:"
|
" into your web browser:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"上記のボタンが機能しない場合は、次のURLをコピーしてウェブブラウザに貼り付けて"
|
"上記のボタンが機能しない場合は、次のURLをコピーしてウェブブラウザに貼り付けてください。\n"
|
||||||
"ください。\n"
|
|
||||||
" をウェブブラウザに貼り付けてください:"
|
" をウェブブラウザに貼り付けてください:"
|
||||||
|
|
||||||
#: vibes_auth/templates/user_verification_email.html:101
|
#: vibes_auth/templates/user_verification_email.html:101
|
||||||
|
|
@ -408,18 +403,16 @@ msgstr "{config.PROJECT_NAME}。| パスワードのリセット"
|
||||||
msgid ""
|
msgid ""
|
||||||
"invalid phone number format. the number must be entered in the format: "
|
"invalid phone number format. the number must be entered in the format: "
|
||||||
"\"+999999999\". up to 15 digits allowed."
|
"\"+999999999\". up to 15 digits allowed."
|
||||||
msgstr ""
|
msgstr "電話番号の形式が無効です。電話番号は次の形式で入力してください:\"+999999999\".15桁まで入力可能です。"
|
||||||
"電話番号の形式が無効です。電話番号は次の形式で入力してください:"
|
|
||||||
"\"+999999999\".15桁まで入力可能です。"
|
|
||||||
|
|
||||||
#: vibes_auth/views.py:57
|
#: vibes_auth/views.py:57
|
||||||
msgid "the token is invalid"
|
msgid "the token is invalid"
|
||||||
msgstr "トークンが無効"
|
msgstr "トークンが無効"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:87
|
#: vibes_auth/viewsets.py:88
|
||||||
msgid "password reset successfully"
|
msgid "password reset successfully"
|
||||||
msgstr "パスワードのリセットに成功しました!"
|
msgstr "パスワードのリセットに成功しました!"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:120
|
#: vibes_auth/viewsets.py:121
|
||||||
msgid "account already activated!"
|
msgid "account already activated!"
|
||||||
msgstr "あなたはすでにアカウントを有効にしています..."
|
msgstr "あなたはすでにアカウントを有効にしています..."
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-06-08 19:42+0100\n"
|
"POT-Creation-Date: 2025-06-10 03:32+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|
@ -77,27 +77,27 @@ msgstr ""
|
||||||
msgid "the token is valid"
|
msgid "the token is valid"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:15
|
#: vibes_auth/docs/drf/viewsets.py:16
|
||||||
msgid "create a new user"
|
msgid "create a new user"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:19
|
#: vibes_auth/docs/drf/viewsets.py:20
|
||||||
msgid "retrieve a user's details"
|
msgid "retrieve a user's details"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:23
|
#: vibes_auth/docs/drf/viewsets.py:24
|
||||||
msgid "update a user's details"
|
msgid "update a user's details"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:28
|
#: vibes_auth/docs/drf/viewsets.py:29
|
||||||
msgid "delete a user"
|
msgid "delete a user"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:32
|
#: vibes_auth/docs/drf/viewsets.py:33
|
||||||
msgid "reset a user's password by sending a reset password email"
|
msgid "reset a user's password by sending a reset password email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:37
|
#: vibes_auth/docs/drf/viewsets.py:38
|
||||||
msgid "handle avatar upload for a user"
|
msgid "handle avatar upload for a user"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -106,7 +106,7 @@ msgid "confirm a user's password reset"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
||||||
#: vibes_auth/viewsets.py:72
|
#: vibes_auth/viewsets.py:73
|
||||||
msgid "passwords do not match"
|
msgid "passwords do not match"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -118,6 +118,10 @@ msgstr ""
|
||||||
msgid "activation link is invalid or account already activated"
|
msgid "activation link is invalid or account already activated"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: vibes_auth/docs/drf/viewsets.py:71
|
||||||
|
msgid "merge client-stored recently viewed products"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:41
|
#: vibes_auth/graphene/mutations.py:41
|
||||||
msgid "the user's b64-encoded uuid who referred the new user to us."
|
msgid "the user's b64-encoded uuid who referred the new user to us."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -145,8 +149,8 @@ msgstr ""
|
||||||
msgid "Invalid attribute format: {attribute_pair}"
|
msgid "Invalid attribute format: {attribute_pair}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:115
|
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116
|
||||||
#: vibes_auth/viewsets.py:134
|
#: vibes_auth/viewsets.py:135
|
||||||
msgid "activation link is invalid!"
|
msgid "activation link is invalid!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -158,7 +162,7 @@ msgstr ""
|
||||||
msgid "something went wrong: {e!s}"
|
msgid "something went wrong: {e!s}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:83
|
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84
|
||||||
msgid "token is invalid!"
|
msgid "token is invalid!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -277,23 +281,23 @@ msgstr ""
|
||||||
msgid "blacklisted tokens"
|
msgid "blacklisted tokens"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:106 vibes_auth/serializers.py:128
|
#: vibes_auth/serializers.py:107 vibes_auth/serializers.py:129
|
||||||
msgid "no active account"
|
msgid "no active account"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:199
|
#: vibes_auth/serializers.py:200
|
||||||
msgid "token_blacklisted"
|
msgid "token_blacklisted"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:204
|
#: vibes_auth/serializers.py:205
|
||||||
msgid "invalid token"
|
msgid "invalid token"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:210
|
#: vibes_auth/serializers.py:211
|
||||||
msgid "no user uuid claim present in token"
|
msgid "no user uuid claim present in token"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:212
|
#: vibes_auth/serializers.py:213
|
||||||
msgid "user does not exist"
|
msgid "user does not exist"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -404,10 +408,10 @@ msgstr ""
|
||||||
msgid "the token is invalid"
|
msgid "the token is invalid"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:87
|
#: vibes_auth/viewsets.py:88
|
||||||
msgid "password reset successfully"
|
msgid "password reset successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:120
|
#: vibes_auth/viewsets.py:121
|
||||||
msgid "account already activated!"
|
msgid "account already activated!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 1\n"
|
"Project-Id-Version: 1\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-06-08 19:42+0100\n"
|
"POT-Creation-Date: 2025-06-10 03:32+0100\n"
|
||||||
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -74,29 +74,29 @@ msgstr "Een token verifiëren (verversen of toegang)."
|
||||||
msgid "the token is valid"
|
msgid "the token is valid"
|
||||||
msgstr "The token is valid"
|
msgstr "The token is valid"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:15
|
#: vibes_auth/docs/drf/viewsets.py:16
|
||||||
msgid "create a new user"
|
msgid "create a new user"
|
||||||
msgstr "Een nieuwe gebruiker maken"
|
msgstr "Een nieuwe gebruiker maken"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:19
|
#: vibes_auth/docs/drf/viewsets.py:20
|
||||||
msgid "retrieve a user's details"
|
msgid "retrieve a user's details"
|
||||||
msgstr "De gegevens van een gebruiker ophalen"
|
msgstr "De gegevens van een gebruiker ophalen"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:23
|
#: vibes_auth/docs/drf/viewsets.py:24
|
||||||
msgid "update a user's details"
|
msgid "update a user's details"
|
||||||
msgstr "De gegevens van een gebruiker bijwerken"
|
msgstr "De gegevens van een gebruiker bijwerken"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:28
|
#: vibes_auth/docs/drf/viewsets.py:29
|
||||||
msgid "delete a user"
|
msgid "delete a user"
|
||||||
msgstr "Een gebruiker verwijderen"
|
msgstr "Een gebruiker verwijderen"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:32
|
#: vibes_auth/docs/drf/viewsets.py:33
|
||||||
msgid "reset a user's password by sending a reset password email"
|
msgid "reset a user's password by sending a reset password email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Het wachtwoord van een gebruiker opnieuw instellen door een e-mail met het "
|
"Het wachtwoord van een gebruiker opnieuw instellen door een e-mail met het "
|
||||||
"wachtwoord opnieuw in te stellen"
|
"wachtwoord opnieuw in te stellen"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:37
|
#: vibes_auth/docs/drf/viewsets.py:38
|
||||||
msgid "handle avatar upload for a user"
|
msgid "handle avatar upload for a user"
|
||||||
msgstr "Avatar uploaden voor een gebruiker afhandelen"
|
msgstr "Avatar uploaden voor een gebruiker afhandelen"
|
||||||
|
|
||||||
|
|
@ -105,7 +105,7 @@ msgid "confirm a user's password reset"
|
||||||
msgstr "Bevestig het resetten van het wachtwoord van een gebruiker"
|
msgstr "Bevestig het resetten van het wachtwoord van een gebruiker"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
||||||
#: vibes_auth/viewsets.py:72
|
#: vibes_auth/viewsets.py:73
|
||||||
msgid "passwords do not match"
|
msgid "passwords do not match"
|
||||||
msgstr "Wachtwoorden komen niet overeen"
|
msgstr "Wachtwoorden komen niet overeen"
|
||||||
|
|
||||||
|
|
@ -117,6 +117,10 @@ msgstr "Een gebruikersaccount activeren"
|
||||||
msgid "activation link is invalid or account already activated"
|
msgid "activation link is invalid or account already activated"
|
||||||
msgstr "Activeringslink is ongeldig of account is al geactiveerd"
|
msgstr "Activeringslink is ongeldig of account is al geactiveerd"
|
||||||
|
|
||||||
|
#: vibes_auth/docs/drf/viewsets.py:71
|
||||||
|
msgid "merge client-stored recently viewed products"
|
||||||
|
msgstr "Laatst bekeken producten samenvoegen"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:41
|
#: vibes_auth/graphene/mutations.py:41
|
||||||
msgid "the user's b64-encoded uuid who referred the new user to us."
|
msgid "the user's b64-encoded uuid who referred the new user to us."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -146,8 +150,8 @@ msgstr "Misvormd telefoonnummer: {phone_number}"
|
||||||
msgid "Invalid attribute format: {attribute_pair}"
|
msgid "Invalid attribute format: {attribute_pair}"
|
||||||
msgstr "Ongeldig attribuutformaat: {attribute_pair}"
|
msgstr "Ongeldig attribuutformaat: {attribute_pair}"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:115
|
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116
|
||||||
#: vibes_auth/viewsets.py:134
|
#: vibes_auth/viewsets.py:135
|
||||||
msgid "activation link is invalid!"
|
msgid "activation link is invalid!"
|
||||||
msgstr "Activeringslink is ongeldig!"
|
msgstr "Activeringslink is ongeldig!"
|
||||||
|
|
||||||
|
|
@ -159,14 +163,14 @@ msgstr "Account is al geactiveerd..."
|
||||||
msgid "something went wrong: {e!s}"
|
msgid "something went wrong: {e!s}"
|
||||||
msgstr "Er ging iets mis: {e!s}"
|
msgstr "Er ging iets mis: {e!s}"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:83
|
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84
|
||||||
msgid "token is invalid!"
|
msgid "token is invalid!"
|
||||||
msgstr "Token is invalid!"
|
msgstr "Token is invalid!"
|
||||||
|
|
||||||
#: vibes_auth/graphene/object_types.py:39
|
#: vibes_auth/graphene/object_types.py:39
|
||||||
msgid ""
|
msgid ""
|
||||||
"the products this user has viewed most recently (max 48), in reverse‐"
|
"the products this user has viewed most recently (max 48), in "
|
||||||
"chronological order"
|
"reverse‐chronological order"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"De producten die deze gebruiker het laatst heeft bekeken (max 48), in "
|
"De producten die deze gebruiker het laatst heeft bekeken (max 48), in "
|
||||||
"omgekeerd-chronologische volgorde."
|
"omgekeerd-chronologische volgorde."
|
||||||
|
|
@ -280,23 +284,23 @@ msgstr "Token op zwarte lijst"
|
||||||
msgid "blacklisted tokens"
|
msgid "blacklisted tokens"
|
||||||
msgstr "Tokens op de zwarte lijst"
|
msgstr "Tokens op de zwarte lijst"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:106 vibes_auth/serializers.py:128
|
#: vibes_auth/serializers.py:107 vibes_auth/serializers.py:129
|
||||||
msgid "no active account"
|
msgid "no active account"
|
||||||
msgstr "Geen actieve account gevonden"
|
msgstr "Geen actieve account gevonden"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:199
|
#: vibes_auth/serializers.py:200
|
||||||
msgid "token_blacklisted"
|
msgid "token_blacklisted"
|
||||||
msgstr "Token op zwarte lijst"
|
msgstr "Token op zwarte lijst"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:204
|
#: vibes_auth/serializers.py:205
|
||||||
msgid "invalid token"
|
msgid "invalid token"
|
||||||
msgstr "Invalid token"
|
msgstr "Invalid token"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:210
|
#: vibes_auth/serializers.py:211
|
||||||
msgid "no user uuid claim present in token"
|
msgid "no user uuid claim present in token"
|
||||||
msgstr "Geen gebruiker uuid claim aanwezig in token"
|
msgstr "Geen gebruiker uuid claim aanwezig in token"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:212
|
#: vibes_auth/serializers.py:213
|
||||||
msgid "user does not exist"
|
msgid "user does not exist"
|
||||||
msgstr "Gebruiker bestaat niet"
|
msgstr "Gebruiker bestaat niet"
|
||||||
|
|
||||||
|
|
@ -324,8 +328,8 @@ msgid ""
|
||||||
"we have received a request to reset your password. please reset your "
|
"we have received a request to reset your password. please reset your "
|
||||||
"password by clicking the button below:"
|
"password by clicking the button below:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"We hebben een verzoek ontvangen om je wachtwoord opnieuw in te stellen. Klik "
|
"We hebben een verzoek ontvangen om je wachtwoord opnieuw in te stellen. Klik"
|
||||||
"op de knop hieronder om je wachtwoord opnieuw in te stellen:"
|
" op de knop hieronder om je wachtwoord opnieuw in te stellen:"
|
||||||
|
|
||||||
#: vibes_auth/templates/user_reset_password_email.html:84
|
#: vibes_auth/templates/user_reset_password_email.html:84
|
||||||
msgid "reset password"
|
msgid "reset password"
|
||||||
|
|
@ -364,8 +368,8 @@ msgid ""
|
||||||
"thank you for signing up for %(project_name)s. please activate your account "
|
"thank you for signing up for %(project_name)s. please activate your account "
|
||||||
"by clicking the button below:"
|
"by clicking the button below:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Bedankt voor het aanmelden bij %(project_name)s. Activeer je account door op "
|
"Bedankt voor het aanmelden bij %(project_name)s. Activeer je account door op"
|
||||||
"de onderstaande knop te klikken:"
|
" de onderstaande knop te klikken:"
|
||||||
|
|
||||||
#: vibes_auth/templates/user_verification_email.html:95
|
#: vibes_auth/templates/user_verification_email.html:95
|
||||||
msgid ""
|
msgid ""
|
||||||
|
|
@ -419,10 +423,10 @@ msgstr ""
|
||||||
msgid "the token is invalid"
|
msgid "the token is invalid"
|
||||||
msgstr "Het token is ongeldig"
|
msgstr "Het token is ongeldig"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:87
|
#: vibes_auth/viewsets.py:88
|
||||||
msgid "password reset successfully"
|
msgid "password reset successfully"
|
||||||
msgstr "Wachtwoord is succesvol gereset!"
|
msgstr "Wachtwoord is succesvol gereset!"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:120
|
#: vibes_auth/viewsets.py:121
|
||||||
msgid "account already activated!"
|
msgid "account already activated!"
|
||||||
msgstr "Je hebt de account al geactiveerd..."
|
msgstr "Je hebt de account al geactiveerd..."
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 1\n"
|
"Project-Id-Version: 1\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-06-08 19:42+0100\n"
|
"POT-Creation-Date: 2025-06-10 03:32+0100\n"
|
||||||
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -52,7 +52,8 @@ msgstr "Uzyskanie pary tokenów"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/views.py:16
|
#: vibes_auth/docs/drf/views.py:16
|
||||||
msgid "obtain a token pair (refresh and access) for authentication."
|
msgid "obtain a token pair (refresh and access) for authentication."
|
||||||
msgstr "Uzyskanie pary tokenów (odświeżenie i dostęp) w celu uwierzytelnienia."
|
msgstr ""
|
||||||
|
"Uzyskanie pary tokenów (odświeżenie i dostęp) w celu uwierzytelnienia."
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/views.py:35
|
#: vibes_auth/docs/drf/views.py:35
|
||||||
msgid "refresh a token pair"
|
msgid "refresh a token pair"
|
||||||
|
|
@ -74,29 +75,29 @@ msgstr "Weryfikacja tokena (odświeżenie lub dostęp)."
|
||||||
msgid "the token is valid"
|
msgid "the token is valid"
|
||||||
msgstr "Token jest ważny"
|
msgstr "Token jest ważny"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:15
|
#: vibes_auth/docs/drf/viewsets.py:16
|
||||||
msgid "create a new user"
|
msgid "create a new user"
|
||||||
msgstr "Tworzenie nowego użytkownika"
|
msgstr "Tworzenie nowego użytkownika"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:19
|
#: vibes_auth/docs/drf/viewsets.py:20
|
||||||
msgid "retrieve a user's details"
|
msgid "retrieve a user's details"
|
||||||
msgstr "Pobieranie danych użytkownika"
|
msgstr "Pobieranie danych użytkownika"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:23
|
#: vibes_auth/docs/drf/viewsets.py:24
|
||||||
msgid "update a user's details"
|
msgid "update a user's details"
|
||||||
msgstr "Aktualizacja danych użytkownika"
|
msgstr "Aktualizacja danych użytkownika"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:28
|
#: vibes_auth/docs/drf/viewsets.py:29
|
||||||
msgid "delete a user"
|
msgid "delete a user"
|
||||||
msgstr "Usuwanie użytkownika"
|
msgstr "Usuwanie użytkownika"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:32
|
#: vibes_auth/docs/drf/viewsets.py:33
|
||||||
msgid "reset a user's password by sending a reset password email"
|
msgid "reset a user's password by sending a reset password email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Zresetowanie hasła użytkownika poprzez wysłanie wiadomości e-mail "
|
"Zresetowanie hasła użytkownika poprzez wysłanie wiadomości e-mail "
|
||||||
"resetującej hasło."
|
"resetującej hasło."
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:37
|
#: vibes_auth/docs/drf/viewsets.py:38
|
||||||
msgid "handle avatar upload for a user"
|
msgid "handle avatar upload for a user"
|
||||||
msgstr "Obsługa przesyłania awatara dla użytkownika"
|
msgstr "Obsługa przesyłania awatara dla użytkownika"
|
||||||
|
|
||||||
|
|
@ -105,7 +106,7 @@ msgid "confirm a user's password reset"
|
||||||
msgstr "Potwierdzenie zresetowania hasła użytkownika"
|
msgstr "Potwierdzenie zresetowania hasła użytkownika"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
||||||
#: vibes_auth/viewsets.py:72
|
#: vibes_auth/viewsets.py:73
|
||||||
msgid "passwords do not match"
|
msgid "passwords do not match"
|
||||||
msgstr "Hasła nie są zgodne"
|
msgstr "Hasła nie są zgodne"
|
||||||
|
|
||||||
|
|
@ -117,6 +118,10 @@ msgstr "Aktywacja konta użytkownika"
|
||||||
msgid "activation link is invalid or account already activated"
|
msgid "activation link is invalid or account already activated"
|
||||||
msgstr "Link aktywacyjny jest nieprawidłowy lub konto zostało już aktywowane."
|
msgstr "Link aktywacyjny jest nieprawidłowy lub konto zostało już aktywowane."
|
||||||
|
|
||||||
|
#: vibes_auth/docs/drf/viewsets.py:71
|
||||||
|
msgid "merge client-stored recently viewed products"
|
||||||
|
msgstr "Scalanie ostatnio oglądanych produktów przechowywanych przez klienta"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:41
|
#: vibes_auth/graphene/mutations.py:41
|
||||||
msgid "the user's b64-encoded uuid who referred the new user to us."
|
msgid "the user's b64-encoded uuid who referred the new user to us."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -146,8 +151,8 @@ msgstr "Zniekształcony numer telefonu: {phone_number}"
|
||||||
msgid "Invalid attribute format: {attribute_pair}"
|
msgid "Invalid attribute format: {attribute_pair}"
|
||||||
msgstr "Nieprawidłowy format atrybutu: {attribute_pair}"
|
msgstr "Nieprawidłowy format atrybutu: {attribute_pair}"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:115
|
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116
|
||||||
#: vibes_auth/viewsets.py:134
|
#: vibes_auth/viewsets.py:135
|
||||||
msgid "activation link is invalid!"
|
msgid "activation link is invalid!"
|
||||||
msgstr "Link aktywacyjny jest nieprawidłowy!"
|
msgstr "Link aktywacyjny jest nieprawidłowy!"
|
||||||
|
|
||||||
|
|
@ -159,14 +164,14 @@ msgstr "Konto zostało już aktywowane..."
|
||||||
msgid "something went wrong: {e!s}"
|
msgid "something went wrong: {e!s}"
|
||||||
msgstr "Coś poszło nie tak: {e!s}"
|
msgstr "Coś poszło nie tak: {e!s}"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:83
|
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84
|
||||||
msgid "token is invalid!"
|
msgid "token is invalid!"
|
||||||
msgstr "Token jest nieprawidłowy!"
|
msgstr "Token jest nieprawidłowy!"
|
||||||
|
|
||||||
#: vibes_auth/graphene/object_types.py:39
|
#: vibes_auth/graphene/object_types.py:39
|
||||||
msgid ""
|
msgid ""
|
||||||
"the products this user has viewed most recently (max 48), in reverse‐"
|
"the products this user has viewed most recently (max 48), in "
|
||||||
"chronological order"
|
"reverse‐chronological order"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Produkty ostatnio przeglądane przez tego użytkownika (maks. 48), w "
|
"Produkty ostatnio przeglądane przez tego użytkownika (maks. 48), w "
|
||||||
"kolejności odwrotnej do chronologicznej."
|
"kolejności odwrotnej do chronologicznej."
|
||||||
|
|
@ -280,23 +285,23 @@ msgstr "Token na czarnej liście"
|
||||||
msgid "blacklisted tokens"
|
msgid "blacklisted tokens"
|
||||||
msgstr "Tokeny znajdujące się na czarnej liście"
|
msgstr "Tokeny znajdujące się na czarnej liście"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:106 vibes_auth/serializers.py:128
|
#: vibes_auth/serializers.py:107 vibes_auth/serializers.py:129
|
||||||
msgid "no active account"
|
msgid "no active account"
|
||||||
msgstr "Nie znaleziono aktywnego konta"
|
msgstr "Nie znaleziono aktywnego konta"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:199
|
#: vibes_auth/serializers.py:200
|
||||||
msgid "token_blacklisted"
|
msgid "token_blacklisted"
|
||||||
msgstr "Token na czarnej liście"
|
msgstr "Token na czarnej liście"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:204
|
#: vibes_auth/serializers.py:205
|
||||||
msgid "invalid token"
|
msgid "invalid token"
|
||||||
msgstr "Nieprawidłowy token"
|
msgstr "Nieprawidłowy token"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:210
|
#: vibes_auth/serializers.py:211
|
||||||
msgid "no user uuid claim present in token"
|
msgid "no user uuid claim present in token"
|
||||||
msgstr "Brak oświadczenia uuid użytkownika w tokenie"
|
msgstr "Brak oświadczenia uuid użytkownika w tokenie"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:212
|
#: vibes_auth/serializers.py:213
|
||||||
msgid "user does not exist"
|
msgid "user does not exist"
|
||||||
msgstr "Użytkownik nie istnieje"
|
msgstr "Użytkownik nie istnieje"
|
||||||
|
|
||||||
|
|
@ -412,17 +417,17 @@ msgid ""
|
||||||
"invalid phone number format. the number must be entered in the format: "
|
"invalid phone number format. the number must be entered in the format: "
|
||||||
"\"+999999999\". up to 15 digits allowed."
|
"\"+999999999\". up to 15 digits allowed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Nieprawidłowy format numeru telefonu. Numer musi być wprowadzony w formacie: "
|
"Nieprawidłowy format numeru telefonu. Numer musi być wprowadzony w formacie:"
|
||||||
"\"+999999999\". Dozwolone do 15 cyfr."
|
" \"+999999999\". Dozwolone do 15 cyfr."
|
||||||
|
|
||||||
#: vibes_auth/views.py:57
|
#: vibes_auth/views.py:57
|
||||||
msgid "the token is invalid"
|
msgid "the token is invalid"
|
||||||
msgstr "Token jest nieprawidłowy"
|
msgstr "Token jest nieprawidłowy"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:87
|
#: vibes_auth/viewsets.py:88
|
||||||
msgid "password reset successfully"
|
msgid "password reset successfully"
|
||||||
msgstr "Hasło zostało pomyślnie zresetowane!"
|
msgstr "Hasło zostało pomyślnie zresetowane!"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:120
|
#: vibes_auth/viewsets.py:121
|
||||||
msgid "account already activated!"
|
msgid "account already activated!"
|
||||||
msgstr "Konto zostało już aktywowane..."
|
msgstr "Konto zostało już aktywowane..."
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 1\n"
|
"Project-Id-Version: 1\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-06-08 19:42+0100\n"
|
"POT-Creation-Date: 2025-06-10 03:32+0100\n"
|
||||||
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -74,28 +74,28 @@ msgstr "Verificar um token (atualização ou acesso)."
|
||||||
msgid "the token is valid"
|
msgid "the token is valid"
|
||||||
msgstr "O token é válido"
|
msgstr "O token é válido"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:15
|
#: vibes_auth/docs/drf/viewsets.py:16
|
||||||
msgid "create a new user"
|
msgid "create a new user"
|
||||||
msgstr "Criar um novo usuário"
|
msgstr "Criar um novo usuário"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:19
|
#: vibes_auth/docs/drf/viewsets.py:20
|
||||||
msgid "retrieve a user's details"
|
msgid "retrieve a user's details"
|
||||||
msgstr "Recuperar os detalhes de um usuário"
|
msgstr "Recuperar os detalhes de um usuário"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:23
|
#: vibes_auth/docs/drf/viewsets.py:24
|
||||||
msgid "update a user's details"
|
msgid "update a user's details"
|
||||||
msgstr "Atualizar os detalhes de um usuário"
|
msgstr "Atualizar os detalhes de um usuário"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:28
|
#: vibes_auth/docs/drf/viewsets.py:29
|
||||||
msgid "delete a user"
|
msgid "delete a user"
|
||||||
msgstr "Excluir um usuário"
|
msgstr "Excluir um usuário"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:32
|
#: vibes_auth/docs/drf/viewsets.py:33
|
||||||
msgid "reset a user's password by sending a reset password email"
|
msgid "reset a user's password by sending a reset password email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Redefinir a senha de um usuário enviando um e-mail de redefinição de senha"
|
"Redefinir a senha de um usuário enviando um e-mail de redefinição de senha"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:37
|
#: vibes_auth/docs/drf/viewsets.py:38
|
||||||
msgid "handle avatar upload for a user"
|
msgid "handle avatar upload for a user"
|
||||||
msgstr "Manipular o upload do avatar de um usuário"
|
msgstr "Manipular o upload do avatar de um usuário"
|
||||||
|
|
||||||
|
|
@ -104,7 +104,7 @@ msgid "confirm a user's password reset"
|
||||||
msgstr "Confirmar a redefinição de senha de um usuário"
|
msgstr "Confirmar a redefinição de senha de um usuário"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
||||||
#: vibes_auth/viewsets.py:72
|
#: vibes_auth/viewsets.py:73
|
||||||
msgid "passwords do not match"
|
msgid "passwords do not match"
|
||||||
msgstr "As senhas não correspondem"
|
msgstr "As senhas não correspondem"
|
||||||
|
|
||||||
|
|
@ -116,6 +116,10 @@ msgstr "Ativar a conta de um usuário"
|
||||||
msgid "activation link is invalid or account already activated"
|
msgid "activation link is invalid or account already activated"
|
||||||
msgstr "O link de ativação é inválido ou a conta já está ativada"
|
msgstr "O link de ativação é inválido ou a conta já está ativada"
|
||||||
|
|
||||||
|
#: vibes_auth/docs/drf/viewsets.py:71
|
||||||
|
msgid "merge client-stored recently viewed products"
|
||||||
|
msgstr "Mesclar produtos recentemente visualizados armazenados pelo cliente"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:41
|
#: vibes_auth/graphene/mutations.py:41
|
||||||
msgid "the user's b64-encoded uuid who referred the new user to us."
|
msgid "the user's b64-encoded uuid who referred the new user to us."
|
||||||
msgstr "O uuid codificado em b64 do usuário que nos indicou o novo usuário."
|
msgstr "O uuid codificado em b64 do usuário que nos indicou o novo usuário."
|
||||||
|
|
@ -143,8 +147,8 @@ msgstr "Número de telefone malformado: {phone_number}"
|
||||||
msgid "Invalid attribute format: {attribute_pair}"
|
msgid "Invalid attribute format: {attribute_pair}"
|
||||||
msgstr "Formato de atributo inválido: {attribute_pair}"
|
msgstr "Formato de atributo inválido: {attribute_pair}"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:115
|
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116
|
||||||
#: vibes_auth/viewsets.py:134
|
#: vibes_auth/viewsets.py:135
|
||||||
msgid "activation link is invalid!"
|
msgid "activation link is invalid!"
|
||||||
msgstr "O link de ativação é inválido!"
|
msgstr "O link de ativação é inválido!"
|
||||||
|
|
||||||
|
|
@ -156,17 +160,17 @@ msgstr "A conta já foi ativada..."
|
||||||
msgid "something went wrong: {e!s}"
|
msgid "something went wrong: {e!s}"
|
||||||
msgstr "Algo deu errado: {e!s}"
|
msgstr "Algo deu errado: {e!s}"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:83
|
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84
|
||||||
msgid "token is invalid!"
|
msgid "token is invalid!"
|
||||||
msgstr "O token é inválido!"
|
msgstr "O token é inválido!"
|
||||||
|
|
||||||
#: vibes_auth/graphene/object_types.py:39
|
#: vibes_auth/graphene/object_types.py:39
|
||||||
msgid ""
|
msgid ""
|
||||||
"the products this user has viewed most recently (max 48), in reverse‐"
|
"the products this user has viewed most recently (max 48), in "
|
||||||
"chronological order"
|
"reverse‐chronological order"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Os produtos que esse usuário visualizou mais recentemente (máximo de 48), em "
|
"Os produtos que esse usuário visualizou mais recentemente (máximo de 48), em"
|
||||||
"ordem cronológica inversa."
|
" ordem cronológica inversa."
|
||||||
|
|
||||||
#: vibes_auth/graphene/object_types.py:41 vibes_auth/models.py:108
|
#: vibes_auth/graphene/object_types.py:41 vibes_auth/models.py:108
|
||||||
msgid "groups"
|
msgid "groups"
|
||||||
|
|
@ -277,23 +281,23 @@ msgstr "Token na lista negra"
|
||||||
msgid "blacklisted tokens"
|
msgid "blacklisted tokens"
|
||||||
msgstr "Tokens na lista negra"
|
msgstr "Tokens na lista negra"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:106 vibes_auth/serializers.py:128
|
#: vibes_auth/serializers.py:107 vibes_auth/serializers.py:129
|
||||||
msgid "no active account"
|
msgid "no active account"
|
||||||
msgstr "Nenhuma conta ativa encontrada"
|
msgstr "Nenhuma conta ativa encontrada"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:199
|
#: vibes_auth/serializers.py:200
|
||||||
msgid "token_blacklisted"
|
msgid "token_blacklisted"
|
||||||
msgstr "Token na lista negra"
|
msgstr "Token na lista negra"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:204
|
#: vibes_auth/serializers.py:205
|
||||||
msgid "invalid token"
|
msgid "invalid token"
|
||||||
msgstr "Token inválido"
|
msgstr "Token inválido"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:210
|
#: vibes_auth/serializers.py:211
|
||||||
msgid "no user uuid claim present in token"
|
msgid "no user uuid claim present in token"
|
||||||
msgstr "Nenhuma reivindicação de uuid de usuário presente no token"
|
msgstr "Nenhuma reivindicação de uuid de usuário presente no token"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:212
|
#: vibes_auth/serializers.py:213
|
||||||
msgid "user does not exist"
|
msgid "user does not exist"
|
||||||
msgstr "O usuário não existe"
|
msgstr "O usuário não existe"
|
||||||
|
|
||||||
|
|
@ -333,8 +337,8 @@ msgid ""
|
||||||
"if the button above does not work, please copy and paste the following URL "
|
"if the button above does not work, please copy and paste the following URL "
|
||||||
"into your web browser:"
|
"into your web browser:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Se o botão acima não funcionar, copie e cole o seguinte URL em seu navegador "
|
"Se o botão acima não funcionar, copie e cole o seguinte URL em seu navegador"
|
||||||
"da Web:"
|
" da Web:"
|
||||||
|
|
||||||
#: vibes_auth/templates/user_reset_password_email.html:88
|
#: vibes_auth/templates/user_reset_password_email.html:88
|
||||||
msgid "if you did not send this request, please ignore this email."
|
msgid "if you did not send this request, please ignore this email."
|
||||||
|
|
@ -416,10 +420,10 @@ msgstr ""
|
||||||
msgid "the token is invalid"
|
msgid "the token is invalid"
|
||||||
msgstr "O token é inválido"
|
msgstr "O token é inválido"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:87
|
#: vibes_auth/viewsets.py:88
|
||||||
msgid "password reset successfully"
|
msgid "password reset successfully"
|
||||||
msgstr "A senha foi redefinida com sucesso!"
|
msgstr "A senha foi redefinida com sucesso!"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:120
|
#: vibes_auth/viewsets.py:121
|
||||||
msgid "account already activated!"
|
msgid "account already activated!"
|
||||||
msgstr "Você já ativou a conta..."
|
msgstr "Você já ativou a conta..."
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 1\n"
|
"Project-Id-Version: 1\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-06-08 19:42+0100\n"
|
"POT-Creation-Date: 2025-06-10 03:32+0100\n"
|
||||||
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -75,29 +75,29 @@ msgstr "Verificarea unui jeton (reîmprospătare sau acces)."
|
||||||
msgid "the token is valid"
|
msgid "the token is valid"
|
||||||
msgstr "Jetonul este valid"
|
msgstr "Jetonul este valid"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:15
|
#: vibes_auth/docs/drf/viewsets.py:16
|
||||||
msgid "create a new user"
|
msgid "create a new user"
|
||||||
msgstr "Creați un utilizator nou"
|
msgstr "Creați un utilizator nou"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:19
|
#: vibes_auth/docs/drf/viewsets.py:20
|
||||||
msgid "retrieve a user's details"
|
msgid "retrieve a user's details"
|
||||||
msgstr "Recuperarea detaliilor unui utilizator"
|
msgstr "Recuperarea detaliilor unui utilizator"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:23
|
#: vibes_auth/docs/drf/viewsets.py:24
|
||||||
msgid "update a user's details"
|
msgid "update a user's details"
|
||||||
msgstr "Actualizarea detaliilor unui utilizator"
|
msgstr "Actualizarea detaliilor unui utilizator"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:28
|
#: vibes_auth/docs/drf/viewsets.py:29
|
||||||
msgid "delete a user"
|
msgid "delete a user"
|
||||||
msgstr "Ștergeți un utilizator"
|
msgstr "Ștergeți un utilizator"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:32
|
#: vibes_auth/docs/drf/viewsets.py:33
|
||||||
msgid "reset a user's password by sending a reset password email"
|
msgid "reset a user's password by sending a reset password email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Resetați parola unui utilizator prin trimiterea unui e-mail de resetare a "
|
"Resetați parola unui utilizator prin trimiterea unui e-mail de resetare a "
|
||||||
"parolei"
|
"parolei"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:37
|
#: vibes_auth/docs/drf/viewsets.py:38
|
||||||
msgid "handle avatar upload for a user"
|
msgid "handle avatar upload for a user"
|
||||||
msgstr "Gestionarea încărcării avatarului pentru un utilizator"
|
msgstr "Gestionarea încărcării avatarului pentru un utilizator"
|
||||||
|
|
||||||
|
|
@ -106,7 +106,7 @@ msgid "confirm a user's password reset"
|
||||||
msgstr "Confirmați resetarea parolei unui utilizator"
|
msgstr "Confirmați resetarea parolei unui utilizator"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
||||||
#: vibes_auth/viewsets.py:72
|
#: vibes_auth/viewsets.py:73
|
||||||
msgid "passwords do not match"
|
msgid "passwords do not match"
|
||||||
msgstr "Parolele nu se potrivesc"
|
msgstr "Parolele nu se potrivesc"
|
||||||
|
|
||||||
|
|
@ -118,6 +118,10 @@ msgstr "Activați contul unui utilizator"
|
||||||
msgid "activation link is invalid or account already activated"
|
msgid "activation link is invalid or account already activated"
|
||||||
msgstr "Linkul de activare este invalid sau contul este deja activat"
|
msgstr "Linkul de activare este invalid sau contul este deja activat"
|
||||||
|
|
||||||
|
#: vibes_auth/docs/drf/viewsets.py:71
|
||||||
|
msgid "merge client-stored recently viewed products"
|
||||||
|
msgstr "Fuzionați produsele recent vizualizate stocate de client"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:41
|
#: vibes_auth/graphene/mutations.py:41
|
||||||
msgid "the user's b64-encoded uuid who referred the new user to us."
|
msgid "the user's b64-encoded uuid who referred the new user to us."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -146,8 +150,8 @@ msgstr "Număr de telefon malformat: {phone_number}"
|
||||||
msgid "Invalid attribute format: {attribute_pair}"
|
msgid "Invalid attribute format: {attribute_pair}"
|
||||||
msgstr "Format de atribut invalid: {attribute_pair}"
|
msgstr "Format de atribut invalid: {attribute_pair}"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:115
|
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116
|
||||||
#: vibes_auth/viewsets.py:134
|
#: vibes_auth/viewsets.py:135
|
||||||
msgid "activation link is invalid!"
|
msgid "activation link is invalid!"
|
||||||
msgstr "Linkul de activare este invalid!"
|
msgstr "Linkul de activare este invalid!"
|
||||||
|
|
||||||
|
|
@ -159,14 +163,14 @@ msgstr "Contul a fost deja activat..."
|
||||||
msgid "something went wrong: {e!s}"
|
msgid "something went wrong: {e!s}"
|
||||||
msgstr "Ceva nu a mers bine: {e!s}"
|
msgstr "Ceva nu a mers bine: {e!s}"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:83
|
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84
|
||||||
msgid "token is invalid!"
|
msgid "token is invalid!"
|
||||||
msgstr "Token-ul nu este valabil!"
|
msgstr "Token-ul nu este valabil!"
|
||||||
|
|
||||||
#: vibes_auth/graphene/object_types.py:39
|
#: vibes_auth/graphene/object_types.py:39
|
||||||
msgid ""
|
msgid ""
|
||||||
"the products this user has viewed most recently (max 48), in reverse‐"
|
"the products this user has viewed most recently (max 48), in "
|
||||||
"chronological order"
|
"reverse‐chronological order"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Produsele pe care acest utilizator le-a vizualizat cel mai recent (max 48), "
|
"Produsele pe care acest utilizator le-a vizualizat cel mai recent (max 48), "
|
||||||
"în ordine cronologică inversă."
|
"în ordine cronologică inversă."
|
||||||
|
|
@ -280,23 +284,23 @@ msgstr "Token pe lista neagră"
|
||||||
msgid "blacklisted tokens"
|
msgid "blacklisted tokens"
|
||||||
msgstr "Jetoane pe lista neagră"
|
msgstr "Jetoane pe lista neagră"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:106 vibes_auth/serializers.py:128
|
#: vibes_auth/serializers.py:107 vibes_auth/serializers.py:129
|
||||||
msgid "no active account"
|
msgid "no active account"
|
||||||
msgstr "Nu s-a găsit niciun cont activ"
|
msgstr "Nu s-a găsit niciun cont activ"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:199
|
#: vibes_auth/serializers.py:200
|
||||||
msgid "token_blacklisted"
|
msgid "token_blacklisted"
|
||||||
msgstr "Token pe lista neagră"
|
msgstr "Token pe lista neagră"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:204
|
#: vibes_auth/serializers.py:205
|
||||||
msgid "invalid token"
|
msgid "invalid token"
|
||||||
msgstr "Jeton invalid"
|
msgstr "Jeton invalid"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:210
|
#: vibes_auth/serializers.py:211
|
||||||
msgid "no user uuid claim present in token"
|
msgid "no user uuid claim present in token"
|
||||||
msgstr "În jeton nu este prezentă nicio cerere uuid a utilizatorului"
|
msgstr "În jeton nu este prezentă nicio cerere uuid a utilizatorului"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:212
|
#: vibes_auth/serializers.py:213
|
||||||
msgid "user does not exist"
|
msgid "user does not exist"
|
||||||
msgstr "Utilizatorul nu există"
|
msgstr "Utilizatorul nu există"
|
||||||
|
|
||||||
|
|
@ -380,8 +384,7 @@ msgid ""
|
||||||
"if the button above does not work, please copy and paste the following URL\n"
|
"if the button above does not work, please copy and paste the following URL\n"
|
||||||
" into your web browser:"
|
" into your web browser:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Dacă butonul de mai sus nu funcționează, vă rugăm să copiați și să lipiți "
|
"Dacă butonul de mai sus nu funcționează, vă rugăm să copiați și să lipiți următoarea adresă URL\n"
|
||||||
"următoarea adresă URL\n"
|
|
||||||
" în browserul dvs. web:"
|
" în browserul dvs. web:"
|
||||||
|
|
||||||
#: vibes_auth/templates/user_verification_email.html:101
|
#: vibes_auth/templates/user_verification_email.html:101
|
||||||
|
|
@ -420,10 +423,10 @@ msgstr ""
|
||||||
msgid "the token is invalid"
|
msgid "the token is invalid"
|
||||||
msgstr "Jetonul nu este valabil"
|
msgstr "Jetonul nu este valabil"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:87
|
#: vibes_auth/viewsets.py:88
|
||||||
msgid "password reset successfully"
|
msgid "password reset successfully"
|
||||||
msgstr "Parola a fost resetată cu succes!"
|
msgstr "Parola a fost resetată cu succes!"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:120
|
#: vibes_auth/viewsets.py:121
|
||||||
msgid "account already activated!"
|
msgid "account already activated!"
|
||||||
msgstr "Ați activat deja contul..."
|
msgstr "Ați activat deja contul..."
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 1\n"
|
"Project-Id-Version: 1\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-06-08 19:42+0100\n"
|
"POT-Creation-Date: 2025-06-10 03:32+0100\n"
|
||||||
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -74,29 +74,29 @@ msgstr "Проверка маркера (обновление или досту
|
||||||
msgid "the token is valid"
|
msgid "the token is valid"
|
||||||
msgstr "Токен действителен"
|
msgstr "Токен действителен"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:15
|
#: vibes_auth/docs/drf/viewsets.py:16
|
||||||
msgid "create a new user"
|
msgid "create a new user"
|
||||||
msgstr "Создайте нового пользователя"
|
msgstr "Создайте нового пользователя"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:19
|
#: vibes_auth/docs/drf/viewsets.py:20
|
||||||
msgid "retrieve a user's details"
|
msgid "retrieve a user's details"
|
||||||
msgstr "Получение информации о пользователе"
|
msgstr "Получение информации о пользователе"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:23
|
#: vibes_auth/docs/drf/viewsets.py:24
|
||||||
msgid "update a user's details"
|
msgid "update a user's details"
|
||||||
msgstr "Обновление данных пользователя"
|
msgstr "Обновление данных пользователя"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:28
|
#: vibes_auth/docs/drf/viewsets.py:29
|
||||||
msgid "delete a user"
|
msgid "delete a user"
|
||||||
msgstr "Удалить пользователя"
|
msgstr "Удалить пользователя"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:32
|
#: vibes_auth/docs/drf/viewsets.py:33
|
||||||
msgid "reset a user's password by sending a reset password email"
|
msgid "reset a user's password by sending a reset password email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Сброс пароля пользователя путем отправки электронного сообщения о сбросе "
|
"Сброс пароля пользователя путем отправки электронного сообщения о сбросе "
|
||||||
"пароля"
|
"пароля"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:37
|
#: vibes_auth/docs/drf/viewsets.py:38
|
||||||
msgid "handle avatar upload for a user"
|
msgid "handle avatar upload for a user"
|
||||||
msgstr "Обработка загрузки аватара для пользователя"
|
msgstr "Обработка загрузки аватара для пользователя"
|
||||||
|
|
||||||
|
|
@ -105,7 +105,7 @@ msgid "confirm a user's password reset"
|
||||||
msgstr "Подтверждение сброса пароля пользователя"
|
msgstr "Подтверждение сброса пароля пользователя"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
||||||
#: vibes_auth/viewsets.py:72
|
#: vibes_auth/viewsets.py:73
|
||||||
msgid "passwords do not match"
|
msgid "passwords do not match"
|
||||||
msgstr "Пароли не совпадают"
|
msgstr "Пароли не совпадают"
|
||||||
|
|
||||||
|
|
@ -117,6 +117,11 @@ msgstr "Активация учетной записи пользователя"
|
||||||
msgid "activation link is invalid or account already activated"
|
msgid "activation link is invalid or account already activated"
|
||||||
msgstr "Ссылка на активацию недействительна или аккаунт уже активирован"
|
msgstr "Ссылка на активацию недействительна или аккаунт уже активирован"
|
||||||
|
|
||||||
|
#: vibes_auth/docs/drf/viewsets.py:71
|
||||||
|
msgid "merge client-stored recently viewed products"
|
||||||
|
msgstr ""
|
||||||
|
"Объедините недавно просмотренные продукты, хранящиеся в памяти клиента"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:41
|
#: vibes_auth/graphene/mutations.py:41
|
||||||
msgid "the user's b64-encoded uuid who referred the new user to us."
|
msgid "the user's b64-encoded uuid who referred the new user to us."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -146,8 +151,8 @@ msgstr "Некорректный номер телефона: {phone_number}"
|
||||||
msgid "Invalid attribute format: {attribute_pair}"
|
msgid "Invalid attribute format: {attribute_pair}"
|
||||||
msgstr "Недопустимый формат атрибута: {attribute_pair}"
|
msgstr "Недопустимый формат атрибута: {attribute_pair}"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:115
|
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116
|
||||||
#: vibes_auth/viewsets.py:134
|
#: vibes_auth/viewsets.py:135
|
||||||
msgid "activation link is invalid!"
|
msgid "activation link is invalid!"
|
||||||
msgstr "Ссылка на активацию недействительна!"
|
msgstr "Ссылка на активацию недействительна!"
|
||||||
|
|
||||||
|
|
@ -159,17 +164,17 @@ msgstr "Аккаунт уже активирован..."
|
||||||
msgid "something went wrong: {e!s}"
|
msgid "something went wrong: {e!s}"
|
||||||
msgstr "Что-то пошло не так: {e!s}"
|
msgstr "Что-то пошло не так: {e!s}"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:83
|
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84
|
||||||
msgid "token is invalid!"
|
msgid "token is invalid!"
|
||||||
msgstr "Токен недействителен!"
|
msgstr "Токен недействителен!"
|
||||||
|
|
||||||
#: vibes_auth/graphene/object_types.py:39
|
#: vibes_auth/graphene/object_types.py:39
|
||||||
msgid ""
|
msgid ""
|
||||||
"the products this user has viewed most recently (max 48), in reverse‐"
|
"the products this user has viewed most recently (max 48), in "
|
||||||
"chronological order"
|
"reverse‐chronological order"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Продукты, которые этот пользователь просматривал в последнее время (не более "
|
"Продукты, которые этот пользователь просматривал в последнее время (не более"
|
||||||
"48), в обратном хронологическом порядке."
|
" 48), в обратном хронологическом порядке."
|
||||||
|
|
||||||
#: vibes_auth/graphene/object_types.py:41 vibes_auth/models.py:108
|
#: vibes_auth/graphene/object_types.py:41 vibes_auth/models.py:108
|
||||||
msgid "groups"
|
msgid "groups"
|
||||||
|
|
@ -280,23 +285,23 @@ msgstr "Токен в черном списке"
|
||||||
msgid "blacklisted tokens"
|
msgid "blacklisted tokens"
|
||||||
msgstr "Токены, внесенные в черный список"
|
msgstr "Токены, внесенные в черный список"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:106 vibes_auth/serializers.py:128
|
#: vibes_auth/serializers.py:107 vibes_auth/serializers.py:129
|
||||||
msgid "no active account"
|
msgid "no active account"
|
||||||
msgstr "Активная учетная запись не найдена"
|
msgstr "Активная учетная запись не найдена"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:199
|
#: vibes_auth/serializers.py:200
|
||||||
msgid "token_blacklisted"
|
msgid "token_blacklisted"
|
||||||
msgstr "Токен занесен в черный список"
|
msgstr "Токен занесен в черный список"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:204
|
#: vibes_auth/serializers.py:205
|
||||||
msgid "invalid token"
|
msgid "invalid token"
|
||||||
msgstr "Неверный токен"
|
msgstr "Неверный токен"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:210
|
#: vibes_auth/serializers.py:211
|
||||||
msgid "no user uuid claim present in token"
|
msgid "no user uuid claim present in token"
|
||||||
msgstr "В токене отсутствует утверждение uuid пользователя"
|
msgstr "В токене отсутствует утверждение uuid пользователя"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:212
|
#: vibes_auth/serializers.py:213
|
||||||
msgid "user does not exist"
|
msgid "user does not exist"
|
||||||
msgstr "Пользователь не существует"
|
msgstr "Пользователь не существует"
|
||||||
|
|
||||||
|
|
@ -381,8 +386,7 @@ msgid ""
|
||||||
"if the button above does not work, please copy and paste the following URL\n"
|
"if the button above does not work, please copy and paste the following URL\n"
|
||||||
" into your web browser:"
|
" into your web browser:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Если кнопка выше не работает, пожалуйста, скопируйте и вставьте следующий "
|
"Если кнопка выше не работает, пожалуйста, скопируйте и вставьте следующий URL-адрес\n"
|
||||||
"URL-адрес\n"
|
|
||||||
" в свой веб-браузер:"
|
" в свой веб-браузер:"
|
||||||
|
|
||||||
#: vibes_auth/templates/user_verification_email.html:101
|
#: vibes_auth/templates/user_verification_email.html:101
|
||||||
|
|
@ -421,10 +425,10 @@ msgstr ""
|
||||||
msgid "the token is invalid"
|
msgid "the token is invalid"
|
||||||
msgstr "Токен недействителен"
|
msgstr "Токен недействителен"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:87
|
#: vibes_auth/viewsets.py:88
|
||||||
msgid "password reset successfully"
|
msgid "password reset successfully"
|
||||||
msgstr "Пароль был успешно сброшен!"
|
msgstr "Пароль был успешно сброшен!"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:120
|
#: vibes_auth/viewsets.py:121
|
||||||
msgid "account already activated!"
|
msgid "account already activated!"
|
||||||
msgstr "Вы уже активировали учетную запись..."
|
msgstr "Вы уже активировали учетную запись..."
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 1\n"
|
"Project-Id-Version: 1\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-06-08 19:42+0100\n"
|
"POT-Creation-Date: 2025-06-10 03:32+0100\n"
|
||||||
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -74,27 +74,27 @@ msgstr "验证令牌(刷新或访问)。"
|
||||||
msgid "the token is valid"
|
msgid "the token is valid"
|
||||||
msgstr "令牌有效"
|
msgstr "令牌有效"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:15
|
#: vibes_auth/docs/drf/viewsets.py:16
|
||||||
msgid "create a new user"
|
msgid "create a new user"
|
||||||
msgstr "创建新用户"
|
msgstr "创建新用户"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:19
|
#: vibes_auth/docs/drf/viewsets.py:20
|
||||||
msgid "retrieve a user's details"
|
msgid "retrieve a user's details"
|
||||||
msgstr "读取用户详细信息"
|
msgstr "读取用户详细信息"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:23
|
#: vibes_auth/docs/drf/viewsets.py:24
|
||||||
msgid "update a user's details"
|
msgid "update a user's details"
|
||||||
msgstr "更新用户信息"
|
msgstr "更新用户信息"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:28
|
#: vibes_auth/docs/drf/viewsets.py:29
|
||||||
msgid "delete a user"
|
msgid "delete a user"
|
||||||
msgstr "删除用户"
|
msgstr "删除用户"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:32
|
#: vibes_auth/docs/drf/viewsets.py:33
|
||||||
msgid "reset a user's password by sending a reset password email"
|
msgid "reset a user's password by sending a reset password email"
|
||||||
msgstr "通过发送重置密码电子邮件重置用户密码"
|
msgstr "通过发送重置密码电子邮件重置用户密码"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:37
|
#: vibes_auth/docs/drf/viewsets.py:38
|
||||||
msgid "handle avatar upload for a user"
|
msgid "handle avatar upload for a user"
|
||||||
msgstr "处理用户的头像上传"
|
msgstr "处理用户的头像上传"
|
||||||
|
|
||||||
|
|
@ -103,7 +103,7 @@ msgid "confirm a user's password reset"
|
||||||
msgstr "确认用户密码重置"
|
msgstr "确认用户密码重置"
|
||||||
|
|
||||||
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
#: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307
|
||||||
#: vibes_auth/viewsets.py:72
|
#: vibes_auth/viewsets.py:73
|
||||||
msgid "passwords do not match"
|
msgid "passwords do not match"
|
||||||
msgstr "密码不匹配"
|
msgstr "密码不匹配"
|
||||||
|
|
||||||
|
|
@ -115,6 +115,10 @@ msgstr "激活用户帐户"
|
||||||
msgid "activation link is invalid or account already activated"
|
msgid "activation link is invalid or account already activated"
|
||||||
msgstr "激活链接无效或账户已激活"
|
msgstr "激活链接无效或账户已激活"
|
||||||
|
|
||||||
|
#: vibes_auth/docs/drf/viewsets.py:71
|
||||||
|
msgid "merge client-stored recently viewed products"
|
||||||
|
msgstr "合并客户存储的最近查看的产品"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:41
|
#: vibes_auth/graphene/mutations.py:41
|
||||||
msgid "the user's b64-encoded uuid who referred the new user to us."
|
msgid "the user's b64-encoded uuid who referred the new user to us."
|
||||||
msgstr "将新用户推荐给我们的用户的 b64-encoded uuid。"
|
msgstr "将新用户推荐给我们的用户的 b64-encoded uuid。"
|
||||||
|
|
@ -142,8 +146,8 @@ msgstr "畸形电话号码: {phone_number}"
|
||||||
msgid "Invalid attribute format: {attribute_pair}"
|
msgid "Invalid attribute format: {attribute_pair}"
|
||||||
msgstr "属性格式无效:{attribute_pair}"
|
msgstr "属性格式无效:{attribute_pair}"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:115
|
#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116
|
||||||
#: vibes_auth/viewsets.py:134
|
#: vibes_auth/viewsets.py:135
|
||||||
msgid "activation link is invalid!"
|
msgid "activation link is invalid!"
|
||||||
msgstr "激活链接无效!"
|
msgstr "激活链接无效!"
|
||||||
|
|
||||||
|
|
@ -155,14 +159,14 @@ msgstr "帐户已激活..."
|
||||||
msgid "something went wrong: {e!s}"
|
msgid "something went wrong: {e!s}"
|
||||||
msgstr "出了问题:{e!s}"
|
msgstr "出了问题:{e!s}"
|
||||||
|
|
||||||
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:83
|
#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84
|
||||||
msgid "token is invalid!"
|
msgid "token is invalid!"
|
||||||
msgstr "令牌无效!"
|
msgstr "令牌无效!"
|
||||||
|
|
||||||
#: vibes_auth/graphene/object_types.py:39
|
#: vibes_auth/graphene/object_types.py:39
|
||||||
msgid ""
|
msgid ""
|
||||||
"the products this user has viewed most recently (max 48), in reverse‐"
|
"the products this user has viewed most recently (max 48), in "
|
||||||
"chronological order"
|
"reverse‐chronological order"
|
||||||
msgstr "该用户最近查看过的产品(最多 48 个),按倒序排列。"
|
msgstr "该用户最近查看过的产品(最多 48 个),按倒序排列。"
|
||||||
|
|
||||||
#: vibes_auth/graphene/object_types.py:41 vibes_auth/models.py:108
|
#: vibes_auth/graphene/object_types.py:41 vibes_auth/models.py:108
|
||||||
|
|
@ -274,23 +278,23 @@ msgstr "黑名单令牌"
|
||||||
msgid "blacklisted tokens"
|
msgid "blacklisted tokens"
|
||||||
msgstr "黑名单令牌"
|
msgstr "黑名单令牌"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:106 vibes_auth/serializers.py:128
|
#: vibes_auth/serializers.py:107 vibes_auth/serializers.py:129
|
||||||
msgid "no active account"
|
msgid "no active account"
|
||||||
msgstr "未找到活动账户"
|
msgstr "未找到活动账户"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:199
|
#: vibes_auth/serializers.py:200
|
||||||
msgid "token_blacklisted"
|
msgid "token_blacklisted"
|
||||||
msgstr "令牌被列入黑名单"
|
msgstr "令牌被列入黑名单"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:204
|
#: vibes_auth/serializers.py:205
|
||||||
msgid "invalid token"
|
msgid "invalid token"
|
||||||
msgstr "无效令牌"
|
msgstr "无效令牌"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:210
|
#: vibes_auth/serializers.py:211
|
||||||
msgid "no user uuid claim present in token"
|
msgid "no user uuid claim present in token"
|
||||||
msgstr "令牌中没有用户 uuid 声明"
|
msgstr "令牌中没有用户 uuid 声明"
|
||||||
|
|
||||||
#: vibes_auth/serializers.py:212
|
#: vibes_auth/serializers.py:213
|
||||||
msgid "user does not exist"
|
msgid "user does not exist"
|
||||||
msgstr "用户不存在"
|
msgstr "用户不存在"
|
||||||
|
|
||||||
|
|
@ -399,17 +403,16 @@ msgstr "{config.PROJECT_NAME} 重置密码| 重置密码"
|
||||||
msgid ""
|
msgid ""
|
||||||
"invalid phone number format. the number must be entered in the format: "
|
"invalid phone number format. the number must be entered in the format: "
|
||||||
"\"+999999999\". up to 15 digits allowed."
|
"\"+999999999\". up to 15 digits allowed."
|
||||||
msgstr ""
|
msgstr "电话号码格式无效。电话号码必须按格式输入:\"+999999999\".最多允许 15 位数字。"
|
||||||
"电话号码格式无效。电话号码必须按格式输入:\"+999999999\".最多允许 15 位数字。"
|
|
||||||
|
|
||||||
#: vibes_auth/views.py:57
|
#: vibes_auth/views.py:57
|
||||||
msgid "the token is invalid"
|
msgid "the token is invalid"
|
||||||
msgstr "令牌无效"
|
msgstr "令牌无效"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:87
|
#: vibes_auth/viewsets.py:88
|
||||||
msgid "password reset successfully"
|
msgid "password reset successfully"
|
||||||
msgstr "密码已重置成功!"
|
msgstr "密码已重置成功!"
|
||||||
|
|
||||||
#: vibes_auth/viewsets.py:120
|
#: vibes_auth/viewsets.py:121
|
||||||
msgid "account already activated!"
|
msgid "account already activated!"
|
||||||
msgstr "您已经激活了账户..."
|
msgstr "您已经激活了账户..."
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@ from django.contrib import auth
|
||||||
from django.contrib.auth.base_user import BaseUserManager
|
from django.contrib.auth.base_user import BaseUserManager
|
||||||
from django.contrib.auth.hashers import make_password
|
from django.contrib.auth.hashers import make_password
|
||||||
|
|
||||||
|
from core.models import Order
|
||||||
|
|
||||||
|
|
||||||
class UserManager(BaseUserManager):
|
class UserManager(BaseUserManager):
|
||||||
use_in_migrations = True
|
use_in_migrations = True
|
||||||
|
|
@ -11,6 +13,14 @@ class UserManager(BaseUserManager):
|
||||||
user = self.model(email=email, **extra_fields)
|
user = self.model(email=email, **extra_fields)
|
||||||
user.password = make_password(password)
|
user.password = make_password(password)
|
||||||
user.save(using=self._db)
|
user.save(using=self._db)
|
||||||
|
for order in Order.objects.filter(attributes__icontains=user.email):
|
||||||
|
if not order.user:
|
||||||
|
order.user = user
|
||||||
|
order.save()
|
||||||
|
for order in Order.objects.filter(attributes__icontains=user.phone_number):
|
||||||
|
if not order.user:
|
||||||
|
order.user = user
|
||||||
|
order.save()
|
||||||
return user
|
return user
|
||||||
|
|
||||||
def create_user(self, email=None, password=None, **extra_fields):
|
def create_user(self, email=None, password=None, **extra_fields):
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ from rest_framework.fields import (
|
||||||
BooleanField,
|
BooleanField,
|
||||||
CharField,
|
CharField,
|
||||||
EmailField,
|
EmailField,
|
||||||
|
ListField,
|
||||||
SerializerMethodField,
|
SerializerMethodField,
|
||||||
)
|
)
|
||||||
from rest_framework.serializers import ModelSerializer, Serializer
|
from rest_framework.serializers import ModelSerializer, Serializer
|
||||||
|
|
@ -229,3 +230,7 @@ class ResetPasswordSerializer(Serializer):
|
||||||
class ActivateEmailSerializer(Serializer):
|
class ActivateEmailSerializer(Serializer):
|
||||||
uidb64 = CharField(required=True)
|
uidb64 = CharField(required=True)
|
||||||
token = CharField(required=True)
|
token = CharField(required=True)
|
||||||
|
|
||||||
|
|
||||||
|
class MergeRecentlyViewedSerializer(Serializer):
|
||||||
|
product_uuids = ListField(required=True, child=CharField(required=True))
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ from evibes.settings import DEBUG
|
||||||
from vibes_auth.docs.drf.viewsets import USER_SCHEMA
|
from vibes_auth.docs.drf.viewsets import USER_SCHEMA
|
||||||
from vibes_auth.models import User
|
from vibes_auth.models import User
|
||||||
from vibes_auth.serializers import (
|
from vibes_auth.serializers import (
|
||||||
|
MergeRecentlyViewedSerializer,
|
||||||
UserSerializer,
|
UserSerializer,
|
||||||
)
|
)
|
||||||
from vibes_auth.utils.emailing import send_reset_password_email_task
|
from vibes_auth.utils.emailing import send_reset_password_email_task
|
||||||
|
|
@ -141,6 +142,17 @@ class UserViewSet(
|
||||||
response_data["access"] = str(tokens.access_token)
|
response_data["access"] = str(tokens.access_token)
|
||||||
return Response(response_data, status=status.HTTP_200_OK)
|
return Response(response_data, status=status.HTTP_200_OK)
|
||||||
|
|
||||||
|
@action(detail=True, methods=["put"], permission_classes=[IsAuthenticated])
|
||||||
|
def merge_recently_viewed(self, request, **kwargs):
|
||||||
|
user = self.get_object()
|
||||||
|
if request.user != user:
|
||||||
|
return Response(status=status.HTTP_403_FORBIDDEN)
|
||||||
|
serializer = MergeRecentlyViewedSerializer(request.data)
|
||||||
|
serializer.is_valid(raise_exception=True)
|
||||||
|
for product_uuid in serializer.validated_data["product_uuids"]:
|
||||||
|
user.add_to_recently_viewed(product_uuid)
|
||||||
|
return Response(status=status.HTTP_202_ACCEPTED, data=self.serializer_class(user).data)
|
||||||
|
|
||||||
def retrieve(self, request, pk=None, *args, **kwargs):
|
def retrieve(self, request, pk=None, *args, **kwargs):
|
||||||
instance = self.get_object()
|
instance = self.get_object()
|
||||||
serializer = self.get_serializer(instance)
|
serializer = self.get_serializer(instance)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue