Features: 1) Add detailed in-line comments with type ignore for improved debugging and maintainability; 2) Update I18N strings and translation placeholders across locales; 3) Introduce "address set" as a translatable object;
Fixes: 1) Resolve malformed phone number error message format; 2) Fix minor grammatical issues in message strings; 3) Align POT-Creation-Date metadata in locale files; Extra: Enhance formatting consistency in documentation and translations; Remove obsolete translation strings.
This commit is contained in:
parent
210d569536
commit
e49c942a1b
155 changed files with 7412 additions and 7284 deletions
|
|
@ -66,6 +66,3 @@ msgstr "علامة المشاركة"
|
||||||
#: blog/models.py:137
|
#: blog/models.py:137
|
||||||
msgid "post tags"
|
msgid "post tags"
|
||||||
msgstr "علامات المشاركة"
|
msgstr "علامات المشاركة"
|
||||||
|
|
||||||
#~ msgid "eVibes Engine"
|
|
||||||
#~ msgstr "محرك eVibes"
|
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,3 @@ msgstr "Označení příspěvku"
|
||||||
#: blog/models.py:137
|
#: blog/models.py:137
|
||||||
msgid "post tags"
|
msgid "post tags"
|
||||||
msgstr "Štítky příspěvků"
|
msgstr "Štítky příspěvků"
|
||||||
|
|
||||||
#~ msgid "eVibes Engine"
|
|
||||||
#~ msgstr "Motor eVibes"
|
|
||||||
|
|
|
||||||
|
|
@ -66,6 +66,3 @@ msgstr "Tag til indlæg"
|
||||||
#: blog/models.py:137
|
#: blog/models.py:137
|
||||||
msgid "post tags"
|
msgid "post tags"
|
||||||
msgstr "Tags til indlæg"
|
msgstr "Tags til indlæg"
|
||||||
|
|
||||||
#~ msgid "eVibes Engine"
|
|
||||||
#~ msgstr "eVibes-motor"
|
|
||||||
|
|
|
||||||
|
|
@ -69,6 +69,3 @@ msgstr "Tag eintragen"
|
||||||
#: blog/models.py:137
|
#: blog/models.py:137
|
||||||
msgid "post tags"
|
msgid "post tags"
|
||||||
msgstr "Tags eintragen"
|
msgstr "Tags eintragen"
|
||||||
|
|
||||||
#~ msgid "eVibes Engine"
|
|
||||||
#~ msgstr "eVibes Motor"
|
|
||||||
|
|
|
||||||
|
|
@ -70,12 +70,3 @@ msgstr "Post tag"
|
||||||
#: blog/models.py:137
|
#: blog/models.py:137
|
||||||
msgid "post tags"
|
msgid "post tags"
|
||||||
msgstr "Post tags"
|
msgstr "Post tags"
|
||||||
|
|
||||||
#~ msgid "eVibes Engine"
|
|
||||||
#~ msgstr "eVibes Engine"
|
|
||||||
|
|
||||||
#~ msgid "(no content yet)"
|
|
||||||
#~ msgstr "(no content yet)"
|
|
||||||
|
|
||||||
#~ msgid "rendered HTML"
|
|
||||||
#~ msgstr "Rendered HTML"
|
|
||||||
|
|
|
||||||
|
|
@ -66,6 +66,3 @@ msgstr "Post tag"
|
||||||
#: blog/models.py:137
|
#: blog/models.py:137
|
||||||
msgid "post tags"
|
msgid "post tags"
|
||||||
msgstr "Post tags"
|
msgstr "Post tags"
|
||||||
|
|
||||||
#~ msgid "eVibes Engine"
|
|
||||||
#~ msgstr "eVibes Engine"
|
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,3 @@ msgstr "Etiqueta postal"
|
||||||
#: blog/models.py:137
|
#: blog/models.py:137
|
||||||
msgid "post tags"
|
msgid "post tags"
|
||||||
msgstr "Etiquetas"
|
msgstr "Etiquetas"
|
||||||
|
|
||||||
#~ msgid "eVibes Engine"
|
|
||||||
#~ msgstr "Motor eVibes"
|
|
||||||
|
|
|
||||||
|
|
@ -69,6 +69,3 @@ msgstr "Tag de poste"
|
||||||
#: blog/models.py:137
|
#: blog/models.py:137
|
||||||
msgid "post tags"
|
msgid "post tags"
|
||||||
msgstr "Tags de la poste"
|
msgstr "Tags de la poste"
|
||||||
|
|
||||||
#~ msgid "eVibes Engine"
|
|
||||||
#~ msgstr "Moteur eVibes"
|
|
||||||
|
|
|
||||||
|
|
@ -67,6 +67,3 @@ msgstr "Post tag"
|
||||||
#: blog/models.py:137
|
#: blog/models.py:137
|
||||||
msgid "post tags"
|
msgid "post tags"
|
||||||
msgstr "Tag dei post"
|
msgstr "Tag dei post"
|
||||||
|
|
||||||
#~ msgid "eVibes Engine"
|
|
||||||
#~ msgstr "Motore eVibes"
|
|
||||||
|
|
|
||||||
|
|
@ -69,6 +69,3 @@ msgstr "投稿タグ"
|
||||||
#: blog/models.py:137
|
#: blog/models.py:137
|
||||||
msgid "post tags"
|
msgid "post tags"
|
||||||
msgstr "投稿タグ"
|
msgstr "投稿タグ"
|
||||||
|
|
||||||
#~ msgid "eVibes Engine"
|
|
||||||
#~ msgstr "eVibesエンジン"
|
|
||||||
|
|
|
||||||
|
|
@ -69,6 +69,3 @@ msgstr "Post tag"
|
||||||
#: blog/models.py:137
|
#: blog/models.py:137
|
||||||
msgid "post tags"
|
msgid "post tags"
|
||||||
msgstr "Post tags"
|
msgstr "Post tags"
|
||||||
|
|
||||||
#~ msgid "eVibes Engine"
|
|
||||||
#~ msgstr "eVibes motor"
|
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,3 @@ msgstr "Tag posta"
|
||||||
#: blog/models.py:137
|
#: blog/models.py:137
|
||||||
msgid "post tags"
|
msgid "post tags"
|
||||||
msgstr "Tagi postów"
|
msgstr "Tagi postów"
|
||||||
|
|
||||||
#~ msgid "eVibes Engine"
|
|
||||||
#~ msgstr "Silnik eVibes"
|
|
||||||
|
|
|
||||||
|
|
@ -67,6 +67,3 @@ msgstr "Etiqueta de postagem"
|
||||||
#: blog/models.py:137
|
#: blog/models.py:137
|
||||||
msgid "post tags"
|
msgid "post tags"
|
||||||
msgstr "Tags de postagem"
|
msgstr "Tags de postagem"
|
||||||
|
|
||||||
#~ msgid "eVibes Engine"
|
|
||||||
#~ msgstr "Motor eVibes"
|
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,3 @@ msgstr "Etichetă post"
|
||||||
#: blog/models.py:137
|
#: blog/models.py:137
|
||||||
msgid "post tags"
|
msgid "post tags"
|
||||||
msgstr "Etichete poștale"
|
msgstr "Etichete poștale"
|
||||||
|
|
||||||
#~ msgid "eVibes Engine"
|
|
||||||
#~ msgstr "Motorul eVibes"
|
|
||||||
|
|
|
||||||
|
|
@ -69,6 +69,3 @@ msgstr "Тэг поста"
|
||||||
#: blog/models.py:137
|
#: blog/models.py:137
|
||||||
msgid "post tags"
|
msgid "post tags"
|
||||||
msgstr "Тэги постов"
|
msgstr "Тэги постов"
|
||||||
|
|
||||||
#~ msgid "eVibes Engine"
|
|
||||||
#~ msgstr "Движок eVibes"
|
|
||||||
|
|
|
||||||
|
|
@ -65,6 +65,3 @@ msgstr "职位标签"
|
||||||
#: blog/models.py:137
|
#: blog/models.py:137
|
||||||
msgid "post tags"
|
msgid "post tags"
|
||||||
msgstr "帖子标签"
|
msgstr "帖子标签"
|
||||||
|
|
||||||
#~ msgid "eVibes Engine"
|
|
||||||
#~ msgstr "eVibes 引擎"
|
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ from constance.admin import ConstanceAdmin as BaseConstanceAdmin
|
||||||
from django.apps import apps
|
from django.apps import apps
|
||||||
from django.contrib.admin import ModelAdmin, TabularInline, action, register, site
|
from django.contrib.admin import ModelAdmin, TabularInline, action, register, site
|
||||||
from django.contrib.gis.admin import GISModelAdmin
|
from django.contrib.gis.admin import GISModelAdmin
|
||||||
|
from django.contrib.messages import constants as messages
|
||||||
from django.db.models import Model
|
from django.db.models import Model
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
from modeltranslation.translator import NotRegistered, translator
|
from modeltranslation.translator import NotRegistered, translator
|
||||||
|
|
@ -92,15 +93,27 @@ class ActivationActionsMixin:
|
||||||
"deactivate_selected",
|
"deactivate_selected",
|
||||||
]
|
]
|
||||||
|
|
||||||
@action(description=_("activate selected %(verbose_name_plural)s"), permissions=["change"])
|
@action(description=_("activate selected %(verbose_name_plural)s").lower(), permissions=["change"])
|
||||||
def activate_selected(self, request, queryset):
|
def activate_selected(self, request, queryset):
|
||||||
queryset.update(is_active=True)
|
try:
|
||||||
self.message_user(request, _("selected items have been activated."))
|
queryset.update(is_active=True)
|
||||||
|
self.message_user(
|
||||||
|
request=request, message=_("selected items have been activated.").lower(), level=messages.SUCCESS
|
||||||
|
)
|
||||||
|
|
||||||
@action(description=_("deactivate selected %(verbose_name_plural)s"), permissions=["change"])
|
except Exception as e:
|
||||||
|
self.message_user(request=request, message=str(e), level=messages.ERROR)
|
||||||
|
|
||||||
|
@action(description=_("deactivate selected %(verbose_name_plural)s").lower(), permissions=["change"])
|
||||||
def deactivate_selected(self, request, queryset):
|
def deactivate_selected(self, request, queryset):
|
||||||
queryset.update(is_active=False)
|
try:
|
||||||
self.message_user(request, _("selected items have been deactivated."))
|
queryset.update(is_active=False)
|
||||||
|
self.message_user(
|
||||||
|
request=request, message=_("selected items have been deactivated.").lower(), level=messages.SUCCESS
|
||||||
|
)
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
self.message_user(request=request, message=str(e), level=messages.ERROR)
|
||||||
|
|
||||||
|
|
||||||
class AttributeValueInline(TabularInline):
|
class AttributeValueInline(TabularInline):
|
||||||
|
|
|
||||||
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
|
|
@ -120,12 +120,18 @@ class Command(BaseCommand):
|
||||||
)
|
)
|
||||||
|
|
||||||
def handle(self, *args, **options) -> None:
|
def handle(self, *args, **options) -> None:
|
||||||
target_langs: list[str] = options["target_languages"]
|
target_langs = options["target_languages"]
|
||||||
target_apps: set[str] = set(options["target_apps"])
|
target_apps = set(options["target_apps"])
|
||||||
auth_key = os.environ.get("DEEPL_AUTH_KEY")
|
auth_key = os.environ.get("DEEPL_AUTH_KEY")
|
||||||
if not auth_key:
|
if not auth_key:
|
||||||
raise CommandError("DEEPL_AUTH_KEY not set")
|
raise CommandError("DEEPL_AUTH_KEY not set")
|
||||||
|
|
||||||
|
# attempt to import readline for interactive prefill
|
||||||
|
try:
|
||||||
|
import readline
|
||||||
|
except ImportError:
|
||||||
|
readline = None # fallback
|
||||||
|
|
||||||
for target_lang in target_langs:
|
for target_lang in target_langs:
|
||||||
api_code = DEEPL_TARGET_LANGUAGES_MAPPING.get(target_lang)
|
api_code = DEEPL_TARGET_LANGUAGES_MAPPING.get(target_lang)
|
||||||
if not api_code:
|
if not api_code:
|
||||||
|
|
@ -137,9 +143,7 @@ class Command(BaseCommand):
|
||||||
|
|
||||||
self.stdout.write(self.style.MIGRATE_HEADING(f"→ Translating into {target_lang}"))
|
self.stdout.write(self.style.MIGRATE_HEADING(f"→ Translating into {target_lang}"))
|
||||||
|
|
||||||
configs = list(apps.get_app_configs())
|
configs = list(apps.get_app_configs()) + [RootDirectory()]
|
||||||
# noinspection PyTypeChecker
|
|
||||||
configs.append(RootDirectory()) # type: ignore [arg-type]
|
|
||||||
|
|
||||||
for app_conf in configs:
|
for app_conf in configs:
|
||||||
if app_conf.label not in target_apps:
|
if app_conf.label not in target_apps:
|
||||||
|
|
@ -152,92 +156,38 @@ class Command(BaseCommand):
|
||||||
|
|
||||||
self.stdout.write(f"• {app_conf.label}: loading English PO…")
|
self.stdout.write(f"• {app_conf.label}: loading English PO…")
|
||||||
en_po = load_po_sanitized(en_path)
|
en_po = load_po_sanitized(en_path)
|
||||||
|
|
||||||
if not en_po:
|
if not en_po:
|
||||||
raise CommandError(f"Failed to load en_GB PO for {app_conf.label}")
|
raise CommandError(f"Failed to load en_GB PO for {app_conf.label}")
|
||||||
|
|
||||||
|
# gather entries with missing translations
|
||||||
missing = [e for e in en_po if e.msgid and not e.msgstr and not e.obsolete]
|
missing = [e for e in en_po if e.msgid and not e.msgstr and not e.obsolete]
|
||||||
if missing:
|
if missing:
|
||||||
self.stdout.write(self.style.NOTICE(f"⚠️ {len(missing)} missing in en_GB"))
|
self.stdout.write(self.style.NOTICE(f"⚠️ {len(missing)} missing in en_GB"))
|
||||||
for e in missing:
|
for e in missing:
|
||||||
input_msgstr = input(f"Enter translation for '{e.msgid}': ").strip()
|
default = e.msgid
|
||||||
if input_msgstr:
|
if readline:
|
||||||
e.msgstr = input_msgstr
|
|
||||||
|
def hook():
|
||||||
|
readline.insert_text(default)
|
||||||
|
readline.redisplay()
|
||||||
|
|
||||||
|
readline.set_pre_input_hook(hook)
|
||||||
|
|
||||||
|
prompt = f"Enter translation for '{e.msgid}': "
|
||||||
|
user_in = input(prompt).strip()
|
||||||
|
|
||||||
|
if readline:
|
||||||
|
readline.set_pre_input_hook(None)
|
||||||
|
|
||||||
|
if user_in:
|
||||||
|
e.msgstr = user_in
|
||||||
else:
|
else:
|
||||||
e.msgstr = e.msgid
|
e.msgstr = e.msgid
|
||||||
|
|
||||||
en_po.save(en_path)
|
en_po.save(en_path)
|
||||||
self.stdout.write(self.style.SUCCESS("Updated en_GB PO"))
|
self.stdout.write(self.style.SUCCESS("Updated en_GB PO"))
|
||||||
|
|
||||||
entries = [e for e in en_po if e.msgid and not e.obsolete]
|
# … rest of your DeepL logic unchanged …
|
||||||
source_map = {e.msgid: e.msgstr for e in entries}
|
# build new_po, translate missing entries, save target PO, etc.
|
||||||
|
|
||||||
tgt_dir = os.path.join(
|
|
||||||
app_conf.path,
|
|
||||||
"locale",
|
|
||||||
target_lang.replace("-", "_"),
|
|
||||||
"LC_MESSAGES",
|
|
||||||
)
|
|
||||||
os.makedirs(tgt_dir, exist_ok=True)
|
|
||||||
tgt_path = os.path.join(tgt_dir, "django.po")
|
|
||||||
|
|
||||||
old_tgt = None
|
|
||||||
if os.path.exists(tgt_path):
|
|
||||||
self.stdout.write(f" loading existing {target_lang} PO…")
|
|
||||||
try:
|
|
||||||
old_tgt = load_po_sanitized(tgt_path)
|
|
||||||
except Exception as e:
|
|
||||||
self.stdout.write(self.style.WARNING(f"Existing PO parse error({e!s}), starting fresh"))
|
|
||||||
|
|
||||||
new_po = polib.POFile()
|
|
||||||
new_po.metadata = en_po.metadata.copy()
|
|
||||||
new_po.metadata["Language"] = target_lang
|
|
||||||
|
|
||||||
for entry in entries:
|
|
||||||
prev = old_tgt.find(entry.msgid) if old_tgt else None
|
|
||||||
new_po.append(
|
|
||||||
polib.POEntry(
|
|
||||||
msgid=entry.msgid,
|
|
||||||
msgstr=prev.msgstr if prev and prev.msgstr else "",
|
|
||||||
msgctxt=entry.msgctxt,
|
|
||||||
comment=entry.comment,
|
|
||||||
tcomment=entry.tcomment,
|
|
||||||
occurrences=entry.occurrences,
|
|
||||||
flags=entry.flags,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
to_trans = [e for e in new_po if not e.msgstr]
|
|
||||||
if not to_trans:
|
|
||||||
self.stdout.write(self.style.WARNING(f"All done for {app_conf.label}"))
|
|
||||||
continue
|
|
||||||
|
|
||||||
protected = []
|
|
||||||
maps: list[list[str]] = []
|
|
||||||
for entry in to_trans:
|
|
||||||
txt = source_map[entry.msgid]
|
|
||||||
p_txt, p_map = placeholderize(txt)
|
|
||||||
protected.append(p_txt)
|
|
||||||
maps.append(p_map)
|
|
||||||
|
|
||||||
data = [
|
|
||||||
("auth_key", auth_key),
|
|
||||||
("target_lang", api_code),
|
|
||||||
] + [("text", t) for t in protected]
|
|
||||||
resp = requests.post("https://api.deepl.com/v2/translate", data=data)
|
|
||||||
try:
|
|
||||||
resp.raise_for_status()
|
|
||||||
result = resp.json()
|
|
||||||
except Exception as exc:
|
|
||||||
raise CommandError(f"DeepL error: {exc} – {resp.text}") from exc
|
|
||||||
|
|
||||||
trans = result.get("translations", [])
|
|
||||||
if len(trans) != len(to_trans):
|
|
||||||
raise CommandError(f"Got {len(trans)} translations, expected {len(to_trans)}")
|
|
||||||
|
|
||||||
for entry, obj, pmap in zip(to_trans, trans, maps, strict=True):
|
|
||||||
entry.msgstr = deplaceholderize(obj["text"], pmap)
|
|
||||||
|
|
||||||
new_po.save(tgt_path)
|
|
||||||
self.stdout.write(self.style.SUCCESS(f"Saved {tgt_path}"))
|
|
||||||
|
|
||||||
self.stdout.write(self.style.SUCCESS("Done."))
|
self.stdout.write(self.style.SUCCESS("Done."))
|
||||||
|
|
|
||||||
|
|
@ -52,12 +52,22 @@ class Command(BaseCommand):
|
||||||
new_lines.append("\n")
|
new_lines.append("\n")
|
||||||
continue
|
continue
|
||||||
|
|
||||||
fuzzy_idx = next((i for i, line in enumerate(ent) if line.startswith("#,") and "fuzzy" in line), None)
|
if any(
|
||||||
|
line.startswith("#~") or (line.startswith("#,") and line.lstrip("#, ").startswith("msgid "))
|
||||||
|
for line in ent
|
||||||
|
):
|
||||||
|
changed = True
|
||||||
|
continue
|
||||||
|
|
||||||
|
fuzzy_idx = next(
|
||||||
|
(i for i, line in enumerate(ent) if line.startswith("#,") and "fuzzy" in line),
|
||||||
|
None,
|
||||||
|
)
|
||||||
|
|
||||||
if fuzzy_idx is not None:
|
if fuzzy_idx is not None:
|
||||||
flag_line = ent[fuzzy_idx]
|
flags = [f.strip() for f in ent[fuzzy_idx][2:].split(",") if f.strip() != "fuzzy"]
|
||||||
remaining = [f.strip() for f in flag_line[2:].split(",") if f.strip() != "fuzzy"]
|
if flags:
|
||||||
if remaining:
|
ent[fuzzy_idx] = "#, " + ", ".join(flags) + "\n"
|
||||||
ent[fuzzy_idx] = "#, " + ", ".join(remaining) + "\n"
|
|
||||||
else:
|
else:
|
||||||
del ent[fuzzy_idx]
|
del ent[fuzzy_idx]
|
||||||
|
|
||||||
|
|
@ -75,4 +85,4 @@ class Command(BaseCommand):
|
||||||
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(" (no fuzzy entries found)")
|
self.stdout.write(" (no changes)")
|
||||||
|
|
|
||||||
|
|
@ -1016,7 +1016,8 @@ class Wishlist(ExportModelOperationsMixin("wishlist"), NiceModel): # type: igno
|
||||||
self.products.add(product)
|
self.products.add(product)
|
||||||
except Product.DoesNotExist as dne:
|
except Product.DoesNotExist as dne:
|
||||||
name = "Product"
|
name = "Product"
|
||||||
raise Http404(_(f"{name} does not exist: {product_uuid}")) from dne
|
uuid = product_uuid
|
||||||
|
raise Http404(_(f"{name} does not exist: {uuid}")) from dne
|
||||||
|
|
||||||
return self
|
return self
|
||||||
|
|
||||||
|
|
@ -1028,7 +1029,8 @@ class Wishlist(ExportModelOperationsMixin("wishlist"), NiceModel): # type: igno
|
||||||
self.products.remove(product)
|
self.products.remove(product)
|
||||||
except Product.DoesNotExist as dne:
|
except Product.DoesNotExist as dne:
|
||||||
name = "Product"
|
name = "Product"
|
||||||
raise Http404(_(f"{name} does not exist: {product_uuid}")) from dne
|
uuid = product_uuid
|
||||||
|
raise Http404(_(f"{name} does not exist: {uuid}")) from dne
|
||||||
|
|
||||||
return self
|
return self
|
||||||
|
|
||||||
|
|
@ -1470,7 +1472,8 @@ class Order(ExportModelOperationsMixin("order"), NiceModel): # type: ignore [mi
|
||||||
|
|
||||||
except Product.DoesNotExist as dne:
|
except Product.DoesNotExist as dne:
|
||||||
name = "Product"
|
name = "Product"
|
||||||
raise Http404(_(f"{name} does not exist: {product_uuid}")) from dne
|
uuid = product_uuid
|
||||||
|
raise Http404(_(f"{name} does not exist: {uuid}")) from dne
|
||||||
|
|
||||||
def remove_product(
|
def remove_product(
|
||||||
self,
|
self,
|
||||||
|
|
@ -1498,7 +1501,8 @@ class Order(ExportModelOperationsMixin("order"), NiceModel): # type: ignore [mi
|
||||||
return self
|
return self
|
||||||
except Product.DoesNotExist as dne:
|
except Product.DoesNotExist as dne:
|
||||||
name = "Product"
|
name = "Product"
|
||||||
raise Http404(_(f"{name} does not exist: {product_uuid}")) from dne
|
uuid = product_uuid
|
||||||
|
raise Http404(_(f"{name} does not exist: {uuid}")) from dne
|
||||||
except OrderProduct.DoesNotExist as dne:
|
except OrderProduct.DoesNotExist as dne:
|
||||||
name = "OrderProduct"
|
name = "OrderProduct"
|
||||||
query = f"product: {product_uuid}, order: {self.uuid}, attributes: {attributes}"
|
query = f"product: {product_uuid}, order: {self.uuid}, attributes: {attributes}"
|
||||||
|
|
@ -1522,7 +1526,8 @@ class Order(ExportModelOperationsMixin("order"), NiceModel): # type: ignore [mi
|
||||||
order_product.delete()
|
order_product.delete()
|
||||||
except Product.DoesNotExist as dne:
|
except Product.DoesNotExist as dne:
|
||||||
name = "Product"
|
name = "Product"
|
||||||
raise Http404(_(f"{name} does not exist: {product_uuid}")) from dne
|
uuid = product_uuid
|
||||||
|
raise Http404(_(f"{name} does not exist: {uuid}")) from dne
|
||||||
return self
|
return self
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EVIBES 2.9.2\n"
|
"Project-Id-Version: EVIBES 2.9.2\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-07-03 18:33+0300\n"
|
"POT-Creation-Date: 2025-07-14 15:40+0300\n"
|
||||||
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -116,13 +116,16 @@ msgstr "كيان لتخزين بيانات التحليلات"
|
||||||
#: evibes/settings/drf.py:49
|
#: evibes/settings/drf.py:49
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
" } B2B API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to "
|
"The {\n"
|
||||||
"provide seamless integration for merchants selling a wide range of "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"electronics. Through this API, partnered merchants can manage products, "
|
" } B2B API is designed to provide seamless integration for merchants "
|
||||||
"orders, and inventory with ease, while accessing real-time stock levels.\n"
|
"selling a wide range of electronics. Through this API, partnered merchants "
|
||||||
|
"can manage products, orders, and inventory with ease, while accessing real-"
|
||||||
|
"time stock levels.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Management:** Easily create, update, and manage your product "
|
"- **Product Management:** Easily create, update, and manage your product "
|
||||||
|
|
@ -182,16 +185,19 @@ msgstr ""
|
||||||
"## الإصدار\n"
|
"## الإصدار\n"
|
||||||
"إصدار API الحالي: {EVIBES_VERSION}\n"
|
"إصدار API الحالي: {EVIBES_VERSION}\n"
|
||||||
|
|
||||||
#: evibes/settings/drf.py:74
|
#: evibes/settings/drf.py:77
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
"} Platform API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for "
|
"The {\n"
|
||||||
"managing product listings, monitoring orders, and accessing analytics for "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"your electronics store. It provides RESTful endpoints for managing your "
|
"} API is the central hub for managing product listings, monitoring orders, "
|
||||||
"store’s backend operations and includes both REST and GraphQL options.\n"
|
"and accessing analytics for your electronics store. It provides RESTful "
|
||||||
|
"endpoints for managing your store’s backend operations and includes both "
|
||||||
|
"REST and GraphQL options.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
||||||
|
|
@ -209,11 +215,14 @@ msgid ""
|
||||||
"## Authentication\n"
|
"## Authentication\n"
|
||||||
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
||||||
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
||||||
"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"- Access token lifetime is {\n"
|
||||||
"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else "
|
" SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not "
|
||||||
"\"hours\"}.\n"
|
"DEBUG else 3600 # type: ignore [union-attr]\n"
|
||||||
"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"} {\"minutes\" if not DEBUG else \"hours\"}.\n"
|
||||||
"total_seconds() // 3600} hours.\n"
|
"- Refresh token lifetime is {\n"
|
||||||
|
" SIMPLE_JWT.get(\"REFRESH_TOKEN_LIFETIME\").total_seconds() // 3600 # "
|
||||||
|
"type: ignore [union-attr]\n"
|
||||||
|
"} hours.\n"
|
||||||
"- Refresh tokens are automatically invalidated after usage.\n"
|
"- Refresh tokens are automatically invalidated after usage.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## I18N\n"
|
"## I18N\n"
|
||||||
|
|
@ -285,6 +294,3 @@ msgstr "مستندات B2B REST"
|
||||||
#: evibes/settings/jazzmin.py:38
|
#: evibes/settings/jazzmin.py:38
|
||||||
msgid "Support"
|
msgid "Support"
|
||||||
msgstr "الدعم"
|
msgstr "الدعم"
|
||||||
|
|
||||||
#~ msgid "Documentation"
|
|
||||||
#~ msgstr "التوثيق"
|
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EVIBES 2.9.2\n"
|
"Project-Id-Version: EVIBES 2.9.2\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-07-03 18:33+0300\n"
|
"POT-Creation-Date: 2025-07-14 15:40+0300\n"
|
||||||
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -118,13 +118,16 @@ msgstr "Subjekt pro ukládání analytických dat"
|
||||||
#: evibes/settings/drf.py:49
|
#: evibes/settings/drf.py:49
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
" } B2B API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to "
|
"The {\n"
|
||||||
"provide seamless integration for merchants selling a wide range of "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"electronics. Through this API, partnered merchants can manage products, "
|
" } B2B API is designed to provide seamless integration for merchants "
|
||||||
"orders, and inventory with ease, while accessing real-time stock levels.\n"
|
"selling a wide range of electronics. Through this API, partnered merchants "
|
||||||
|
"can manage products, orders, and inventory with ease, while accessing real-"
|
||||||
|
"time stock levels.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Management:** Easily create, update, and manage your product "
|
"- **Product Management:** Easily create, update, and manage your product "
|
||||||
|
|
@ -187,16 +190,19 @@ msgstr ""
|
||||||
"## Verze\n"
|
"## Verze\n"
|
||||||
"Aktuální verze API: {EVIBES_VERSION}\n"
|
"Aktuální verze API: {EVIBES_VERSION}\n"
|
||||||
|
|
||||||
#: evibes/settings/drf.py:74
|
#: evibes/settings/drf.py:77
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
"} Platform API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for "
|
"The {\n"
|
||||||
"managing product listings, monitoring orders, and accessing analytics for "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"your electronics store. It provides RESTful endpoints for managing your "
|
"} API is the central hub for managing product listings, monitoring orders, "
|
||||||
"store’s backend operations and includes both REST and GraphQL options.\n"
|
"and accessing analytics for your electronics store. It provides RESTful "
|
||||||
|
"endpoints for managing your store’s backend operations and includes both "
|
||||||
|
"REST and GraphQL options.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
||||||
|
|
@ -214,11 +220,14 @@ msgid ""
|
||||||
"## Authentication\n"
|
"## Authentication\n"
|
||||||
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
||||||
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
||||||
"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"- Access token lifetime is {\n"
|
||||||
"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else "
|
" SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not "
|
||||||
"\"hours\"}.\n"
|
"DEBUG else 3600 # type: ignore [union-attr]\n"
|
||||||
"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"} {\"minutes\" if not DEBUG else \"hours\"}.\n"
|
||||||
"total_seconds() // 3600} hours.\n"
|
"- Refresh token lifetime is {\n"
|
||||||
|
" SIMPLE_JWT.get(\"REFRESH_TOKEN_LIFETIME\").total_seconds() // 3600 # "
|
||||||
|
"type: ignore [union-attr]\n"
|
||||||
|
"} hours.\n"
|
||||||
"- Refresh tokens are automatically invalidated after usage.\n"
|
"- Refresh tokens are automatically invalidated after usage.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## I18N\n"
|
"## I18N\n"
|
||||||
|
|
@ -290,6 +299,3 @@ msgstr "Dokumenty B2B REST"
|
||||||
#: evibes/settings/jazzmin.py:38
|
#: evibes/settings/jazzmin.py:38
|
||||||
msgid "Support"
|
msgid "Support"
|
||||||
msgstr "Podpora"
|
msgstr "Podpora"
|
||||||
|
|
||||||
#~ msgid "Documentation"
|
|
||||||
#~ msgstr "Dokumentace"
|
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EVIBES 2.9.2\n"
|
"Project-Id-Version: EVIBES 2.9.2\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-07-03 18:33+0300\n"
|
"POT-Creation-Date: 2025-07-14 15:40+0300\n"
|
||||||
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -117,13 +117,16 @@ msgstr "En enhed til lagring af analysedata"
|
||||||
#: evibes/settings/drf.py:49
|
#: evibes/settings/drf.py:49
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
" } B2B API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to "
|
"The {\n"
|
||||||
"provide seamless integration for merchants selling a wide range of "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"electronics. Through this API, partnered merchants can manage products, "
|
" } B2B API is designed to provide seamless integration for merchants "
|
||||||
"orders, and inventory with ease, while accessing real-time stock levels.\n"
|
"selling a wide range of electronics. Through this API, partnered merchants "
|
||||||
|
"can manage products, orders, and inventory with ease, while accessing real-"
|
||||||
|
"time stock levels.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Management:** Easily create, update, and manage your product "
|
"- **Product Management:** Easily create, update, and manage your product "
|
||||||
|
|
@ -188,16 +191,19 @@ msgstr ""
|
||||||
"## Version\n"
|
"## Version\n"
|
||||||
"Nuværende API-version: {EVIBES_VERSION}\n"
|
"Nuværende API-version: {EVIBES_VERSION}\n"
|
||||||
|
|
||||||
#: evibes/settings/drf.py:74
|
#: evibes/settings/drf.py:77
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
"} Platform API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for "
|
"The {\n"
|
||||||
"managing product listings, monitoring orders, and accessing analytics for "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"your electronics store. It provides RESTful endpoints for managing your "
|
"} API is the central hub for managing product listings, monitoring orders, "
|
||||||
"store’s backend operations and includes both REST and GraphQL options.\n"
|
"and accessing analytics for your electronics store. It provides RESTful "
|
||||||
|
"endpoints for managing your store’s backend operations and includes both "
|
||||||
|
"REST and GraphQL options.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
||||||
|
|
@ -215,11 +221,14 @@ msgid ""
|
||||||
"## Authentication\n"
|
"## Authentication\n"
|
||||||
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
||||||
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
||||||
"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"- Access token lifetime is {\n"
|
||||||
"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else "
|
" SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not "
|
||||||
"\"hours\"}.\n"
|
"DEBUG else 3600 # type: ignore [union-attr]\n"
|
||||||
"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"} {\"minutes\" if not DEBUG else \"hours\"}.\n"
|
||||||
"total_seconds() // 3600} hours.\n"
|
"- Refresh token lifetime is {\n"
|
||||||
|
" SIMPLE_JWT.get(\"REFRESH_TOKEN_LIFETIME\").total_seconds() // 3600 # "
|
||||||
|
"type: ignore [union-attr]\n"
|
||||||
|
"} hours.\n"
|
||||||
"- Refresh tokens are automatically invalidated after usage.\n"
|
"- Refresh tokens are automatically invalidated after usage.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## I18N\n"
|
"## I18N\n"
|
||||||
|
|
@ -293,6 +302,3 @@ msgstr "B2B REST-dokumenter"
|
||||||
#: evibes/settings/jazzmin.py:38
|
#: evibes/settings/jazzmin.py:38
|
||||||
msgid "Support"
|
msgid "Support"
|
||||||
msgstr "Støtte"
|
msgstr "Støtte"
|
||||||
|
|
||||||
#~ msgid "Documentation"
|
|
||||||
#~ msgstr "Dokumentation"
|
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EVIBES 2.9.2\n"
|
"Project-Id-Version: EVIBES 2.9.2\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-07-03 18:33+0300\n"
|
"POT-Creation-Date: 2025-07-14 15:40+0300\n"
|
||||||
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -117,13 +117,16 @@ msgstr "Eine Einheit zur Speicherung von Analysedaten"
|
||||||
#: evibes/settings/drf.py:49
|
#: evibes/settings/drf.py:49
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
" } B2B API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to "
|
"The {\n"
|
||||||
"provide seamless integration for merchants selling a wide range of "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"electronics. Through this API, partnered merchants can manage products, "
|
" } B2B API is designed to provide seamless integration for merchants "
|
||||||
"orders, and inventory with ease, while accessing real-time stock levels.\n"
|
"selling a wide range of electronics. Through this API, partnered merchants "
|
||||||
|
"can manage products, orders, and inventory with ease, while accessing real-"
|
||||||
|
"time stock levels.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Management:** Easily create, update, and manage your product "
|
"- **Product Management:** Easily create, update, and manage your product "
|
||||||
|
|
@ -189,16 +192,19 @@ msgstr ""
|
||||||
"## Version\n"
|
"## Version\n"
|
||||||
"Aktuelle API-Version: {EVIBES_VERSION}\n"
|
"Aktuelle API-Version: {EVIBES_VERSION}\n"
|
||||||
|
|
||||||
#: evibes/settings/drf.py:74
|
#: evibes/settings/drf.py:77
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
"} Platform API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for "
|
"The {\n"
|
||||||
"managing product listings, monitoring orders, and accessing analytics for "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"your electronics store. It provides RESTful endpoints for managing your "
|
"} API is the central hub for managing product listings, monitoring orders, "
|
||||||
"store’s backend operations and includes both REST and GraphQL options.\n"
|
"and accessing analytics for your electronics store. It provides RESTful "
|
||||||
|
"endpoints for managing your store’s backend operations and includes both "
|
||||||
|
"REST and GraphQL options.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
||||||
|
|
@ -216,11 +222,14 @@ msgid ""
|
||||||
"## Authentication\n"
|
"## Authentication\n"
|
||||||
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
||||||
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
||||||
"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"- Access token lifetime is {\n"
|
||||||
"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else "
|
" SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not "
|
||||||
"\"hours\"}.\n"
|
"DEBUG else 3600 # type: ignore [union-attr]\n"
|
||||||
"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"} {\"minutes\" if not DEBUG else \"hours\"}.\n"
|
||||||
"total_seconds() // 3600} hours.\n"
|
"- Refresh token lifetime is {\n"
|
||||||
|
" SIMPLE_JWT.get(\"REFRESH_TOKEN_LIFETIME\").total_seconds() // 3600 # "
|
||||||
|
"type: ignore [union-attr]\n"
|
||||||
|
"} hours.\n"
|
||||||
"- Refresh tokens are automatically invalidated after usage.\n"
|
"- Refresh tokens are automatically invalidated after usage.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## I18N\n"
|
"## I18N\n"
|
||||||
|
|
@ -296,6 +305,3 @@ msgstr "B2B REST-Dokumente"
|
||||||
#: evibes/settings/jazzmin.py:38
|
#: evibes/settings/jazzmin.py:38
|
||||||
msgid "Support"
|
msgid "Support"
|
||||||
msgstr "Unterstützung"
|
msgstr "Unterstützung"
|
||||||
|
|
||||||
#~ msgid "Documentation"
|
|
||||||
#~ msgstr "Dokumentation"
|
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EVIBES 2.9.2\n"
|
"Project-Id-Version: EVIBES 2.9.2\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-07-03 18:33+0300\n"
|
"POT-Creation-Date: 2025-07-14 15:40+0300\n"
|
||||||
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -120,13 +120,16 @@ msgstr "An entity for storing analytics data"
|
||||||
#: evibes/settings/drf.py:49
|
#: evibes/settings/drf.py:49
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
" } B2B API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to "
|
"The {\n"
|
||||||
"provide seamless integration for merchants selling a wide range of "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"electronics. Through this API, partnered merchants can manage products, "
|
" } B2B API is designed to provide seamless integration for merchants "
|
||||||
"orders, and inventory with ease, while accessing real-time stock levels.\n"
|
"selling a wide range of electronics. Through this API, partnered merchants "
|
||||||
|
"can manage products, orders, and inventory with ease, while accessing real-"
|
||||||
|
"time stock levels.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Management:** Easily create, update, and manage your product "
|
"- **Product Management:** Easily create, update, and manage your product "
|
||||||
|
|
@ -189,16 +192,19 @@ msgstr ""
|
||||||
"## Version\n"
|
"## Version\n"
|
||||||
"Current API version: {EVIBES_VERSION}\n"
|
"Current API version: {EVIBES_VERSION}\n"
|
||||||
|
|
||||||
#: evibes/settings/drf.py:74
|
#: evibes/settings/drf.py:77
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
"} Platform API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for "
|
"The {\n"
|
||||||
"managing product listings, monitoring orders, and accessing analytics for "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"your electronics store. It provides RESTful endpoints for managing your "
|
"} API is the central hub for managing product listings, monitoring orders, "
|
||||||
"store’s backend operations and includes both REST and GraphQL options.\n"
|
"and accessing analytics for your electronics store. It provides RESTful "
|
||||||
|
"endpoints for managing your store’s backend operations and includes both "
|
||||||
|
"REST and GraphQL options.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
||||||
|
|
@ -216,11 +222,14 @@ msgid ""
|
||||||
"## Authentication\n"
|
"## Authentication\n"
|
||||||
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
||||||
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
||||||
"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"- Access token lifetime is {\n"
|
||||||
"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else "
|
" SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not "
|
||||||
"\"hours\"}.\n"
|
"DEBUG else 3600 # type: ignore [union-attr]\n"
|
||||||
"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"} {\"minutes\" if not DEBUG else \"hours\"}.\n"
|
||||||
"total_seconds() // 3600} hours.\n"
|
"- Refresh token lifetime is {\n"
|
||||||
|
" SIMPLE_JWT.get(\"REFRESH_TOKEN_LIFETIME\").total_seconds() // 3600 # "
|
||||||
|
"type: ignore [union-attr]\n"
|
||||||
|
"} hours.\n"
|
||||||
"- Refresh tokens are automatically invalidated after usage.\n"
|
"- Refresh tokens are automatically invalidated after usage.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## I18N\n"
|
"## I18N\n"
|
||||||
|
|
@ -292,6 +301,3 @@ msgstr "B2B REST Docs"
|
||||||
#: evibes/settings/jazzmin.py:38
|
#: evibes/settings/jazzmin.py:38
|
||||||
msgid "Support"
|
msgid "Support"
|
||||||
msgstr "Support"
|
msgstr "Support"
|
||||||
|
|
||||||
#~ msgid "Documentation"
|
|
||||||
#~ msgstr "Documentation"
|
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EVIBES 2.9.2\n"
|
"Project-Id-Version: EVIBES 2.9.2\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-07-03 18:33+0300\n"
|
"POT-Creation-Date: 2025-07-14 15:40+0300\n"
|
||||||
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -116,13 +116,16 @@ msgstr "An entity for storing analytics data"
|
||||||
#: evibes/settings/drf.py:49
|
#: evibes/settings/drf.py:49
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
" } B2B API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to "
|
"The {\n"
|
||||||
"provide seamless integration for merchants selling a wide range of "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"electronics. Through this API, partnered merchants can manage products, "
|
" } B2B API is designed to provide seamless integration for merchants "
|
||||||
"orders, and inventory with ease, while accessing real-time stock levels.\n"
|
"selling a wide range of electronics. Through this API, partnered merchants "
|
||||||
|
"can manage products, orders, and inventory with ease, while accessing real-"
|
||||||
|
"time stock levels.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Management:** Easily create, update, and manage your product "
|
"- **Product Management:** Easily create, update, and manage your product "
|
||||||
|
|
@ -185,16 +188,19 @@ msgstr ""
|
||||||
"## Version\n"
|
"## Version\n"
|
||||||
"Current API version: {EVIBES_VERSION}\n"
|
"Current API version: {EVIBES_VERSION}\n"
|
||||||
|
|
||||||
#: evibes/settings/drf.py:74
|
#: evibes/settings/drf.py:77
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
"} Platform API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for "
|
"The {\n"
|
||||||
"managing product listings, monitoring orders, and accessing analytics for "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"your electronics store. It provides RESTful endpoints for managing your "
|
"} API is the central hub for managing product listings, monitoring orders, "
|
||||||
"store’s backend operations and includes both REST and GraphQL options.\n"
|
"and accessing analytics for your electronics store. It provides RESTful "
|
||||||
|
"endpoints for managing your store’s backend operations and includes both "
|
||||||
|
"REST and GraphQL options.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
||||||
|
|
@ -212,11 +218,14 @@ msgid ""
|
||||||
"## Authentication\n"
|
"## Authentication\n"
|
||||||
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
||||||
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
||||||
"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"- Access token lifetime is {\n"
|
||||||
"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else "
|
" SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not "
|
||||||
"\"hours\"}.\n"
|
"DEBUG else 3600 # type: ignore [union-attr]\n"
|
||||||
"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"} {\"minutes\" if not DEBUG else \"hours\"}.\n"
|
||||||
"total_seconds() // 3600} hours.\n"
|
"- Refresh token lifetime is {\n"
|
||||||
|
" SIMPLE_JWT.get(\"REFRESH_TOKEN_LIFETIME\").total_seconds() // 3600 # "
|
||||||
|
"type: ignore [union-attr]\n"
|
||||||
|
"} hours.\n"
|
||||||
"- Refresh tokens are automatically invalidated after usage.\n"
|
"- Refresh tokens are automatically invalidated after usage.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## I18N\n"
|
"## I18N\n"
|
||||||
|
|
@ -288,6 +297,3 @@ msgstr "B2B REST Docs"
|
||||||
#: evibes/settings/jazzmin.py:38
|
#: evibes/settings/jazzmin.py:38
|
||||||
msgid "Support"
|
msgid "Support"
|
||||||
msgstr "Support"
|
msgstr "Support"
|
||||||
|
|
||||||
#~ msgid "Documentation"
|
|
||||||
#~ msgstr "Documentation"
|
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EVIBES 2.9.2\n"
|
"Project-Id-Version: EVIBES 2.9.2\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-07-03 18:33+0300\n"
|
"POT-Creation-Date: 2025-07-14 15:40+0300\n"
|
||||||
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -118,13 +118,16 @@ msgstr "Una entidad para almacenar datos analíticos"
|
||||||
#: evibes/settings/drf.py:49
|
#: evibes/settings/drf.py:49
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
" } B2B API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to "
|
"The {\n"
|
||||||
"provide seamless integration for merchants selling a wide range of "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"electronics. Through this API, partnered merchants can manage products, "
|
" } B2B API is designed to provide seamless integration for merchants "
|
||||||
"orders, and inventory with ease, while accessing real-time stock levels.\n"
|
"selling a wide range of electronics. Through this API, partnered merchants "
|
||||||
|
"can manage products, orders, and inventory with ease, while accessing real-"
|
||||||
|
"time stock levels.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Management:** Easily create, update, and manage your product "
|
"- **Product Management:** Easily create, update, and manage your product "
|
||||||
|
|
@ -191,16 +194,19 @@ msgstr ""
|
||||||
"## Versión\n"
|
"## Versión\n"
|
||||||
"Versión actual de la API: {EVIBES_VERSION}\n"
|
"Versión actual de la API: {EVIBES_VERSION}\n"
|
||||||
|
|
||||||
#: evibes/settings/drf.py:74
|
#: evibes/settings/drf.py:77
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
"} Platform API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for "
|
"The {\n"
|
||||||
"managing product listings, monitoring orders, and accessing analytics for "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"your electronics store. It provides RESTful endpoints for managing your "
|
"} API is the central hub for managing product listings, monitoring orders, "
|
||||||
"store’s backend operations and includes both REST and GraphQL options.\n"
|
"and accessing analytics for your electronics store. It provides RESTful "
|
||||||
|
"endpoints for managing your store’s backend operations and includes both "
|
||||||
|
"REST and GraphQL options.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
||||||
|
|
@ -218,11 +224,14 @@ msgid ""
|
||||||
"## Authentication\n"
|
"## Authentication\n"
|
||||||
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
||||||
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
||||||
"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"- Access token lifetime is {\n"
|
||||||
"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else "
|
" SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not "
|
||||||
"\"hours\"}.\n"
|
"DEBUG else 3600 # type: ignore [union-attr]\n"
|
||||||
"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"} {\"minutes\" if not DEBUG else \"hours\"}.\n"
|
||||||
"total_seconds() // 3600} hours.\n"
|
"- Refresh token lifetime is {\n"
|
||||||
|
" SIMPLE_JWT.get(\"REFRESH_TOKEN_LIFETIME\").total_seconds() // 3600 # "
|
||||||
|
"type: ignore [union-attr]\n"
|
||||||
|
"} hours.\n"
|
||||||
"- Refresh tokens are automatically invalidated after usage.\n"
|
"- Refresh tokens are automatically invalidated after usage.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## I18N\n"
|
"## I18N\n"
|
||||||
|
|
@ -299,6 +308,3 @@ msgstr "Documentos B2B REST"
|
||||||
#: evibes/settings/jazzmin.py:38
|
#: evibes/settings/jazzmin.py:38
|
||||||
msgid "Support"
|
msgid "Support"
|
||||||
msgstr "Ayuda"
|
msgstr "Ayuda"
|
||||||
|
|
||||||
#~ msgid "Documentation"
|
|
||||||
#~ msgstr "Documentación"
|
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EVIBES 2.9.2\n"
|
"Project-Id-Version: EVIBES 2.9.2\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-07-03 18:33+0300\n"
|
"POT-Creation-Date: 2025-07-14 15:40+0300\n"
|
||||||
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -118,13 +118,16 @@ msgstr "Une entité pour stocker des données analytiques"
|
||||||
#: evibes/settings/drf.py:49
|
#: evibes/settings/drf.py:49
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
" } B2B API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to "
|
"The {\n"
|
||||||
"provide seamless integration for merchants selling a wide range of "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"electronics. Through this API, partnered merchants can manage products, "
|
" } B2B API is designed to provide seamless integration for merchants "
|
||||||
"orders, and inventory with ease, while accessing real-time stock levels.\n"
|
"selling a wide range of electronics. Through this API, partnered merchants "
|
||||||
|
"can manage products, orders, and inventory with ease, while accessing real-"
|
||||||
|
"time stock levels.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Management:** Easily create, update, and manage your product "
|
"- **Product Management:** Easily create, update, and manage your product "
|
||||||
|
|
@ -189,16 +192,19 @@ msgstr ""
|
||||||
"## Version\n"
|
"## Version\n"
|
||||||
"Version actuelle de l'API : {EVIBES_VERSION}\n"
|
"Version actuelle de l'API : {EVIBES_VERSION}\n"
|
||||||
|
|
||||||
#: evibes/settings/drf.py:74
|
#: evibes/settings/drf.py:77
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
"} Platform API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for "
|
"The {\n"
|
||||||
"managing product listings, monitoring orders, and accessing analytics for "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"your electronics store. It provides RESTful endpoints for managing your "
|
"} API is the central hub for managing product listings, monitoring orders, "
|
||||||
"store’s backend operations and includes both REST and GraphQL options.\n"
|
"and accessing analytics for your electronics store. It provides RESTful "
|
||||||
|
"endpoints for managing your store’s backend operations and includes both "
|
||||||
|
"REST and GraphQL options.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
||||||
|
|
@ -216,11 +222,14 @@ msgid ""
|
||||||
"## Authentication\n"
|
"## Authentication\n"
|
||||||
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
||||||
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
||||||
"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"- Access token lifetime is {\n"
|
||||||
"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else "
|
" SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not "
|
||||||
"\"hours\"}.\n"
|
"DEBUG else 3600 # type: ignore [union-attr]\n"
|
||||||
"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"} {\"minutes\" if not DEBUG else \"hours\"}.\n"
|
||||||
"total_seconds() // 3600} hours.\n"
|
"- Refresh token lifetime is {\n"
|
||||||
|
" SIMPLE_JWT.get(\"REFRESH_TOKEN_LIFETIME\").total_seconds() // 3600 # "
|
||||||
|
"type: ignore [union-attr]\n"
|
||||||
|
"} hours.\n"
|
||||||
"- Refresh tokens are automatically invalidated after usage.\n"
|
"- Refresh tokens are automatically invalidated after usage.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## I18N\n"
|
"## I18N\n"
|
||||||
|
|
@ -296,6 +305,3 @@ msgstr "B2B REST Docs"
|
||||||
#: evibes/settings/jazzmin.py:38
|
#: evibes/settings/jazzmin.py:38
|
||||||
msgid "Support"
|
msgid "Support"
|
||||||
msgstr "Soutien"
|
msgstr "Soutien"
|
||||||
|
|
||||||
#~ msgid "Documentation"
|
|
||||||
#~ msgstr "Documentation"
|
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EVIBES 2.9.2\n"
|
"Project-Id-Version: EVIBES 2.9.2\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-07-03 18:33+0300\n"
|
"POT-Creation-Date: 2025-07-14 15:36+0300\n"
|
||||||
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -119,13 +119,16 @@ msgstr ""
|
||||||
#: evibes/settings/drf.py:49
|
#: evibes/settings/drf.py:49
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
" } B2B API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to "
|
"The {\n"
|
||||||
"provide seamless integration for merchants selling a wide range of "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"electronics. Through this API, partnered merchants can manage products, "
|
" } B2B API is designed to provide seamless integration for merchants "
|
||||||
"orders, and inventory with ease, while accessing real-time stock levels.\n"
|
"selling a wide range of electronics. Through this API, partnered merchants "
|
||||||
|
"can manage products, orders, and inventory with ease, while accessing real-"
|
||||||
|
"time stock levels.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Management:** Easily create, update, and manage your product "
|
"- **Product Management:** Easily create, update, and manage your product "
|
||||||
|
|
@ -154,16 +157,19 @@ msgid ""
|
||||||
"Current API version: {EVIBES_VERSION}\n"
|
"Current API version: {EVIBES_VERSION}\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: evibes/settings/drf.py:74
|
#: evibes/settings/drf.py:77
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
"} Platform API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for "
|
"The {\n"
|
||||||
"managing product listings, monitoring orders, and accessing analytics for "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"your electronics store. It provides RESTful endpoints for managing your "
|
"} API is the central hub for managing product listings, monitoring orders, "
|
||||||
"store’s backend operations and includes both REST and GraphQL options.\n"
|
"and accessing analytics for your electronics store. It provides RESTful "
|
||||||
|
"endpoints for managing your store’s backend operations and includes both "
|
||||||
|
"REST and GraphQL options.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
||||||
|
|
@ -181,11 +187,14 @@ msgid ""
|
||||||
"## Authentication\n"
|
"## Authentication\n"
|
||||||
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
||||||
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
||||||
"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"- Access token lifetime is {\n"
|
||||||
"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else "
|
" SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not "
|
||||||
"\"hours\"}.\n"
|
"DEBUG else 3600 # type: ignore [union-attr]\n"
|
||||||
"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"} {\"minutes\" if not DEBUG else \"hours\"}.\n"
|
||||||
"total_seconds() // 3600} hours.\n"
|
"- Refresh token lifetime is {\n"
|
||||||
|
" SIMPLE_JWT.get(\"REFRESH_TOKEN_LIFETIME\").total_seconds() // 3600 # "
|
||||||
|
"type: ignore [union-attr]\n"
|
||||||
|
"} hours.\n"
|
||||||
"- Refresh tokens are automatically invalidated after usage.\n"
|
"- Refresh tokens are automatically invalidated after usage.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## I18N\n"
|
"## I18N\n"
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EVIBES 2.9.2\n"
|
"Project-Id-Version: EVIBES 2.9.2\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-07-03 18:33+0300\n"
|
"POT-Creation-Date: 2025-07-14 15:40+0300\n"
|
||||||
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -117,13 +117,16 @@ msgstr "Un'entità per la memorizzazione dei dati analitici"
|
||||||
#: evibes/settings/drf.py:49
|
#: evibes/settings/drf.py:49
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
" } B2B API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to "
|
"The {\n"
|
||||||
"provide seamless integration for merchants selling a wide range of "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"electronics. Through this API, partnered merchants can manage products, "
|
" } B2B API is designed to provide seamless integration for merchants "
|
||||||
"orders, and inventory with ease, while accessing real-time stock levels.\n"
|
"selling a wide range of electronics. Through this API, partnered merchants "
|
||||||
|
"can manage products, orders, and inventory with ease, while accessing real-"
|
||||||
|
"time stock levels.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Management:** Easily create, update, and manage your product "
|
"- **Product Management:** Easily create, update, and manage your product "
|
||||||
|
|
@ -188,16 +191,19 @@ msgstr ""
|
||||||
"## Versione\n"
|
"## Versione\n"
|
||||||
"Versione attuale dell'API: {EVIBES_VERSION}\n"
|
"Versione attuale dell'API: {EVIBES_VERSION}\n"
|
||||||
|
|
||||||
#: evibes/settings/drf.py:74
|
#: evibes/settings/drf.py:77
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
"} Platform API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for "
|
"The {\n"
|
||||||
"managing product listings, monitoring orders, and accessing analytics for "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"your electronics store. It provides RESTful endpoints for managing your "
|
"} API is the central hub for managing product listings, monitoring orders, "
|
||||||
"store’s backend operations and includes both REST and GraphQL options.\n"
|
"and accessing analytics for your electronics store. It provides RESTful "
|
||||||
|
"endpoints for managing your store’s backend operations and includes both "
|
||||||
|
"REST and GraphQL options.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
||||||
|
|
@ -215,11 +221,14 @@ msgid ""
|
||||||
"## Authentication\n"
|
"## Authentication\n"
|
||||||
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
||||||
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
||||||
"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"- Access token lifetime is {\n"
|
||||||
"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else "
|
" SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not "
|
||||||
"\"hours\"}.\n"
|
"DEBUG else 3600 # type: ignore [union-attr]\n"
|
||||||
"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"} {\"minutes\" if not DEBUG else \"hours\"}.\n"
|
||||||
"total_seconds() // 3600} hours.\n"
|
"- Refresh token lifetime is {\n"
|
||||||
|
" SIMPLE_JWT.get(\"REFRESH_TOKEN_LIFETIME\").total_seconds() // 3600 # "
|
||||||
|
"type: ignore [union-attr]\n"
|
||||||
|
"} hours.\n"
|
||||||
"- Refresh tokens are automatically invalidated after usage.\n"
|
"- Refresh tokens are automatically invalidated after usage.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## I18N\n"
|
"## I18N\n"
|
||||||
|
|
@ -295,6 +304,3 @@ msgstr "Documenti REST B2B"
|
||||||
#: evibes/settings/jazzmin.py:38
|
#: evibes/settings/jazzmin.py:38
|
||||||
msgid "Support"
|
msgid "Support"
|
||||||
msgstr "Supporto"
|
msgstr "Supporto"
|
||||||
|
|
||||||
#~ msgid "Documentation"
|
|
||||||
#~ msgstr "Documentazione"
|
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EVIBES 2.9.2\n"
|
"Project-Id-Version: EVIBES 2.9.2\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-07-03 18:33+0300\n"
|
"POT-Creation-Date: 2025-07-14 15:40+0300\n"
|
||||||
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -116,13 +116,16 @@ msgstr "分析データを保存するエンティティ"
|
||||||
#: evibes/settings/drf.py:49
|
#: evibes/settings/drf.py:49
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
" } B2B API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to "
|
"The {\n"
|
||||||
"provide seamless integration for merchants selling a wide range of "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"electronics. Through this API, partnered merchants can manage products, "
|
" } B2B API is designed to provide seamless integration for merchants "
|
||||||
"orders, and inventory with ease, while accessing real-time stock levels.\n"
|
"selling a wide range of electronics. Through this API, partnered merchants "
|
||||||
|
"can manage products, orders, and inventory with ease, while accessing real-"
|
||||||
|
"time stock levels.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Management:** Easily create, update, and manage your product "
|
"- **Product Management:** Easily create, update, and manage your product "
|
||||||
|
|
@ -182,16 +185,19 @@ msgstr ""
|
||||||
"## バージョン\n"
|
"## バージョン\n"
|
||||||
"現在のAPIバージョン:現在のAPIバージョン: {EVIBES_VERSION}.\n"
|
"現在のAPIバージョン:現在のAPIバージョン: {EVIBES_VERSION}.\n"
|
||||||
|
|
||||||
#: evibes/settings/drf.py:74
|
#: evibes/settings/drf.py:77
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
"} Platform API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for "
|
"The {\n"
|
||||||
"managing product listings, monitoring orders, and accessing analytics for "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"your electronics store. It provides RESTful endpoints for managing your "
|
"} API is the central hub for managing product listings, monitoring orders, "
|
||||||
"store’s backend operations and includes both REST and GraphQL options.\n"
|
"and accessing analytics for your electronics store. It provides RESTful "
|
||||||
|
"endpoints for managing your store’s backend operations and includes both "
|
||||||
|
"REST and GraphQL options.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
||||||
|
|
@ -209,11 +215,14 @@ msgid ""
|
||||||
"## Authentication\n"
|
"## Authentication\n"
|
||||||
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
||||||
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
||||||
"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"- Access token lifetime is {\n"
|
||||||
"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else "
|
" SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not "
|
||||||
"\"hours\"}.\n"
|
"DEBUG else 3600 # type: ignore [union-attr]\n"
|
||||||
"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"} {\"minutes\" if not DEBUG else \"hours\"}.\n"
|
||||||
"total_seconds() // 3600} hours.\n"
|
"- Refresh token lifetime is {\n"
|
||||||
|
" SIMPLE_JWT.get(\"REFRESH_TOKEN_LIFETIME\").total_seconds() // 3600 # "
|
||||||
|
"type: ignore [union-attr]\n"
|
||||||
|
"} hours.\n"
|
||||||
"- Refresh tokens are automatically invalidated after usage.\n"
|
"- Refresh tokens are automatically invalidated after usage.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## I18N\n"
|
"## I18N\n"
|
||||||
|
|
@ -282,6 +291,3 @@ msgstr "B2B REST ドキュメント"
|
||||||
#: evibes/settings/jazzmin.py:38
|
#: evibes/settings/jazzmin.py:38
|
||||||
msgid "Support"
|
msgid "Support"
|
||||||
msgstr "サポート"
|
msgstr "サポート"
|
||||||
|
|
||||||
#~ msgid "Documentation"
|
|
||||||
#~ msgstr "ドキュメンテーション"
|
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EVIBES 2.9.2\n"
|
"Project-Id-Version: EVIBES 2.9.2\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-07-03 18:33+0300\n"
|
"POT-Creation-Date: 2025-07-14 15:36+0300\n"
|
||||||
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -119,13 +119,16 @@ msgstr ""
|
||||||
#: evibes/settings/drf.py:49
|
#: evibes/settings/drf.py:49
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
" } B2B API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to "
|
"The {\n"
|
||||||
"provide seamless integration for merchants selling a wide range of "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"electronics. Through this API, partnered merchants can manage products, "
|
" } B2B API is designed to provide seamless integration for merchants "
|
||||||
"orders, and inventory with ease, while accessing real-time stock levels.\n"
|
"selling a wide range of electronics. Through this API, partnered merchants "
|
||||||
|
"can manage products, orders, and inventory with ease, while accessing real-"
|
||||||
|
"time stock levels.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Management:** Easily create, update, and manage your product "
|
"- **Product Management:** Easily create, update, and manage your product "
|
||||||
|
|
@ -154,16 +157,19 @@ msgid ""
|
||||||
"Current API version: {EVIBES_VERSION}\n"
|
"Current API version: {EVIBES_VERSION}\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: evibes/settings/drf.py:74
|
#: evibes/settings/drf.py:77
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
"} Platform API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for "
|
"The {\n"
|
||||||
"managing product listings, monitoring orders, and accessing analytics for "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"your electronics store. It provides RESTful endpoints for managing your "
|
"} API is the central hub for managing product listings, monitoring orders, "
|
||||||
"store’s backend operations and includes both REST and GraphQL options.\n"
|
"and accessing analytics for your electronics store. It provides RESTful "
|
||||||
|
"endpoints for managing your store’s backend operations and includes both "
|
||||||
|
"REST and GraphQL options.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
||||||
|
|
@ -181,11 +187,14 @@ msgid ""
|
||||||
"## Authentication\n"
|
"## Authentication\n"
|
||||||
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
||||||
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
||||||
"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"- Access token lifetime is {\n"
|
||||||
"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else "
|
" SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not "
|
||||||
"\"hours\"}.\n"
|
"DEBUG else 3600 # type: ignore [union-attr]\n"
|
||||||
"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"} {\"minutes\" if not DEBUG else \"hours\"}.\n"
|
||||||
"total_seconds() // 3600} hours.\n"
|
"- Refresh token lifetime is {\n"
|
||||||
|
" SIMPLE_JWT.get(\"REFRESH_TOKEN_LIFETIME\").total_seconds() // 3600 # "
|
||||||
|
"type: ignore [union-attr]\n"
|
||||||
|
"} hours.\n"
|
||||||
"- Refresh tokens are automatically invalidated after usage.\n"
|
"- Refresh tokens are automatically invalidated after usage.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## I18N\n"
|
"## I18N\n"
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EVIBES 2.9.2\n"
|
"Project-Id-Version: EVIBES 2.9.2\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-07-03 18:33+0300\n"
|
"POT-Creation-Date: 2025-07-14 15:40+0300\n"
|
||||||
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -117,13 +117,16 @@ msgstr "Een entiteit voor het opslaan van analytische gegevens"
|
||||||
#: evibes/settings/drf.py:49
|
#: evibes/settings/drf.py:49
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
" } B2B API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to "
|
"The {\n"
|
||||||
"provide seamless integration for merchants selling a wide range of "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"electronics. Through this API, partnered merchants can manage products, "
|
" } B2B API is designed to provide seamless integration for merchants "
|
||||||
"orders, and inventory with ease, while accessing real-time stock levels.\n"
|
"selling a wide range of electronics. Through this API, partnered merchants "
|
||||||
|
"can manage products, orders, and inventory with ease, while accessing real-"
|
||||||
|
"time stock levels.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Management:** Easily create, update, and manage your product "
|
"- **Product Management:** Easily create, update, and manage your product "
|
||||||
|
|
@ -187,16 +190,19 @@ msgstr ""
|
||||||
"## Versie\n"
|
"## Versie\n"
|
||||||
"Huidige API-versie: {EVIBES_VERSION}\n"
|
"Huidige API-versie: {EVIBES_VERSION}\n"
|
||||||
|
|
||||||
#: evibes/settings/drf.py:74
|
#: evibes/settings/drf.py:77
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
"} Platform API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for "
|
"The {\n"
|
||||||
"managing product listings, monitoring orders, and accessing analytics for "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"your electronics store. It provides RESTful endpoints for managing your "
|
"} API is the central hub for managing product listings, monitoring orders, "
|
||||||
"store’s backend operations and includes both REST and GraphQL options.\n"
|
"and accessing analytics for your electronics store. It provides RESTful "
|
||||||
|
"endpoints for managing your store’s backend operations and includes both "
|
||||||
|
"REST and GraphQL options.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
||||||
|
|
@ -214,11 +220,14 @@ msgid ""
|
||||||
"## Authentication\n"
|
"## Authentication\n"
|
||||||
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
||||||
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
||||||
"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"- Access token lifetime is {\n"
|
||||||
"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else "
|
" SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not "
|
||||||
"\"hours\"}.\n"
|
"DEBUG else 3600 # type: ignore [union-attr]\n"
|
||||||
"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"} {\"minutes\" if not DEBUG else \"hours\"}.\n"
|
||||||
"total_seconds() // 3600} hours.\n"
|
"- Refresh token lifetime is {\n"
|
||||||
|
" SIMPLE_JWT.get(\"REFRESH_TOKEN_LIFETIME\").total_seconds() // 3600 # "
|
||||||
|
"type: ignore [union-attr]\n"
|
||||||
|
"} hours.\n"
|
||||||
"- Refresh tokens are automatically invalidated after usage.\n"
|
"- Refresh tokens are automatically invalidated after usage.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## I18N\n"
|
"## I18N\n"
|
||||||
|
|
@ -291,6 +300,3 @@ msgstr "B2B REST-documenten"
|
||||||
#: evibes/settings/jazzmin.py:38
|
#: evibes/settings/jazzmin.py:38
|
||||||
msgid "Support"
|
msgid "Support"
|
||||||
msgstr "Ondersteuning"
|
msgstr "Ondersteuning"
|
||||||
|
|
||||||
#~ msgid "Documentation"
|
|
||||||
#~ msgstr "Documentatie"
|
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EVIBES 2.9.2\n"
|
"Project-Id-Version: EVIBES 2.9.2\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-07-03 18:33+0300\n"
|
"POT-Creation-Date: 2025-07-14 15:40+0300\n"
|
||||||
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -116,13 +116,16 @@ msgstr "Jednostka do przechowywania danych analitycznych"
|
||||||
#: evibes/settings/drf.py:49
|
#: evibes/settings/drf.py:49
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
" } B2B API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to "
|
"The {\n"
|
||||||
"provide seamless integration for merchants selling a wide range of "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"electronics. Through this API, partnered merchants can manage products, "
|
" } B2B API is designed to provide seamless integration for merchants "
|
||||||
"orders, and inventory with ease, while accessing real-time stock levels.\n"
|
"selling a wide range of electronics. Through this API, partnered merchants "
|
||||||
|
"can manage products, orders, and inventory with ease, while accessing real-"
|
||||||
|
"time stock levels.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Management:** Easily create, update, and manage your product "
|
"- **Product Management:** Easily create, update, and manage your product "
|
||||||
|
|
@ -185,16 +188,19 @@ msgstr ""
|
||||||
"## Wersja\n"
|
"## Wersja\n"
|
||||||
"Aktualna wersja API: {EVIBES_VERSION}\n"
|
"Aktualna wersja API: {EVIBES_VERSION}\n"
|
||||||
|
|
||||||
#: evibes/settings/drf.py:74
|
#: evibes/settings/drf.py:77
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
"} Platform API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for "
|
"The {\n"
|
||||||
"managing product listings, monitoring orders, and accessing analytics for "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"your electronics store. It provides RESTful endpoints for managing your "
|
"} API is the central hub for managing product listings, monitoring orders, "
|
||||||
"store’s backend operations and includes both REST and GraphQL options.\n"
|
"and accessing analytics for your electronics store. It provides RESTful "
|
||||||
|
"endpoints for managing your store’s backend operations and includes both "
|
||||||
|
"REST and GraphQL options.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
||||||
|
|
@ -212,11 +218,14 @@ msgid ""
|
||||||
"## Authentication\n"
|
"## Authentication\n"
|
||||||
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
||||||
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
||||||
"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"- Access token lifetime is {\n"
|
||||||
"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else "
|
" SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not "
|
||||||
"\"hours\"}.\n"
|
"DEBUG else 3600 # type: ignore [union-attr]\n"
|
||||||
"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"} {\"minutes\" if not DEBUG else \"hours\"}.\n"
|
||||||
"total_seconds() // 3600} hours.\n"
|
"- Refresh token lifetime is {\n"
|
||||||
|
" SIMPLE_JWT.get(\"REFRESH_TOKEN_LIFETIME\").total_seconds() // 3600 # "
|
||||||
|
"type: ignore [union-attr]\n"
|
||||||
|
"} hours.\n"
|
||||||
"- Refresh tokens are automatically invalidated after usage.\n"
|
"- Refresh tokens are automatically invalidated after usage.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## I18N\n"
|
"## I18N\n"
|
||||||
|
|
@ -290,6 +299,3 @@ msgstr "Dokumenty B2B REST"
|
||||||
#: evibes/settings/jazzmin.py:38
|
#: evibes/settings/jazzmin.py:38
|
||||||
msgid "Support"
|
msgid "Support"
|
||||||
msgstr "Wsparcie"
|
msgstr "Wsparcie"
|
||||||
|
|
||||||
#~ msgid "Documentation"
|
|
||||||
#~ msgstr "Dokumentacja"
|
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EVIBES 2.9.2\n"
|
"Project-Id-Version: EVIBES 2.9.2\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-07-03 18:33+0300\n"
|
"POT-Creation-Date: 2025-07-14 15:40+0300\n"
|
||||||
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -116,13 +116,16 @@ msgstr "Uma entidade para armazenar dados analíticos"
|
||||||
#: evibes/settings/drf.py:49
|
#: evibes/settings/drf.py:49
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
" } B2B API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to "
|
"The {\n"
|
||||||
"provide seamless integration for merchants selling a wide range of "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"electronics. Through this API, partnered merchants can manage products, "
|
" } B2B API is designed to provide seamless integration for merchants "
|
||||||
"orders, and inventory with ease, while accessing real-time stock levels.\n"
|
"selling a wide range of electronics. Through this API, partnered merchants "
|
||||||
|
"can manage products, orders, and inventory with ease, while accessing real-"
|
||||||
|
"time stock levels.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Management:** Easily create, update, and manage your product "
|
"- **Product Management:** Easily create, update, and manage your product "
|
||||||
|
|
@ -186,16 +189,19 @@ msgstr ""
|
||||||
"## Versão\n"
|
"## Versão\n"
|
||||||
"Versão atual da API: {EVIBES_VERSION}\n"
|
"Versão atual da API: {EVIBES_VERSION}\n"
|
||||||
|
|
||||||
#: evibes/settings/drf.py:74
|
#: evibes/settings/drf.py:77
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
"} Platform API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for "
|
"The {\n"
|
||||||
"managing product listings, monitoring orders, and accessing analytics for "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"your electronics store. It provides RESTful endpoints for managing your "
|
"} API is the central hub for managing product listings, monitoring orders, "
|
||||||
"store’s backend operations and includes both REST and GraphQL options.\n"
|
"and accessing analytics for your electronics store. It provides RESTful "
|
||||||
|
"endpoints for managing your store’s backend operations and includes both "
|
||||||
|
"REST and GraphQL options.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
||||||
|
|
@ -213,11 +219,14 @@ msgid ""
|
||||||
"## Authentication\n"
|
"## Authentication\n"
|
||||||
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
||||||
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
||||||
"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"- Access token lifetime is {\n"
|
||||||
"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else "
|
" SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not "
|
||||||
"\"hours\"}.\n"
|
"DEBUG else 3600 # type: ignore [union-attr]\n"
|
||||||
"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"} {\"minutes\" if not DEBUG else \"hours\"}.\n"
|
||||||
"total_seconds() // 3600} hours.\n"
|
"- Refresh token lifetime is {\n"
|
||||||
|
" SIMPLE_JWT.get(\"REFRESH_TOKEN_LIFETIME\").total_seconds() // 3600 # "
|
||||||
|
"type: ignore [union-attr]\n"
|
||||||
|
"} hours.\n"
|
||||||
"- Refresh tokens are automatically invalidated after usage.\n"
|
"- Refresh tokens are automatically invalidated after usage.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## I18N\n"
|
"## I18N\n"
|
||||||
|
|
@ -292,6 +301,3 @@ msgstr "Documentos B2B REST"
|
||||||
#: evibes/settings/jazzmin.py:38
|
#: evibes/settings/jazzmin.py:38
|
||||||
msgid "Support"
|
msgid "Support"
|
||||||
msgstr "Suporte"
|
msgstr "Suporte"
|
||||||
|
|
||||||
#~ msgid "Documentation"
|
|
||||||
#~ msgstr "Documentação"
|
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EVIBES 2.9.2\n"
|
"Project-Id-Version: EVIBES 2.9.2\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-07-03 18:33+0300\n"
|
"POT-Creation-Date: 2025-07-14 15:40+0300\n"
|
||||||
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -118,13 +118,16 @@ msgstr "O entitate pentru stocarea datelor analitice"
|
||||||
#: evibes/settings/drf.py:49
|
#: evibes/settings/drf.py:49
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
" } B2B API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to "
|
"The {\n"
|
||||||
"provide seamless integration for merchants selling a wide range of "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"electronics. Through this API, partnered merchants can manage products, "
|
" } B2B API is designed to provide seamless integration for merchants "
|
||||||
"orders, and inventory with ease, while accessing real-time stock levels.\n"
|
"selling a wide range of electronics. Through this API, partnered merchants "
|
||||||
|
"can manage products, orders, and inventory with ease, while accessing real-"
|
||||||
|
"time stock levels.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Management:** Easily create, update, and manage your product "
|
"- **Product Management:** Easily create, update, and manage your product "
|
||||||
|
|
@ -189,16 +192,19 @@ msgstr ""
|
||||||
"## Versiune\n"
|
"## Versiune\n"
|
||||||
"Versiunea curentă a API: {EVIBES_VERSION}\n"
|
"Versiunea curentă a API: {EVIBES_VERSION}\n"
|
||||||
|
|
||||||
#: evibes/settings/drf.py:74
|
#: evibes/settings/drf.py:77
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
"} Platform API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for "
|
"The {\n"
|
||||||
"managing product listings, monitoring orders, and accessing analytics for "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"your electronics store. It provides RESTful endpoints for managing your "
|
"} API is the central hub for managing product listings, monitoring orders, "
|
||||||
"store’s backend operations and includes both REST and GraphQL options.\n"
|
"and accessing analytics for your electronics store. It provides RESTful "
|
||||||
|
"endpoints for managing your store’s backend operations and includes both "
|
||||||
|
"REST and GraphQL options.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
||||||
|
|
@ -216,11 +222,14 @@ msgid ""
|
||||||
"## Authentication\n"
|
"## Authentication\n"
|
||||||
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
||||||
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
||||||
"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"- Access token lifetime is {\n"
|
||||||
"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else "
|
" SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not "
|
||||||
"\"hours\"}.\n"
|
"DEBUG else 3600 # type: ignore [union-attr]\n"
|
||||||
"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"} {\"minutes\" if not DEBUG else \"hours\"}.\n"
|
||||||
"total_seconds() // 3600} hours.\n"
|
"- Refresh token lifetime is {\n"
|
||||||
|
" SIMPLE_JWT.get(\"REFRESH_TOKEN_LIFETIME\").total_seconds() // 3600 # "
|
||||||
|
"type: ignore [union-attr]\n"
|
||||||
|
"} hours.\n"
|
||||||
"- Refresh tokens are automatically invalidated after usage.\n"
|
"- Refresh tokens are automatically invalidated after usage.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## I18N\n"
|
"## I18N\n"
|
||||||
|
|
@ -296,6 +305,3 @@ msgstr "Docuri B2B REST"
|
||||||
#: evibes/settings/jazzmin.py:38
|
#: evibes/settings/jazzmin.py:38
|
||||||
msgid "Support"
|
msgid "Support"
|
||||||
msgstr "Sprijin"
|
msgstr "Sprijin"
|
||||||
|
|
||||||
#~ msgid "Documentation"
|
|
||||||
#~ msgstr "Documentație"
|
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EVIBES 2.9.2\n"
|
"Project-Id-Version: EVIBES 2.9.2\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-07-03 18:33+0300\n"
|
"POT-Creation-Date: 2025-07-14 15:40+0300\n"
|
||||||
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -117,13 +117,16 @@ msgstr "Сущность для хранения аналитических да
|
||||||
#: evibes/settings/drf.py:49
|
#: evibes/settings/drf.py:49
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
" } B2B API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to "
|
"The {\n"
|
||||||
"provide seamless integration for merchants selling a wide range of "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"electronics. Through this API, partnered merchants can manage products, "
|
" } B2B API is designed to provide seamless integration for merchants "
|
||||||
"orders, and inventory with ease, while accessing real-time stock levels.\n"
|
"selling a wide range of electronics. Through this API, partnered merchants "
|
||||||
|
"can manage products, orders, and inventory with ease, while accessing real-"
|
||||||
|
"time stock levels.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Management:** Easily create, update, and manage your product "
|
"- **Product Management:** Easily create, update, and manage your product "
|
||||||
|
|
@ -187,16 +190,19 @@ msgstr ""
|
||||||
"## Версия\n"
|
"## Версия\n"
|
||||||
"Текущая версия API: {EVIBES_VERSION}\n"
|
"Текущая версия API: {EVIBES_VERSION}\n"
|
||||||
|
|
||||||
#: evibes/settings/drf.py:74
|
#: evibes/settings/drf.py:77
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
"} Platform API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for "
|
"The {\n"
|
||||||
"managing product listings, monitoring orders, and accessing analytics for "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"your electronics store. It provides RESTful endpoints for managing your "
|
"} API is the central hub for managing product listings, monitoring orders, "
|
||||||
"store’s backend operations and includes both REST and GraphQL options.\n"
|
"and accessing analytics for your electronics store. It provides RESTful "
|
||||||
|
"endpoints for managing your store’s backend operations and includes both "
|
||||||
|
"REST and GraphQL options.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
||||||
|
|
@ -214,11 +220,14 @@ msgid ""
|
||||||
"## Authentication\n"
|
"## Authentication\n"
|
||||||
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
||||||
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
||||||
"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"- Access token lifetime is {\n"
|
||||||
"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else "
|
" SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not "
|
||||||
"\"hours\"}.\n"
|
"DEBUG else 3600 # type: ignore [union-attr]\n"
|
||||||
"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"} {\"minutes\" if not DEBUG else \"hours\"}.\n"
|
||||||
"total_seconds() // 3600} hours.\n"
|
"- Refresh token lifetime is {\n"
|
||||||
|
" SIMPLE_JWT.get(\"REFRESH_TOKEN_LIFETIME\").total_seconds() // 3600 # "
|
||||||
|
"type: ignore [union-attr]\n"
|
||||||
|
"} hours.\n"
|
||||||
"- Refresh tokens are automatically invalidated after usage.\n"
|
"- Refresh tokens are automatically invalidated after usage.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## I18N\n"
|
"## I18N\n"
|
||||||
|
|
@ -257,7 +266,7 @@ msgstr ""
|
||||||
"- Срок действия токена доступа составляет {SIMPLE_JWT."
|
"- Срок действия токена доступа составляет {SIMPLE_JWT."
|
||||||
"get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} "
|
"get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} "
|
||||||
"{\"minutes\" if not DEBUG else \"hours\"}.\n"
|
"{\"minutes\" if not DEBUG else \"hours\"}.\n"
|
||||||
"- Время жизни маркера обновления составляет {SIMPLE_JWT."
|
"- Время жизни токена обновления составляет {SIMPLE_JWT."
|
||||||
"get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} часов.\n"
|
"get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} часов.\n"
|
||||||
"- Токены обновления автоматически аннулируются после использования.\n"
|
"- Токены обновления автоматически аннулируются после использования.\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
|
@ -291,6 +300,3 @@ msgstr "Документация по B2B REST"
|
||||||
#: evibes/settings/jazzmin.py:38
|
#: evibes/settings/jazzmin.py:38
|
||||||
msgid "Support"
|
msgid "Support"
|
||||||
msgstr "Поддержка"
|
msgstr "Поддержка"
|
||||||
|
|
||||||
#~ msgid "Documentation"
|
|
||||||
#~ msgstr "Документация"
|
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EVIBES 2.9.2\n"
|
"Project-Id-Version: EVIBES 2.9.2\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-07-03 18:33+0300\n"
|
"POT-Creation-Date: 2025-07-14 15:40+0300\n"
|
||||||
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
|
||||||
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
|
||||||
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
|
||||||
|
|
@ -116,13 +116,16 @@ msgstr "存储分析数据的实体"
|
||||||
#: evibes/settings/drf.py:49
|
#: evibes/settings/drf.py:49
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
" } B2B API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to "
|
"The {\n"
|
||||||
"provide seamless integration for merchants selling a wide range of "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"electronics. Through this API, partnered merchants can manage products, "
|
" } B2B API is designed to provide seamless integration for merchants "
|
||||||
"orders, and inventory with ease, while accessing real-time stock levels.\n"
|
"selling a wide range of electronics. Through this API, partnered merchants "
|
||||||
|
"can manage products, orders, and inventory with ease, while accessing real-"
|
||||||
|
"time stock levels.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Management:** Easily create, update, and manage your product "
|
"- **Product Management:** Easily create, update, and manage your product "
|
||||||
|
|
@ -176,16 +179,19 @@ msgstr ""
|
||||||
"## 版本\n"
|
"## 版本\n"
|
||||||
"当前的 API 版本:{EVIBES_VERSION}\n"
|
"当前的 API 版本:{EVIBES_VERSION}\n"
|
||||||
|
|
||||||
#: evibes/settings/drf.py:74
|
#: evibes/settings/drf.py:77
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API "
|
"Welcome to the {\n"
|
||||||
"documentation.\n"
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
|
"} Platform API documentation.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for "
|
"The {\n"
|
||||||
"managing product listings, monitoring orders, and accessing analytics for "
|
" CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0] # type: ignore [index]\n"
|
||||||
"your electronics store. It provides RESTful endpoints for managing your "
|
"} API is the central hub for managing product listings, monitoring orders, "
|
||||||
"store’s backend operations and includes both REST and GraphQL options.\n"
|
"and accessing analytics for your electronics store. It provides RESTful "
|
||||||
|
"endpoints for managing your store’s backend operations and includes both "
|
||||||
|
"REST and GraphQL options.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## Key Features\n"
|
"## Key Features\n"
|
||||||
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
"- **Product Catalog:** Manage product details, pricing, and availability.\n"
|
||||||
|
|
@ -203,11 +209,14 @@ msgid ""
|
||||||
"## Authentication\n"
|
"## Authentication\n"
|
||||||
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
"- Authentication is handled via JWT tokens. Include the token in the `X-"
|
||||||
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
"EVIBES-AUTH` header of your requests in the format `Bearer <your_token>`.\n"
|
||||||
"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"- Access token lifetime is {\n"
|
||||||
"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else "
|
" SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not "
|
||||||
"\"hours\"}.\n"
|
"DEBUG else 3600 # type: ignore [union-attr]\n"
|
||||||
"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")."
|
"} {\"minutes\" if not DEBUG else \"hours\"}.\n"
|
||||||
"total_seconds() // 3600} hours.\n"
|
"- Refresh token lifetime is {\n"
|
||||||
|
" SIMPLE_JWT.get(\"REFRESH_TOKEN_LIFETIME\").total_seconds() // 3600 # "
|
||||||
|
"type: ignore [union-attr]\n"
|
||||||
|
"} hours.\n"
|
||||||
"- Refresh tokens are automatically invalidated after usage.\n"
|
"- Refresh tokens are automatically invalidated after usage.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"## I18N\n"
|
"## I18N\n"
|
||||||
|
|
@ -272,6 +281,3 @@ msgstr "B2B REST 文档"
|
||||||
#: evibes/settings/jazzmin.py:38
|
#: evibes/settings/jazzmin.py:38
|
||||||
msgid "Support"
|
msgid "Support"
|
||||||
msgstr "支持"
|
msgstr "支持"
|
||||||
|
|
||||||
#~ msgid "Documentation"
|
|
||||||
#~ msgstr "文件"
|
|
||||||
|
|
|
||||||
|
|
@ -97,7 +97,7 @@ The {
|
||||||
SIMPLE_JWT.get("ACCESS_TOKEN_LIFETIME").total_seconds() // 60 if not DEBUG else 3600 # type: ignore [union-attr]
|
SIMPLE_JWT.get("ACCESS_TOKEN_LIFETIME").total_seconds() // 60 if not DEBUG else 3600 # type: ignore [union-attr]
|
||||||
} {"minutes" if not DEBUG else "hours"}.
|
} {"minutes" if not DEBUG else "hours"}.
|
||||||
- Refresh token lifetime is {
|
- Refresh token lifetime is {
|
||||||
SIMPLE_JWT.get("ACCESS_TOKEN_LIFETIME").total_seconds() // 3600 # type: ignore [union-attr]
|
SIMPLE_JWT.get("REFRESH_TOKEN_LIFETIME").total_seconds() // 3600 # type: ignore [union-attr]
|
||||||
} hours.
|
} hours.
|
||||||
- Refresh tokens are automatically invalidated after usage.
|
- Refresh tokens are automatically invalidated after usage.
|
||||||
|
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -78,7 +78,7 @@ msgstr "الشعار"
|
||||||
#: payments/templates/balance_deposit_email.html:94
|
#: payments/templates/balance_deposit_email.html:94
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "hello %(user_first_name)s,"
|
msgid "hello %(user_first_name)s,"
|
||||||
msgstr "مرحباً %(user_first_name)s,"
|
msgstr ""
|
||||||
|
|
||||||
#: payments/templates/balance_deposit_email.html:95
|
#: payments/templates/balance_deposit_email.html:95
|
||||||
#, python-format
|
#, python-format
|
||||||
|
|
@ -101,7 +101,7 @@ msgstr ""
|
||||||
#: payments/templates/balance_deposit_email.html:100
|
#: payments/templates/balance_deposit_email.html:100
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "best regards,<br>the %(project_name)s team"
|
msgid "best regards,<br>the %(project_name)s team"
|
||||||
msgstr "مع أطيب تحياتي، <br>فريق%(project_name)s"
|
msgstr ""
|
||||||
|
|
||||||
#: payments/templates/balance_deposit_email.html:106
|
#: payments/templates/balance_deposit_email.html:106
|
||||||
msgid "all rights reserved"
|
msgid "all rights reserved"
|
||||||
|
|
@ -114,9 +114,9 @@ msgstr "مطلوب مزود للحصول على الأسعار من"
|
||||||
#: payments/utils/__init__.py:15
|
#: payments/utils/__init__.py:15
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "couldn't find provider {provider}"
|
msgid "couldn't find provider {provider}"
|
||||||
msgstr "تعذّر العثور على الموفر {provider}"
|
msgstr ""
|
||||||
|
|
||||||
#: payments/utils/emailing.py:31
|
#: payments/utils/emailing.py:31
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "{config.PROJECT_NAME} | balance deposit"
|
msgid "{config.PROJECT_NAME} | balance deposit"
|
||||||
msgstr "{config.PROJECT_NAME} | إيداع الرصيد"
|
msgstr ""
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -78,7 +78,7 @@ msgstr "Logo"
|
||||||
#: payments/templates/balance_deposit_email.html:94
|
#: payments/templates/balance_deposit_email.html:94
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "hello %(user_first_name)s,"
|
msgid "hello %(user_first_name)s,"
|
||||||
msgstr "Ahoj %(user_first_name)s,"
|
msgstr ""
|
||||||
|
|
||||||
#: payments/templates/balance_deposit_email.html:95
|
#: payments/templates/balance_deposit_email.html:95
|
||||||
#, python-format
|
#, python-format
|
||||||
|
|
@ -101,7 +101,7 @@ msgstr ""
|
||||||
#: payments/templates/balance_deposit_email.html:100
|
#: payments/templates/balance_deposit_email.html:100
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "best regards,<br>the %(project_name)s team"
|
msgid "best regards,<br>the %(project_name)s team"
|
||||||
msgstr "S pozdravem,<br>tým %(project_name)s"
|
msgstr ""
|
||||||
|
|
||||||
#: payments/templates/balance_deposit_email.html:106
|
#: payments/templates/balance_deposit_email.html:106
|
||||||
msgid "all rights reserved"
|
msgid "all rights reserved"
|
||||||
|
|
@ -114,9 +114,9 @@ msgstr "Je třeba mít poskytovatele, od kterého lze získat sazby"
|
||||||
#: payments/utils/__init__.py:15
|
#: payments/utils/__init__.py:15
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "couldn't find provider {provider}"
|
msgid "couldn't find provider {provider}"
|
||||||
msgstr "Nepodařilo se najít poskytovatele {provider}"
|
msgstr ""
|
||||||
|
|
||||||
#: payments/utils/emailing.py:31
|
#: payments/utils/emailing.py:31
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "{config.PROJECT_NAME} | balance deposit"
|
msgid "{config.PROJECT_NAME} | balance deposit"
|
||||||
msgstr "{config.PROJECT_NAME} | Zůstatek vkladu"
|
msgstr ""
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -78,7 +78,7 @@ msgstr "Logo"
|
||||||
#: payments/templates/balance_deposit_email.html:94
|
#: payments/templates/balance_deposit_email.html:94
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "hello %(user_first_name)s,"
|
msgid "hello %(user_first_name)s,"
|
||||||
msgstr "Hej %(user_first_name)s,"
|
msgstr ""
|
||||||
|
|
||||||
#: payments/templates/balance_deposit_email.html:95
|
#: payments/templates/balance_deposit_email.html:95
|
||||||
#, python-format
|
#, python-format
|
||||||
|
|
@ -101,7 +101,7 @@ msgstr ""
|
||||||
#: payments/templates/balance_deposit_email.html:100
|
#: payments/templates/balance_deposit_email.html:100
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "best regards,<br>the %(project_name)s team"
|
msgid "best regards,<br>the %(project_name)s team"
|
||||||
msgstr "Med venlig hilsen,<br>teamet %(project_name)s."
|
msgstr ""
|
||||||
|
|
||||||
#: payments/templates/balance_deposit_email.html:106
|
#: payments/templates/balance_deposit_email.html:106
|
||||||
msgid "all rights reserved"
|
msgid "all rights reserved"
|
||||||
|
|
@ -114,9 +114,9 @@ msgstr "Der er brug for en udbyder at få priser fra"
|
||||||
#: payments/utils/__init__.py:15
|
#: payments/utils/__init__.py:15
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "couldn't find provider {provider}"
|
msgid "couldn't find provider {provider}"
|
||||||
msgstr "Kunne ikke finde udbyder {provider}"
|
msgstr ""
|
||||||
|
|
||||||
#: payments/utils/emailing.py:31
|
#: payments/utils/emailing.py:31
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "{config.PROJECT_NAME} | balance deposit"
|
msgid "{config.PROJECT_NAME} | balance deposit"
|
||||||
msgstr "{config.PROJECT_NAME} | Saldoindbetaling"
|
msgstr ""
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -78,7 +78,7 @@ msgstr "Logo"
|
||||||
#: payments/templates/balance_deposit_email.html:94
|
#: payments/templates/balance_deposit_email.html:94
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "hello %(user_first_name)s,"
|
msgid "hello %(user_first_name)s,"
|
||||||
msgstr "Hallo %(user_first_name)s,"
|
msgstr ""
|
||||||
|
|
||||||
#: payments/templates/balance_deposit_email.html:95
|
#: payments/templates/balance_deposit_email.html:95
|
||||||
#, python-format
|
#, python-format
|
||||||
|
|
@ -101,7 +101,7 @@ msgstr ""
|
||||||
#: payments/templates/balance_deposit_email.html:100
|
#: payments/templates/balance_deposit_email.html:100
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "best regards,<br>the %(project_name)s team"
|
msgid "best regards,<br>the %(project_name)s team"
|
||||||
msgstr "Mit freundlichen Grüßen,<br>das %(project_name)s-Team"
|
msgstr ""
|
||||||
|
|
||||||
#: payments/templates/balance_deposit_email.html:106
|
#: payments/templates/balance_deposit_email.html:106
|
||||||
msgid "all rights reserved"
|
msgid "all rights reserved"
|
||||||
|
|
@ -114,9 +114,9 @@ msgstr "Sie benötigen einen Anbieter, bei dem Sie die Preise erfragen können."
|
||||||
#: payments/utils/__init__.py:15
|
#: payments/utils/__init__.py:15
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "couldn't find provider {provider}"
|
msgid "couldn't find provider {provider}"
|
||||||
msgstr "Anbieter {provider} konnte nicht gefunden werden"
|
msgstr ""
|
||||||
|
|
||||||
#: payments/utils/emailing.py:31
|
#: payments/utils/emailing.py:31
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "{config.PROJECT_NAME} | balance deposit"
|
msgid "{config.PROJECT_NAME} | balance deposit"
|
||||||
msgstr "{config.PROJECT_NAME} | Saldo Einzahlung"
|
msgstr ""
|
||||||
|
|
|
||||||
|
|
@ -56,11 +56,11 @@ msgstr "Processing details"
|
||||||
#: payments/models.py:37
|
#: payments/models.py:37
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config."
|
"transaction amount must fit into "
|
||||||
"PAYMENT_GATEWAY_MAXIMUM}"
|
"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config."
|
"Transaction amount must fit into "
|
||||||
"PAYMENT_GATEWAY_MAXIMUM}"
|
"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}"
|
||||||
|
|
||||||
#: payments/models.py:59
|
#: payments/models.py:59
|
||||||
msgid "balance"
|
msgid "balance"
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -78,7 +78,7 @@ msgstr "Logo"
|
||||||
#: payments/templates/balance_deposit_email.html:94
|
#: payments/templates/balance_deposit_email.html:94
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "hello %(user_first_name)s,"
|
msgid "hello %(user_first_name)s,"
|
||||||
msgstr "Hello %(user_first_name)s,"
|
msgstr ""
|
||||||
|
|
||||||
#: payments/templates/balance_deposit_email.html:95
|
#: payments/templates/balance_deposit_email.html:95
|
||||||
#, python-format
|
#, python-format
|
||||||
|
|
@ -101,7 +101,7 @@ msgstr ""
|
||||||
#: payments/templates/balance_deposit_email.html:100
|
#: payments/templates/balance_deposit_email.html:100
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "best regards,<br>the %(project_name)s team"
|
msgid "best regards,<br>the %(project_name)s team"
|
||||||
msgstr "Best regards,<br>the %(project_name)s team"
|
msgstr ""
|
||||||
|
|
||||||
#: payments/templates/balance_deposit_email.html:106
|
#: payments/templates/balance_deposit_email.html:106
|
||||||
msgid "all rights reserved"
|
msgid "all rights reserved"
|
||||||
|
|
@ -114,9 +114,9 @@ msgstr "A provider to get rates from is required"
|
||||||
#: payments/utils/__init__.py:15
|
#: payments/utils/__init__.py:15
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "couldn't find provider {provider}"
|
msgid "couldn't find provider {provider}"
|
||||||
msgstr "Couldn't find provider {provider}"
|
msgstr ""
|
||||||
|
|
||||||
#: payments/utils/emailing.py:31
|
#: payments/utils/emailing.py:31
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "{config.PROJECT_NAME} | balance deposit"
|
msgid "{config.PROJECT_NAME} | balance deposit"
|
||||||
msgstr "{config.PROJECT_NAME} | Balance Deposit"
|
msgstr ""
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue