Преглед на файлове

refactor: fragmented master translation files for safer management

unknown преди 20 часа
родител
ревизия
62e809c18a
променени са 50 файла, в които са добавени 4957 реда и са изтрити 221 реда
  1. 49 5
      scripts/manage_locales.py
  2. 136 0
      src/locales/master_admin/actions.json
  3. 8 0
      src/locales/master_admin/addNew.json
  4. 8 0
      src/locales/master_admin/allStatuses.json
  5. 8 0
      src/locales/master_admin/dashboard.json
  6. 358 0
      src/locales/master_admin/fields.json
  7. 8 0
      src/locales/master_admin/filters.json
  8. 8 0
      src/locales/master_admin/from.json
  9. 100 0
      src/locales/master_admin/labels.json
  10. 8 0
      src/locales/master_admin/managementCenter.json
  11. 70 0
      src/locales/master_admin/modals.json
  12. 16 0
      src/locales/master_admin/questions.json
  13. 8 0
      src/locales/master_admin/reset.json
  14. 94 0
      src/locales/master_admin/reviews.json
  15. 8 0
      src/locales/master_admin/searchPlaceholder.json
  16. 8 0
      src/locales/master_admin/searchUsersPlaceholder.json
  17. 58 0
      src/locales/master_admin/tabs.json
  18. 8 0
      src/locales/master_admin/to.json
  19. 142 0
      src/locales/master_admin/toasts.json
  20. 8 0
      src/locales/master_admin/total.json
  21. 20 0
      src/locales/master_admin/warehouse.json
  22. 152 0
      src/locales/master_user/about.json
  23. 12 0
      src/locales/master_user/admin.json
  24. 268 0
      src/locales/master_user/auth.json
  25. 184 0
      src/locales/master_user/blog.json
  26. 224 0
      src/locales/master_user/careers.json
  27. 40 0
      src/locales/master_user/chat.json
  28. 40 0
      src/locales/master_user/common.json
  29. 232 0
      src/locales/master_user/contact.json
  30. 22 0
      src/locales/master_user/cookies.json
  31. 62 0
      src/locales/master_user/errors.json
  32. 118 0
      src/locales/master_user/footer.json
  33. 554 0
      src/locales/master_user/guidelines.json
  34. 186 0
      src/locales/master_user/help.json
  35. 78 0
      src/locales/master_user/hero.json
  36. 24 0
      src/locales/master_user/home.json
  37. 106 0
      src/locales/master_user/nav.json
  38. 204 0
      src/locales/master_user/nuances.json
  39. 116 0
      src/locales/master_user/orders.json
  40. 46 0
      src/locales/master_user/portfolio.json
  41. 72 0
      src/locales/master_user/pricing.json
  42. 196 0
      src/locales/master_user/privacy.json
  43. 16 0
      src/locales/master_user/profile.json
  44. 56 0
      src/locales/master_user/services.json
  45. 52 0
      src/locales/master_user/statuses.json
  46. 336 0
      src/locales/master_user/terms.json
  47. 178 0
      src/locales/master_user/upload.json
  48. 54 0
      src/locales/master_user/whyTrust.json
  49. 116 134
      src/locales/translations.admin.json
  50. 82 82
      src/locales/translations.user.json

+ 49 - 5
scripts/manage_locales.py

@@ -13,7 +13,6 @@ def get_nested_keys(data, prefix=""):
     for k, v in data.items():
         new_prefix = f"{prefix}.{k}" if prefix else k
         if isinstance(v, dict):
-            # Check if this is a leaf node with language keys
             if any(lang in v for lang in LANGUAGES):
                 keys[new_prefix] = v
             else:
@@ -28,6 +27,43 @@ def set_nested_key(data, key_path, value):
         data = data.setdefault(part, {})
     data[parts[-1]] = value
 
+def deep_merge(dict1, dict2):
+    """Recursive merge of two dictionaries."""
+    for key, value in dict2.items():
+        if key in dict1 and isinstance(dict1[key], dict) and isinstance(value, dict):
+            # If both are dicts and it's NOT a leaf node with languages
+            if not any(lang in value for lang in LANGUAGES):
+                deep_merge(dict1[key], value)
+            else:
+                dict1[key] = value
+        else:
+            dict1[key] = value
+
+def assemble_master(fragment_dir, master_file, root_key=None):
+    """Merge all fragments in a directory into one master file"""
+    if not fragment_dir.exists():
+        print(f"Warning: {fragment_dir} not found.")
+        return
+    
+    combined_data = {}
+    # Sort files to ensure deterministic merging
+    for item in sorted(fragment_dir.glob("*.json")):
+        with open(item, "r", encoding="utf-8") as f:
+            try:
+                data = json.load(f)
+                deep_merge(combined_data, data)
+            except Exception as e:
+                print(f"Error reading {item}: {e}")
+
+    # Wrap in root key if needed (e.g. "admin": {...})
+    final_output = combined_data
+    if root_key:
+        final_output = {root_key: combined_data}
+
+    with open(master_file, "w", encoding="utf-8") as f:
+        json.dump(final_output, f, ensure_ascii=False, indent=2)
+    print(f"Assembled fragments from {fragment_dir} into {master_file}")
+
 def _merge_files(master_file, suffix):
     """Generic merge from {lang}{suffix} into master_file"""
     master_data = {}
@@ -64,7 +100,7 @@ def _merge_files(master_file, suffix):
 def _split_master(master_file, suffix):
     """Generic split from master_file into {lang}{suffix}"""
     if not master_file.exists():
-        print(f"Warning: {master_file} not found, skipping split for it.")
+        print(f"Warning: {master_file} not found, skipping split.")
         return
 
     with open(master_file, "r", encoding="utf-8") as f:
@@ -89,13 +125,19 @@ def _split_master(master_file, suffix):
             json.dump(lang_data, f, ensure_ascii=False, indent=2)
         print(f"Generated {output_path}")
 
+def assemble():
+    """Assemble fragments into masters"""
+    assemble_master(LOCALES_DIR / "master_user", USER_MASTER)
+    assemble_master(LOCALES_DIR / "master_admin", ADMIN_MASTER, root_key="admin")
+
 def merge():
     """Merge individual JSON files into respective master files"""
     _merge_files(USER_MASTER, ".json")
     _merge_files(ADMIN_MASTER, ".admin.json")
 
 def split():
-    """Split master files into individual JSON files"""
+    """Assemble and then split master files"""
+    assemble()
     _split_master(USER_MASTER, ".json")
     _split_master(ADMIN_MASTER, ".admin.json")
 
@@ -120,11 +162,13 @@ def list_missing():
 
 if __name__ == "__main__":
     if len(sys.argv) < 2:
-        print("Usage: python manage_locales.py [merge|split|missing]")
+        print("Usage: python manage_locales.py [assemble|merge|split|missing]")
         sys.exit(1)
     
     cmd = sys.argv[1].lower()
-    if cmd == "merge":
+    if cmd == "assemble":
+        assemble()
+    elif cmd == "merge":
         merge()
     elif cmd == "split":
         split()

+ 136 - 0
src/locales/master_admin/actions.json

@@ -0,0 +1,136 @@
+{
+  "actions": {
+    "activateAccount": {
+      "en": "Activate account",
+      "me": "Aktiviraj nalog",
+      "ru": "Разблокировать аккаунт",
+      "ua": "Розблокувати акаунт"
+    },
+    "allowChat": {
+      "en": "Allow Chat",
+      "me": "Dozvoli čet",
+      "ru": "Разрешить чат",
+      "ua": "Дозволити чат"
+    },
+    "chatWithClient": {
+      "en": "Chat with Client",
+      "me": "Čat sa klijentom",
+      "ru": "Чат с клиентом",
+      "ua": "Чат з клієнтом"
+    },
+    "add": {
+      "en": "Add",
+      "me": "Dodaj",
+      "ru": "Добавить",
+      "ua": "Додати"
+    },
+    "cancel": {
+      "en": "Cancel",
+      "me": "Otkaži",
+      "ru": "Отмена",
+      "ua": "Скасувати"
+    },
+    "create": {
+      "en": "Create",
+      "me": "Kreiraj",
+      "ru": "Создать",
+      "ua": "Створити"
+    },
+    "delete": {
+      "en": "Delete",
+      "me": "Obriši",
+      "ru": "Удалить",
+      "ua": "Видалити"
+    },
+    "deleteFile": {
+      "en": "Delete attached file",
+      "me": "Obriši zakačeni fajl",
+      "ru": "Удалить файл",
+      "ua": "Видалити файл"
+    },
+    "edit": {
+      "en": "Edit",
+      "me": "Uredi",
+      "ru": "Редактировать",
+      "ua": "Редагувати"
+    },
+    "forbidChat": {
+      "en": "Forbid Chat",
+      "me": "Zabrani čet",
+      "ru": "Запретить чат",
+      "ua": "Заборонити чат"
+    },
+    "makePrivate": {
+      "en": "Make Private",
+      "me": "Učini privatnim",
+      "ru": "Сделать приватным",
+      "ua": "Зробити приватним"
+    },
+    "makePublic": {
+      "en": "Make Public",
+      "me": "Učini javnim",
+      "ru": "Сделать публичным",
+      "ua": "Зробити публічним"
+    },
+    "printInvoice": {
+      "en": "Print Final Invoice (Faktura)",
+      "me": "Odštampaj fakturu",
+      "ru": "Печать фактуры",
+      "ua": "Друк фактури"
+    },
+    "printProforma": {
+      "en": "Print Proforma (Predračun/Uplatnica)",
+      "me": "Odštampaj predračun",
+      "ru": "Печать счета на оплату",
+      "ua": "Друк рахунку на оплату"
+    },
+    "resetPassword": {
+      "en": "Reset Password",
+      "me": "Resetuj lozinku",
+      "ru": "Сбросить пароль",
+      "ua": "Скинути пароль"
+    },
+    "save": {
+      "en": "Save Changes",
+      "me": "Sačuvaj izmjene",
+      "ru": "Сохранить",
+      "ua": "Зберегти"
+    },
+    "saveChanges": {
+      "en": "Save Changes",
+      "me": "Sačuvaj promjene",
+      "ru": "Сохранить изменения",
+      "ua": "Зберегти зміни"
+    },
+    "savePrice": {
+      "en": "Save Price",
+      "me": "Sačuvaj cijenu",
+      "ru": "Сохранить цену",
+      "ua": "Зберегти ціну"
+    },
+    "sending": {
+      "en": "Sending...",
+      "me": "Slanje...",
+      "ru": "Отправка...",
+      "ua": "Надсилання..."
+    },
+    "suspendAccount": {
+      "en": "Suspend account",
+      "me": "Suspenduj nalog",
+      "ru": "Заблокировать аккаунт",
+      "ua": "Заблокувати акаунт"
+    },
+    "toggleAdminRole": {
+      "en": "Toggle Admin role",
+      "me": "Promijeni admin ulogu",
+      "ru": "Переключить роль админа",
+      "ua": "Перемкнути роль адміна"
+    },
+    "viewOriginal": {
+      "en": "View Original Snapshot",
+      "me": "Vidi originalne parametre",
+      "ru": "Оригинал",
+      "ua": "Оригінал"
+    }
+  }
+}

+ 8 - 0
src/locales/master_admin/addNew.json

@@ -0,0 +1,8 @@
+{
+  "addNew": {
+    "en": "Add New",
+    "me": "Dodaj novo",
+    "ru": "Добавить",
+    "ua": "Додати"
+  }
+}

+ 8 - 0
src/locales/master_admin/allStatuses.json

@@ -0,0 +1,8 @@
+{
+  "allStatuses": {
+    "en": "All Statuses",
+    "me": "Svi statusi",
+    "ru": "Все статусы",
+    "ua": "Усі статуси"
+  }
+}

+ 8 - 0
src/locales/master_admin/dashboard.json

@@ -0,0 +1,8 @@
+{
+  "dashboard": {
+    "en": "Dashboard",
+    "me": "Panel",
+    "ru": "Дэшборд",
+    "ua": "Дешборд"
+  }
+}

+ 358 - 0
src/locales/master_admin/fields.json

@@ -0,0 +1,358 @@
+{
+  "fields": {
+    "address": {
+      "en": "Address",
+      "me": "Adresa",
+      "ru": "Адрес",
+      "ua": "Адреса"
+    },
+    "action": {
+      "en": "Action",
+      "me": "Akcija",
+      "ru": "Действие",
+      "ua": "Дія"
+    },
+    "active": {
+      "en": "Active",
+      "me": "Aktivno",
+      "ru": "Активно",
+      "ua": "Активно"
+    },
+    "notActive": {
+      "en": "Not Active / Private",
+      "me": "Nije aktivno / Privatno",
+      "ru": "Не активен / Приватный",
+      "ua": "Не активний / Приватний"
+    },
+    "category": {
+      "en": "Category",
+      "me": "Kategorija",
+      "ru": "Категория",
+      "ua": "Категорія"
+    },
+    "colors": {
+      "en": "Available Colors",
+      "me": "Dostupne boje",
+      "ru": "Цвета",
+      "ua": "Кольори"
+    },
+    "content": {
+      "en": "Content",
+      "me": "Sadržaj",
+      "ru": "Контент",
+      "ua": "Контент"
+    },
+    "customColorDirInfo": {
+      "en": "Custom Color (No directory info)",
+      "me": "Prilagođena boja (nema info u direktorijumu)",
+      "ru": "Своя цвет (нет инфо в справочнике)",
+      "ua": "Свій колір (немає інфо в довіднику)"
+    },
+    "customColorInfo": {
+      "en": "Custom Color (No directory info)",
+      "me": "Prilagođena boja (bez informacija iz kataloga)",
+      "ru": "Введите HEX или название",
+      "ua": "Введіть HEX або назву"
+    },
+    "customColorPlaceholder": {
+      "en": "Custom color...",
+      "me": "Prilagođena boja...",
+      "ru": "Свой цвет...",
+      "ua": "Свій колір..."
+    },
+    "defaultColor": {
+      "en": "Default Color",
+      "me": "Podrazumijevana boja",
+      "ru": "Цвет по умолчанию",
+      "ua": "Колір за замовчуванням"
+    },
+    "description": {
+      "en": "Description",
+      "me": "Opis",
+      "ru": "Описание",
+      "ua": "Опис"
+    },
+    "details": {
+      "en": "Details",
+      "me": "Detalji",
+      "ru": "Детали",
+      "ua": "Деталі"
+    },
+    "deliveryType": {
+      "en": "Delivery Type",
+      "me": "Tip dostave",
+      "ru": "Тип доставки",
+      "ua": "Тип доставки"
+    },
+    "email": {
+      "en": "Email Address",
+      "me": "Email adresa",
+      "ru": "Email",
+      "ua": "Email"
+    },
+    "estimated": {
+      "en": "Estimated",
+      "me": "Procjena",
+      "ru": "Оценка",
+      "ua": "Оцінка"
+    },
+    "excerpt": {
+      "en": "Excerpt",
+      "me": "Kratak opis",
+      "ru": "Краткое описание",
+      "ua": "Короткий опис"
+    },
+    "externalLink": {
+      "en": "External Model Link",
+      "me": "Link ka modelu",
+      "ru": "Внешняя ссылка",
+      "ua": "Зовнішнє посилання"
+    },
+    "finalPrice": {
+      "en": "Final Price",
+      "me": "Konačna cijena",
+      "ru": "Финальная цена",
+      "ua": "Фінальна ціна"
+    },
+    "firstName": {
+      "en": "First Name",
+      "me": "Ime",
+      "ru": "Имя",
+      "ua": "Ім'я"
+    },
+    "imageUrl": {
+      "en": "Image URL",
+      "me": "URL slike",
+      "ru": "URL изображения",
+      "ua": "URL зображення"
+    },
+    "lastName": {
+      "en": "Last Name",
+      "me": "Prezime",
+      "ru": "Фамилия",
+      "ua": "Прізвище"
+    },
+    "material": {
+      "en": "Material",
+      "me": "Materijal",
+      "ru": "Материал",
+      "ua": "Матеріал"
+    },
+    "name": {
+      "en": "Name",
+      "me": "Naziv",
+      "ru": "Название",
+      "ua": "Назва"
+    },
+    "nameEn": {
+      "en": "Name (EN)",
+      "me": "Naziv (EN)",
+      "ru": "Название (EN)",
+      "ua": "Назва (EN)"
+    },
+    "nameRu": {
+      "en": "Name (RU)",
+      "me": "Naziv (RU)",
+      "ru": "Название (RU)",
+      "ua": "Назва (RU)"
+    },
+    "nameUa": {
+      "en": "Name (UA)",
+      "me": "Naziv (UA)",
+      "ru": "Название (UA)",
+      "ua": "Назва (UA)"
+    },
+    "noPhotos": {
+      "en": "No photos yet",
+      "me": "Nema fotografija",
+      "ru": "Нет фото",
+      "ua": "Немає фото"
+    },
+    "noPortfolio": {
+      "en": "Do not publish in portfolio",
+      "me": "Ne objavljivati u portfoliju",
+      "ru": "Не публиковать в портфолио",
+      "ua": "Не публікувати в портфоліо"
+    },
+    "noUsers": {
+      "en": "No users found",
+      "me": "Korisnici nisu pronađeni",
+      "ru": "Пользователи не найдены",
+      "ua": "Користувачів не знайдено"
+    },
+    "notifyUser": {
+      "en": "Notify User",
+      "me": "Obavijesti korisnika",
+      "ru": "Уведомить клиента",
+      "ua": "Повідомити клієнта"
+    },
+    "originalSnapshot": {
+      "en": "Original Snapshot",
+      "me": "Originalni parametri",
+      "ru": "Снимок заказа",
+      "ua": "Знімок замовлення"
+    },
+    "password": {
+      "en": "Password",
+      "me": "Lozinka",
+      "ru": "Пароль",
+      "ua": "Пароль"
+    },
+    "phone": {
+      "en": "Phone Number",
+      "me": "Broj telefona",
+      "ru": "Телефон",
+      "ua": "Телефон"
+    },
+    "photoReport": {
+      "en": "Photo Report",
+      "me": "Foto izvještaj",
+      "ru": "Фотоотчет",
+      "ua": "Фотозвіт"
+    },
+    "pickup": {
+      "en": "In-Store Pickup",
+      "me": "Preuzimanje u radnji",
+      "ru": "Самовывоз",
+      "ua": "Самовивіз"
+    },
+    "portfolioAllowed": {
+      "en": "Portfolio Allowed",
+      "me": "Portfolio dozvoljen",
+      "ru": "Разрешить в портфолио",
+      "ua": "Дозволити в портфоліо"
+    },
+    "price": {
+      "en": "Price per cm³",
+      "me": "Cijena po cm³",
+      "ru": "Цена",
+      "ua": "Ціна"
+    },
+    "pricePerCm3": {
+      "en": "Price / cm³",
+      "me": "Cijena / cm³",
+      "ru": "Цена за см³",
+      "ua": "Ціна за см³"
+    },
+    "projectNotes": {
+      "en": "Project Notes",
+      "me": "Napomene o projektu",
+      "ru": "Заметки к проекту",
+      "ua": "Нотатки до проєкту"
+    },
+    "publishImmediately": {
+      "en": "Publish immediately",
+      "me": "Objavi odmah",
+      "ru": "Опубликовать сразу",
+      "ua": "Опублікувати відразу"
+    },
+    "quantity": {
+      "en": "Quantity / Weight",
+      "me": "Količina / Težina",
+      "ru": "Количество / Вес",
+      "ua": "Кількість / Вага"
+    },
+    "selectColorStrict": {
+      "en": "Select Color (Strict)",
+      "me": "Izaberi boju",
+      "ru": "Строгий выбор цвета",
+      "ua": "Суворий вибір кольору"
+    },
+    "selectMaterialStrict": {
+      "en": "Select Material (Strict)",
+      "me": "Izaberi materijal",
+      "ru": "Строгий выбор материала",
+      "ua": "Суворий вибір материала"
+    },
+    "shippingAddress": {
+      "en": "Shipping Address",
+      "me": "Adresa za dostavu",
+      "ru": "Адрес доставки",
+      "ua": "Адреса доставки"
+    },
+    "slug": {
+      "en": "Slug (URL)",
+      "me": "Slug (URL)",
+      "ru": "Slug (URL)",
+      "ua": "Slug (URL)"
+    },
+    "color": {
+      "en": "Color Name",
+      "me": "Naziv boje",
+      "ru": "Название цвета",
+      "ua": "Назва кольору"
+    },
+    "notes": {
+      "en": "Notes",
+      "me": "Napomene",
+      "ru": "Заметки",
+      "ua": "Замітки"
+    },
+    "status": {
+      "en": "Status",
+      "me": "Status",
+      "ru": "Статус",
+      "ua": "Статус"
+    },
+    "snapshotInfo": {
+      "en": "These are the parameters recorded at the moment of order submission.",
+      "me": "Ovo su parametri zabilježeni u trenutku slanja narudžbe.",
+      "ru": "Состояние заказа на момент создания",
+      "ua": "Стан замовлення на момент створення"
+    },
+    "sourceFiles": {
+      "en": "Source Files",
+      "me": "Izvorni fajlovi",
+      "ru": "Исходные файлы",
+      "ua": "Вихідні файли"
+    },
+    "strictSelectionInfo": {
+      "en": "Prices and options are derived strictly from the catalog.",
+      "me": "Cijene i opcije se izvode strogo iz kataloga.",
+      "ru": "Цены и опции берутся строго из каталога.",
+      "ua": "Ціни та опції беруться суворо з каталогу."
+    },
+    "target": {
+      "en": "Target",
+      "me": "Cilj",
+      "ru": "Объект",
+      "ua": "Об'єкт"
+    },
+    "techType": {
+      "en": "Technology Type",
+      "me": "Tip tehnologije",
+      "ru": "Тип технологии",
+      "ua": "Тип технології"
+    },
+    "timestamp": {
+      "en": "Timestamp",
+      "me": "Vrijeme",
+      "ru": "Время",
+      "ua": "Час"
+    },
+    "totalPrice": {
+      "en": "Total Price",
+      "me": "Ukupna cijena",
+      "ru": "Итоговая цена",
+      "ua": "Загальна ціна"
+    },
+    "title": {
+      "en": "Title",
+      "me": "Naslov",
+      "ru": "Заголовок",
+      "ua": "Заголовок"
+    },
+    "updateFinalPrice": {
+      "en": "Update Final Price",
+      "me": "Ažuriraj konačnu cijenu",
+      "ru": "Обновить итоговую цену",
+      "ua": "Оновити підсумкову ціну"
+    },
+    "user": {
+      "en": "User",
+      "me": "Korisnik",
+      "ru": "Пользователь",
+      "ua": "Користувач"
+    }
+  }
+}

+ 8 - 0
src/locales/master_admin/filters.json

@@ -0,0 +1,8 @@
+{
+  "filters": {
+    "en": "Filters",
+    "me": "Filteri",
+    "ru": "Фильтры",
+    "ua": "Фільтри"
+  }
+}

+ 8 - 0
src/locales/master_admin/from.json

@@ -0,0 +1,8 @@
+{
+  "from": {
+    "en": "From",
+    "me": "Od",
+    "ru": "От",
+    "ua": "Від"
+  }
+}

+ 100 - 0
src/locales/master_admin/labels.json

@@ -0,0 +1,100 @@
+{
+  "labels": {
+    "actions": {
+      "en": "Actions",
+      "me": "Akcije",
+      "ru": "Действия",
+      "ua": "Дії"
+    },
+    "action": {
+      "en": "Action",
+      "me": "Akcija",
+      "ru": "Действие",
+      "ua": "Дія"
+    },
+    "chat": {
+      "en": "Chat",
+      "me": "Čat",
+      "ru": "Чат",
+      "ua": "Чат"
+    },
+    "editOrder": {
+      "en": "Edit Order",
+      "me": "Uredi narudžbu",
+      "ru": "Редактировать заказ",
+      "ua": "Редагувати замовлення"
+    },
+    "reviewContent": {
+      "en": "Client Review Content",
+      "me": "Sadržaj recenzije",
+      "ru": "Текст отзыва",
+      "ua": "Текст відгуку"
+    },
+    "current": {
+      "en": "Current",
+      "me": "Trenutno",
+      "ru": "Текущий",
+      "ua": "Поточний"
+    },
+    "noFiles": {
+      "en": "No files attached",
+      "me": "Nema zakačenih fajlova",
+      "ru": "Файлы не прикреплены",
+      "ua": "Файли не додані"
+    },
+    "noPhotos": {
+      "en": "No photos uploaded",
+      "me": "Nema otpremljenih fotografija",
+      "ru": "Фотографии не загружены",
+      "ua": "Фотографії не завантажені"
+    },
+    "date": {
+      "en": "Date",
+      "me": "Datum",
+      "ru": "Дата",
+      "ua": "Дата"
+    },
+    "details": {
+      "en": "Details",
+      "me": "Detalji",
+      "ru": "Детали",
+      "ua": "Деталі"
+    },
+    "fiscalization": {
+      "en": "Fiscalization",
+      "me": "Fiskalizacija",
+      "ru": "Фискализация",
+      "ua": "Фіскалізація"
+    },
+    "target": {
+      "en": "Target",
+      "me": "Cilj",
+      "ru": "Объект",
+      "ua": "Об'єкт"
+    },
+    "contact": {
+      "en": "Contact",
+      "me": "Kontakt",
+      "ru": "Контакт",
+      "ua": "Контакт"
+    },
+    "registered": {
+      "en": "Registered",
+      "me": "Registrovan",
+      "ru": "Зарегистрирован",
+      "ua": "Зареєстрований"
+    },
+    "role": {
+      "en": "Role",
+      "me": "Uloga",
+      "ru": "Роль",
+      "ua": "Роль"
+    },
+    "user": {
+      "en": "User",
+      "me": "Korisnik",
+      "ru": "Пользователь",
+      "ua": "Користувач"
+    }
+  }
+}

+ 8 - 0
src/locales/master_admin/managementCenter.json

@@ -0,0 +1,8 @@
+{
+  "managementCenter": {
+    "en": "Management Center",
+    "me": "Centar za upravljanje",
+    "ru": "Центр управления",
+    "ua": "Центр управління"
+  }
+}

+ 70 - 0
src/locales/master_admin/modals.json

@@ -0,0 +1,70 @@
+{
+  "modals": {
+    "changeParams": {
+      "en": "Change Material & Color",
+      "me": "Promijeni materijal i boju",
+      "ru": "Изменить материал и цвет",
+      "ua": "Змінити матеріал та колір"
+    },
+    "editStock": {
+      "en": "Edit Stock Item",
+      "me": "Uredi stavku skladišta",
+      "ru": "Редактировать остаток",
+      "ua": "Редагувати залишок"
+    },
+    "addStock": {
+      "en": "Add Stock Item",
+      "me": "Dodaj stavku na sklad",
+      "ru": "Добавить на склад",
+      "ua": "Додати на склад"
+    },
+    "createMaterial": {
+      "en": "Create New Material",
+      "me": "Novi materijal",
+      "ru": "Добавить материал",
+      "ua": "Додати матеріал"
+    },
+    "createPost": {
+      "en": "Create New Post",
+      "me": "Novi članak",
+      "ru": "Новая запись",
+      "ua": "Новий запис"
+    },
+    "createService": {
+      "en": "Create New Service",
+      "me": "Nova usluga",
+      "ru": "Новая услуга",
+      "ua": "Нова послуга"
+    },
+    "createUser": {
+      "en": "Create New User",
+      "me": "Novi korisnik",
+      "ru": "Новый пользователь",
+      "ua": "Новий користувач"
+    },
+    "editMaterial": {
+      "en": "Edit Material",
+      "me": "Uredi materijal",
+      "ru": "Редактировать материал",
+      "ua": "Редагувати матеріал"
+    },
+    "editPost": {
+      "en": "Edit Blog Post",
+      "me": "Uredi članak",
+      "ru": "Редактировать запись",
+      "ua": "Редагувати запис"
+    },
+    "editService": {
+      "en": "Edit Service",
+      "me": "Uredi uslugu",
+      "ru": "Редактировать услугу",
+      "ua": "Редагувати послугу"
+    },
+    "editUser": {
+      "en": "Edit User",
+      "me": "Uredi korisnika",
+      "ru": "Редактировать пользователя",
+      "ua": "Редагувати користувача"
+    }
+  }
+}

+ 16 - 0
src/locales/master_admin/questions.json

@@ -0,0 +1,16 @@
+{
+  "questions": {
+    "deletePhoto": {
+      "en": "Are you sure you want to delete this photo?",
+      "me": "Da li ste sigurni da želite obrisati ovu fotografiju?",
+      "ru": "Вы уверены, что хотите удалить это фото?",
+      "ua": "Ви впевнені, що хочете видалити це фото?"
+    },
+    "enterNewPassword": {
+      "en": "Set new password for this user:",
+      "me": "Unesite novu lozinku za ovog korisnika:",
+      "ru": "Укажите новый пароль для этого пользователя:",
+      "ua": "Вкажіть новий пароль для цього користувача:"
+    }
+  }
+}

+ 8 - 0
src/locales/master_admin/reset.json

@@ -0,0 +1,8 @@
+{
+  "reset": {
+    "en": "Reset",
+    "me": "Resetuj",
+    "ru": "Сбросить",
+    "ua": "Скинути"
+  }
+}

+ 94 - 0
src/locales/master_admin/reviews.json

@@ -0,0 +1,94 @@
+{
+  "reviews": {
+    "title": {
+      "en": "Review Management",
+      "me": "Upravljanje recenzijama",
+      "ru": "Управление отзывами",
+      "ua": "Управління відгуками"
+    },
+    "total": {
+      "en": "Total Reviews",
+      "me": "Ukupno recenzija",
+      "ru": "Всего отзывов",
+      "ua": "Всього відгуків"
+    },
+    "noReviews": {
+      "en": "No reviews yet",
+      "me": "Još nema recenzija",
+      "ru": "Отзывов пока нет",
+      "ua": "Відгуків поки немає"
+    },
+    "approved": {
+      "en": "Approved",
+      "me": "Odobreno",
+      "ru": "Одобрен",
+      "ua": "Схвалено"
+    },
+    "pending": {
+      "en": "Pending",
+      "me": "Na čekanju",
+      "ru": "Ожидает",
+      "ua": "Очікує"
+    },
+    "approve": {
+      "en": "Approve",
+      "me": "Odobri",
+      "ru": "Одобрить",
+      "ua": "Схвалити"
+    },
+    "delete": {
+      "en": "Delete",
+      "me": "Obriši",
+      "ru": "Удалить",
+      "ua": "Видалити"
+    },
+    "hide": {
+      "en": "Hide",
+      "me": "Sakrij",
+      "ru": "Скрыть",
+      "ua": "Приховати"
+    },
+    "approvedSuccess": {
+      "en": "Review approved",
+      "me": "Recenzija odobrena",
+      "ru": "Отзыв одобрен",
+      "ua": "Відгук схвалено"
+    },
+    "hiddenSuccess": {
+      "en": "Review hidden from public view",
+      "me": "Recenzija sakrivena",
+      "ru": "Отзыв скрыт от публикации",
+      "ua": "Відгук приховано"
+    },
+    "deletedSuccess": {
+      "en": "Review deleted",
+      "me": "Recenzija obrisana",
+      "ru": "Отзыв удален",
+      "ua": "Відгук видалено"
+    },
+    "confirmDelete": {
+      "en": "Are you sure you want to delete this review?",
+      "me": "Da li ste sigurni da želite obrisati ovu recenziju?",
+      "ru": "Вы уверены, что хотите удалить этот отзыв?",
+      "ua": "Ви впевнені, що хочете видалити цей відгук?"
+    },
+    "rating": {
+      "en": "Rating",
+      "me": "Ocjena",
+      "ru": "Рейтинг",
+      "ua": "Рейтинг"
+    },
+    "content": {
+      "en": "Content",
+      "me": "Sadržaj",
+      "ru": "Текст отзыва",
+      "ua": "Текст відгуку"
+    },
+    "status": {
+      "en": "Status",
+      "me": "Status",
+      "ru": "Статус",
+      "ua": "Статус"
+    }
+  }
+}

+ 8 - 0
src/locales/master_admin/searchPlaceholder.json

@@ -0,0 +1,8 @@
+{
+  "searchPlaceholder": {
+    "en": "Search {tab}...",
+    "me": "Traži {tab}...",
+    "ru": "Поиск...",
+    "ua": "Пошук..."
+  }
+}

+ 8 - 0
src/locales/master_admin/searchUsersPlaceholder.json

@@ -0,0 +1,8 @@
+{
+  "searchUsersPlaceholder": {
+    "en": "Search by name, email, phone...",
+    "me": "Traži po imenu, emailu, telefonu...",
+    "ru": "Поиск пользователей...",
+    "ua": "Пошук користувачів..."
+  }
+}

+ 58 - 0
src/locales/master_admin/tabs.json

@@ -0,0 +1,58 @@
+{
+  "tabs": {
+    "audit": {
+      "en": "Audit",
+      "me": "Audit",
+      "ru": "Аудит",
+      "ua": "Аудит"
+    },
+    "blog": {
+      "en": "Blog",
+      "me": "Blog",
+      "ru": "Блог",
+      "ua": "Блог"
+    },
+    "materials": {
+      "en": "Materials",
+      "me": "Materijali",
+      "ru": "Материалы",
+      "ua": "Матеріали"
+    },
+    "orders": {
+      "en": "Orders",
+      "me": "Narudžbe",
+      "ru": "Заказы",
+      "ua": "Замовлення"
+    },
+    "portfolio": {
+      "en": "Portfolio",
+      "me": "Portfolio",
+      "ru": "Портфолио",
+      "ua": "Портфоліо"
+    },
+    "posts": {
+      "en": "Blog",
+      "me": "Blog",
+      "ru": "Блог",
+      "ua": "Блог"
+    },
+    "services": {
+      "en": "Services",
+      "me": "Usluge",
+      "ru": "Услуги",
+      "ua": "Послуги"
+    },
+    "reviews": {
+      "en": "Reviews",
+      "me": "Recenzije",
+      "ru": "Отзывы",
+      "ua": "Відгуки"
+    },
+    "users": {
+      "en": "Users",
+      "me": "Korisnici",
+      "ru": "Пользователи",
+      "ua": "Користувачі"
+    }
+  }
+}

+ 8 - 0
src/locales/master_admin/to.json

@@ -0,0 +1,8 @@
+{
+  "to": {
+    "en": "To",
+    "me": "Do",
+    "ru": "До",
+    "ua": "До"
+  }
+}

+ 142 - 0
src/locales/master_admin/toasts.json

@@ -0,0 +1,142 @@
+{
+  "toasts": {
+    "chatDisabled": {
+      "en": "Chat for User #{id} is now Disabled",
+      "me": "Čat za korisnika #{id} je ONEMOGUĆEN",
+      "ru": "Чат отключен",
+      "ua": "Чат вимкнено"
+    },
+    "chatEnabled": {
+      "en": "Chat for User #{id} is now Enabled",
+      "me": "Čat za korisnika #{id} je OMOGUĆEN",
+      "ru": "Чат включен",
+      "ua": "Чат увімкнено"
+    },
+    "fileAttached": {
+      "en": "File attached and preview generated",
+      "me": "Fajl okačen i pregled generisan",
+      "ru": "Файл прикреплен",
+      "ua": "Файл прикріплено"
+    },
+    "fileDeleted": {
+      "en": "File deleted successfully",
+      "me": "Fajl uspješno obrisan",
+      "ru": "Файл удален",
+      "ua": "Файл видалено"
+    },
+    "genericError": {
+      "en": "Operation failed",
+      "me": "Operacija nije uspjela",
+      "ru": "Произошла ошибка",
+      "ua": "Сталася помилка"
+    },
+    "invoiceReminder": {
+      "en": "Invoice generated. Don't forget to print and attach it to the package!",
+      "me": "Faktura je generisana. Ne zaboravite da je odštampate i priložite uz paket!",
+      "ru": "Фактура создана. Не забудьте распечатать и приложить её к посылке!",
+      "ua": "Фактура створена. Не забудьте роздрукувати та додати її до посилки!"
+    },
+    "loadError": {
+      "en": "Failed to load {tab}",
+      "me": "Greška pri učitavanju {tab}",
+      "ru": "Ошибка загрузки",
+      "ua": "Помилка завантаження"
+    },
+    "materialDeleted": {
+      "en": "Material deleted",
+      "me": "Materijal obrisan",
+      "ru": "Материал удален",
+      "ua": "Матеріал видалено"
+    },
+    "materialSaved": {
+      "en": "Material saved",
+      "me": "Materijal sačuvan",
+      "ru": "Материал сохранен",
+      "ua": "Матеріал збережено"
+    },
+    "noConsent": {
+      "en": "User did not consent to portfolio",
+      "me": "Korisnik nije dao saglasnost za portfolio",
+      "ru": "Нет согласия",
+      "ua": "Немає згоди"
+    },
+    "paramsUpdated": {
+      "en": "Parameters updated",
+      "me": "Parametri ažurirani",
+      "ru": "Параметры обновлены",
+      "ua": "Параметри оновлено"
+    },
+    "passwordUpdated": {
+      "en": "Password updated successfully!",
+      "me": "Lozinka uspješno ažurirana!",
+      "ru": "Пароль успешно обновлен!",
+      "ua": "Пароль успішно оновлено!"
+    },
+    "photoAdded": {
+      "en": "Photo added",
+      "me": "Fotografija dodata",
+      "ru": "Фото добавлено",
+      "ua": "Фото додано"
+    },
+    "photoDeleted": {
+      "en": "Photo deleted successfully",
+      "me": "Fotografija uspješno obrisana",
+      "ru": "Фото успешно удалено",
+      "ua": "Фото успішно видалено"
+    },
+    "postDeleted": {
+      "en": "Article deleted",
+      "me": "Članak obrisan",
+      "ru": "Запись удалена",
+      "ua": "Запис видалено"
+    },
+    "postSaved": {
+      "en": "Article saved",
+      "me": "Članak sačuvan",
+      "ru": "Запись сохранена",
+      "ua": "Запис збережено"
+    },
+    "priceUpdated": {
+      "en": "Price updated",
+      "me": "Cijena ažurirana",
+      "ru": "Цена обновлена",
+      "ua": "Ціна оновлена"
+    },
+    "roleUpdated": {
+      "en": "Role for User #{id} updated to {role}",
+      "me": "Uloga korisnika #{id} promijenjena u {role}",
+      "ru": "Роль обновлена",
+      "ua": "Роль оновлена"
+    },
+    "serviceDeleted": {
+      "en": "Service deleted",
+      "me": "Usluga obrisana",
+      "ru": "Услуга удалена",
+      "ua": "Послуга видалена"
+    },
+    "serviceSaved": {
+      "en": "Service saved",
+      "me": "Usluga sačuvana",
+      "ru": "Услуга сохранена",
+      "ua": "Послугу збережено"
+    },
+    "statusUpdated": {
+      "en": "Status → {status}",
+      "me": "Status → {status}",
+      "ru": "Статус обновлен",
+      "ua": "Статус оновлено"
+    },
+    "userCreated": {
+      "en": "User created successfully",
+      "me": "Korisnik uspješno kreiran",
+      "ru": "Пользователь создан",
+      "ua": "Користувач створений"
+    },
+    "userSaved": {
+      "en": "User saved",
+      "me": "Korisnik sačuvan",
+      "ru": "Пользователь сохранен",
+      "ua": "Користувача збережено"
+    }
+  }
+}

+ 8 - 0
src/locales/master_admin/total.json

@@ -0,0 +1,8 @@
+{
+  "total": {
+    "en": "Total",
+    "me": "Ukupno",
+    "ru": "Всего",
+    "ua": "Всього"
+  }
+}

+ 20 - 0
src/locales/master_admin/warehouse.json

@@ -0,0 +1,20 @@
+{
+  "warehouse": {
+    "en": "Warehouse",
+    "me": "Skladište",
+    "ru": "Склад",
+    "ua": "Склад",
+    "noStockFound": {
+      "en": "No stock records found",
+      "me": "Nisu pronađeni zapisi o zalihama",
+      "ru": "Остатки не найдены",
+      "ua": "Залишки не знайдені"
+    },
+    "noMaterials": {
+      "en": "First, add materials to the catalog to manage stock",
+      "me": "Prvo dodajte materijale u katalog da biste upravljali zalihama",
+      "ru": "Сначала добавьте материалы в каталог",
+      "ua": "Спочатку додайте материалы до каталогу"
+    }
+  }
+}

+ 152 - 0
src/locales/master_user/about.json

@@ -0,0 +1,152 @@
+{
+  "about": {
+    "cta": {
+      "content": {
+        "en": "Contact us today for your project.",
+        "me": "Kontaktirajte nas danas za vaš projekat.",
+        "ru": "Свяжитесь с нами сегодня для вашего проекта.",
+        "ua": "Зв'яжіться з нами сьогодні для вашого проекту."
+      },
+      "title": {
+        "en": "Ready to print?",
+        "me": "Spremni za štampu?",
+        "ru": "Готовы к печати?",
+        "ua": "Готові до друку?"
+      }
+    },
+    "mission": {
+      "content": {
+        "en": "Reliable 3D printing for everyone.",
+        "me": "Pouzdan 3D štampa za sve.",
+        "ru": "Надежная 3D-печать для каждого.",
+        "ua": "Надійний 3D-друк для кожного."
+      },
+      "title": {
+        "en": "Our Mission",
+        "me": "Naša misija",
+        "ru": "Наша миссия",
+        "ua": "Наша місія"
+      }
+    },
+    "subtitle": {
+      "en": "Crafting the future, layer by layer.",
+      "me": "Bavimo se budućnošću, sloj po sloj.",
+      "ru": "Создаем будущее слой за слоем.",
+      "ua": "Створюємо майбутнє шар за шаром."
+    },
+    "team": {
+      "member1": {
+        "name": {
+          "en": "Luka",
+          "me": "Luka",
+          "ru": "Luka",
+          "ua": "Luka"
+        },
+        "role": {
+          "en": "Founder",
+          "me": "Osnivač",
+          "ru": "Основатель",
+          "ua": "Засновник"
+        }
+      },
+      "member2": {
+        "name": {
+          "en": "Milica",
+          "me": "Milica",
+          "ru": "Milica",
+          "ua": "Milica"
+        },
+        "role": {
+          "en": "Designer",
+          "me": "Dizajner",
+          "ru": "Дизайнер",
+          "ua": "Дизайнер"
+        }
+      },
+      "member3": {
+        "name": {
+          "en": "Nikola",
+          "me": "Nikola",
+          "ru": "Nikola",
+          "ua": "Nikola"
+        },
+        "role": {
+          "en": "Engineer",
+          "me": "Inženjer",
+          "ru": "Инженер",
+          "ua": "Інженер"
+        }
+      },
+      "title": {
+        "en": "Our Team",
+        "me": "Naš tim",
+        "ru": "Наша команда",
+        "ua": "Наша команда"
+      }
+    },
+    "values": {
+      "community": {
+        "content": {
+          "en": "Support for local makers.",
+          "me": "Podrška lokalnim stvaraocima.",
+          "ru": "Поддержка местных мейкеров.",
+          "ua": "Підтримка місцевих мейкерів."
+        },
+        "title": {
+          "en": "Community",
+          "me": "Zajednica",
+          "ru": "Сообщество",
+          "ua": "Спільнота"
+        }
+      },
+      "innovation": {
+        "content": {
+          "en": "Latest tech applied.",
+          "me": "Primjena najnovije tehnologije.",
+          "ru": "Применение новейших технологий.",
+          "ua": "Застосування новітніх технологій."
+        },
+        "title": {
+          "en": "Innovation",
+          "me": "Inovacije",
+          "ru": "Инновации",
+          "ua": "Інновації"
+        }
+      },
+      "quality": {
+        "content": {
+          "en": "Precision in every layer.",
+          "me": "Preciznost u svakom sloju.",
+          "ru": "Точность в каждом слое.",
+          "ua": "Точність у кожному шарі."
+        },
+        "title": {
+          "en": "Quality",
+          "me": "Kvalitet",
+          "ru": "Качество",
+          "ua": "Якість"
+        }
+      },
+      "title": {
+        "en": "Our Values",
+        "me": "Naše vrijednosti",
+        "ru": "Наши ценности",
+        "ua": "Наші цінності"
+      },
+      "trust": {
+        "content": {
+          "en": "We do our best to make you satisfied.",
+          "me": "Trudimo se da budete zadovoljni.",
+          "ru": "Мы приложим все силы, чтобы Вы остались довольны.",
+          "ua": "Ми докладемо всіх зусиль, щоб Ви залишилися задоволені."
+        },
+        "title": {
+          "en": "Trust",
+          "me": "Povjerenje",
+          "ru": "Доверие",
+          "ua": "Довіра"
+        }
+      }
+    }
+  }
+}

+ 12 - 0
src/locales/master_user/admin.json

@@ -0,0 +1,12 @@
+{
+  "admin": {
+    "actions": {
+      "deleteOrder": {
+        "en": "Delete Order Entirely",
+        "me": "Obriši narudžbu trajno",
+        "ru": "Удалить заказ полностью",
+        "ua": "Видалити замовлення повністю"
+      }
+    }
+  }
+}

+ 268 - 0
src/locales/master_user/auth.json

@@ -0,0 +1,268 @@
+{
+  "auth": {
+    "back": {
+      "en": "Back to Home",
+      "me": "Nazad na početnu",
+      "ru": "На главную",
+      "ua": "На головну"
+    },
+    "fields": {
+      "accountType": {
+        "en": "Account Type",
+        "me": "Tip naloga",
+        "ru": "Тип аккаунта",
+        "ua": "Тип акаунту"
+      },
+      "company": {
+        "en": "Company",
+        "me": "Pravno lice / Firma",
+        "ru": "Компания",
+        "ua": "Компанія"
+      },
+      "companyAddress": {
+        "en": "Company HQ Address",
+        "me": "Adresa sjedišta",
+        "ru": "Юридический адрес",
+        "ua": "Юридична адреса"
+      },
+      "companyName": {
+        "en": "Company Name",
+        "me": "Naziv firme",
+        "ru": "Название компании",
+        "ua": "Назва компанії"
+      },
+      "companyPIB": {
+        "en": "Tax ID (PIB)",
+        "me": "PIB",
+        "ru": "ИНН (PIB)",
+        "ua": "ІПН (PIB)"
+      },
+      "confirmPassword": {
+        "en": "Confirm Password",
+        "me": "Potvrdi lozinku",
+        "ru": "Подтвердите пароль",
+        "ua": "Підтвердьте пароль"
+      },
+      "email": {
+        "en": "Email",
+        "me": "Email",
+        "ru": "Email",
+        "ua": "Email"
+      },
+      "individual": {
+        "en": "Individual",
+        "me": "Fizičko lice",
+        "ru": "Частное лицо",
+        "ua": "Приватна особа"
+      },
+      "newPassword": {
+        "en": "New Password",
+        "me": "Nova lozinka",
+        "ru": "Новый пароль",
+        "ua": "Новий пароль"
+      },
+      "password": {
+        "en": "Password",
+        "me": "Lozinka",
+        "ru": "Пароль",
+        "ua": "Пароль"
+      }
+    },
+    "forgot": {
+      "link": {
+        "en": "Forgot Password?",
+        "me": "Zaboravljena lozinka?",
+        "ru": "Забыли пароль?",
+        "ua": "Забули свій пароль?"
+      },
+      "submit": {
+        "en": "Send Reset Link",
+        "me": "Pošalji link",
+        "ru": "Отправить ссылку",
+        "ua": "Надіслати посилання"
+      },
+      "subtitle": {
+        "en": "Enter your email for reset instructions",
+        "me": "Unesi svoj email i poslaćemo ti link",
+        "ru": "Введите email, и мы отправим ссылку",
+        "ua": "Введіть email, і ми відправимо посилання"
+      },
+      "title": {
+        "en": "Forgot Password?",
+        "me": "Zaboravio si lozinku?",
+        "ru": "Забыли пароль?",
+        "ua": "Забули свій пароль?"
+      },
+      "toggle": {
+        "en": "Back to Login",
+        "me": "Nazad na prijavu",
+        "ru": "Вернуться к входу",
+        "ua": "Повернутись до входу"
+      }
+    },
+    "login": {
+      "submit": {
+        "en": "Log In",
+        "me": "Prijavi se",
+        "ru": "Войти",
+        "ua": "Увійти"
+      },
+      "subtitle": {
+        "en": "Log in to your Radionica3D account",
+        "me": "Prijavi se na svoj Radionica3D nalog",
+        "ru": "Войдите в свой аккаунт Radionica3D",
+        "ua": "Увійдіть у свій акаунт Radionica3D"
+      },
+      "title": {
+        "en": "Welcome Back",
+        "me": "Dobrodošao nazad",
+        "ru": "С возвращением",
+        "ua": "З поверненням"
+      },
+      "toggle": {
+        "en": "New here? Create an account",
+        "me": "Nemaš nalog? Registruj se",
+        "ru": "Нет аккаунта? Зарегистрируйтесь",
+        "ua": "Немає облікового запису? Зареєструйтесь"
+      }
+    },
+    "orContinueWith": {
+      "en": "Or continue with",
+      "me": "Ili nastavi sa",
+      "ru": "Или продолжить через",
+      "ua": "Або продовжити через"
+    },
+    "register": {
+      "submit": {
+        "en": "Create Account",
+        "me": "Registruj se",
+        "ru": "Зарегистрироваться",
+        "ua": "Зареєструватися"
+      },
+      "subtitle": {
+        "en": "Start printing your ideas today",
+        "me": "Počni da štampaš svoje ideje danas",
+        "ru": "Начните печатать свои идеи сегодня",
+        "ua": "Почніть друкувати свої ідеї сьогодні"
+      },
+      "title": {
+        "en": "Join Us",
+        "me": "Kreiraj nalog",
+        "ru": "Создать аккаунт",
+        "ua": "Створити обліковий запис"
+      },
+      "toggle": {
+        "en": "Already have an account? Log In",
+        "me": "Već imaš nalog? Prijavi se",
+        "ru": "Уже есть аккаунт? Войдите",
+        "ua": "Вже є обліковий запис? Увійдіть"
+      }
+    },
+    "reset": {
+      "submit": {
+        "en": "Reset Password",
+        "me": "Potvrdi novu lozinku",
+        "ru": "Сбросить пароль",
+        "ua": "Скинути пароль"
+      },
+      "subtitle": {
+        "en": "Choose a strong new password",
+        "me": "Kreiraj novu sigurnu lozinku",
+        "ru": "Придумайте новый надежный пароль",
+        "ua": "Придумайте новий надійний пароль"
+      },
+      "title": {
+        "en": "Reset Password",
+        "me": "Nova lozinka",
+        "ru": "Сброс пароля",
+        "ua": "Скидання пароля"
+      },
+      "token": {
+        "en": "Code from email",
+        "me": "Kod iz mejla",
+        "ru": "Код из письма",
+        "ua": "Код із листа"
+      }
+    },
+    "studio": {
+      "en": "3D Printing Studio",
+      "me": "3D Printing Studio",
+      "ru": "Студия 3D Печати",
+      "ua": "Студія 3D Друку"
+    },
+    "toasts": {
+      "reviewApproved": {
+        "en": "Review approved and published",
+        "me": "Recenzija odobrena i objavljena",
+        "ru": "Отзыв одобрен и опубликован",
+        "ua": "Відгук схвалено та опубліковано"
+      },
+      "accountCreated": {
+        "en": "Account created!",
+        "me": "Nalog je kreiran!",
+        "ru": "Аккаунт создан!",
+        "ua": "Акаунт створено!"
+      },
+      "checkEmailForVerify": {
+        "en": "Please check your email to verify your account.",
+        "me": "Molimo provjerite svoj email kako biste potvrdili nalog.",
+        "ru": "Пожалуйста, проверьте свою электронную почту, чтобы подтвердить свой аккаунт.",
+        "ua": "Будь ласка, перевірте свою електронну пошту, щоб підтвердити свій обліковий запис."
+      },
+      "linkExpired": {
+        "en": "Reset link has expired or is invalid.",
+        "me": "Link za resetovanje lozinke je istekao ili je nevažeći.",
+        "ru": "Ссылка для сброса пароля истекла или недействительна.",
+        "ua": "Посилання для скидання пароля закінчилося або є недійсним."
+      },
+      "verificationFailed": {
+        "en": "Email verification failed.",
+        "me": "Verifikacija email-a nije uspjela.",
+        "ru": "Ошибка верификации email.",
+        "ua": "Помилка верифікації email."
+      },
+      "googleLoginFailed": {
+        "en": "Google Login failed.",
+        "me": "Google prijava nije uspjela.",
+        "ru": "Ошибка входа через Google.",
+        "ua": "Помилка входу через Google."
+      },
+      "passwordChanged": {
+        "en": "Password changed successfully!",
+        "me": "Lozinka uspješno promijenjena!",
+        "ru": "Пароль успешно изменен!",
+        "ua": "Пароль успішно змінено!"
+      },
+      "passwordsNoMatch": {
+        "en": "Passwords do not match",
+        "me": "Lozinke se ne podudaraju",
+        "ru": "Пароли не совпадают",
+        "ua": "Паролі не збігаються"
+      },
+      "resetLinkSent": {
+        "en": "Password reset link has been sent to your email.",
+        "me": "Link za resetovanje lozinke je poslat na vaš email.",
+        "ru": "Ссылка на сброс пароля отправлена на почту.",
+        "ua": "Посилання на скидання пароля надіслано на пошту."
+      },
+      "socialSoon": {
+        "en": "{provider} login coming soon!",
+        "me": "{provider} prijava stiže uskoro!",
+        "ru": "Вход через {provider} скоро появится!",
+        "ua": "Вхід через {provider} скоро з'явиться!"
+      },
+      "verified": {
+        "en": "Account verified! You can now log in.",
+        "me": "Nalog je potvrđen! Sada se možete prijaviti.",
+        "ru": "Аккаунт подтвержден! Теперь можно войти.",
+        "ua": "Акаунт підтверджено! Тепер можна увійти."
+      },
+      "welcomeBack": {
+        "en": "Welcome back!",
+        "me": "Dobrodošao nazad!",
+        "ru": "С возвращением!",
+        "ua": "З поверненням!"
+      }
+    }
+  }
+}

+ 184 - 0
src/locales/master_user/blog.json

@@ -0,0 +1,184 @@
+{
+  "blog": {
+    "back": {
+      "en": "Back to Blog",
+      "me": "Nazad na Blog",
+      "ru": "Назад в блог",
+      "ua": "Назад до блогу"
+    },
+    "categories": {
+      "caseStudies": {
+        "en": "Case Studies",
+        "me": "Studije slučaja",
+        "ru": "Кейсы",
+        "ua": "Кейси"
+      },
+      "industry": {
+        "en": "Industry",
+        "me": "Industrija",
+        "ru": "Индустрия",
+        "ua": "Індустрія"
+      },
+      "materials": {
+        "en": "Materials",
+        "me": "Materijali",
+        "ru": "Материалы",
+        "ua": "Матеріали"
+      },
+      "technology": {
+        "en": "Technology",
+        "me": "Tehnologija",
+        "ru": "Технологии",
+        "ua": "Технології"
+      },
+      "title": {
+        "en": "Categories",
+        "me": "Kategorije",
+        "ru": "Категории",
+        "ua": "Категорії"
+      },
+      "tutorials": {
+        "en": "Tutorials",
+        "me": "Vodiči",
+        "ru": "Уроки",
+        "ua": "Уроки"
+      }
+    },
+    "dateFormat": {
+      "en": "{date}",
+      "me": "{date}",
+      "ru": "{date}",
+      "ua": "{date}"
+    },
+    "exploreOther": {
+      "en": "Explore other articles",
+      "me": "Istražite druge članke",
+      "ru": "Посмотреть другие",
+      "ua": "Переглянути інші"
+    },
+    "featured": {
+      "en": "Featured",
+      "me": "Izdvojeno",
+      "ru": "Рекомендуемое",
+      "ua": "Рекомендоване"
+    },
+    "featuredPost": {
+      "excerpt": {
+        "en": "How digital manufacturing is changing the local craft business.",
+        "me": "Kako digitalna proizvodnja mijenja lokalni zanat.",
+        "ru": "Как цифровое производство меняет местный ремесленный бизнес.",
+        "ua": "Як цифрове виробництво змінює місцевий ремісничий бізнес."
+      },
+      "title": {
+        "en": "The Future of 3D Printing in Montenegro",
+        "me": "Budućnost 3D štampe u Crnoj Gori",
+        "ru": "Будущее 3D-печати в Черногории",
+        "ua": "Майбутнє 3D-друку в Чорногорії"
+      }
+    },
+    "latestPosts": {
+      "en": "Latest Posts",
+      "me": "Najnoviji članci",
+      "ru": "Последние записи",
+      "ua": "Останні записи"
+    },
+    "loading": {
+      "en": "Loading articles...",
+      "me": "Učitavanje članaka...",
+      "ru": "Загрузка записей...",
+      "ua": "Завантаження записів..."
+    },
+    "loadingSingle": {
+      "en": "Loading article...",
+      "me": "Učitavanje članka...",
+      "ru": "Загрузка записи...",
+      "ua": "Завантаження запису..."
+    },
+    "newsletter": {
+      "content": {
+        "en": "Stay in loop.",
+        "me": "Budite u toku.",
+        "ru": "Будьте в курсе.",
+        "ua": "Будьте в курсі."
+      },
+      "placeholder": {
+        "en": "Email",
+        "me": "Email",
+        "ru": "Email",
+        "ua": "Email"
+      },
+      "subscribe": {
+        "en": "Subscribe",
+        "me": "Prijavi se",
+        "ru": "Подписаться",
+        "ua": "Підписатися"
+      },
+      "title": {
+        "en": "Newsletter",
+        "me": "Bilten",
+        "ru": "Рассылка",
+        "ua": "Розсилка"
+      }
+    },
+    "notFound": {
+      "en": "Post not found",
+      "me": "Članak nije pronađen",
+      "ru": "Запись не найдена",
+      "ua": "Запис не знайдено"
+    },
+    "post1": {
+      "excerpt": {
+        "en": "Choosing the right tech.",
+        "me": "Odabir tehnologije.",
+        "ru": "Выбор технологии.",
+        "ua": "Вибір технології."
+      },
+      "title": {
+        "en": "FDM vs SLA",
+        "me": "FDM i SLA",
+        "ru": "FDM против SLA",
+        "ua": "FDM проти SLA"
+      }
+    },
+    "post2": {
+      "excerpt": {
+        "en": "Which one to use?",
+        "me": "Koji koristiti?",
+        "ru": "Какой использовать?",
+        "ua": "Який використовувати?"
+      },
+      "title": {
+        "en": "Materials Guide",
+        "me": "Vodič materijala",
+        "ru": "Гайд по материалам",
+        "ua": "Гайд по матеріалах"
+      }
+    },
+    "post3": {
+      "excerpt": {
+        "en": "Optimize your STL.",
+        "me": "Optimizujte STL.",
+        "ru": "Оптимизация STL.",
+        "ua": "Оптимізація STL."
+      },
+      "title": {
+        "en": "Design Tips",
+        "me": "Savjeti za dizajn",
+        "ru": "Советы по дизайну",
+        "ua": "Поради з дизайну"
+      }
+    },
+    "readMore": {
+      "en": "Read More",
+      "me": "Pročitaj više",
+      "ru": "Читать далее",
+      "ua": "Читати далі"
+    },
+    "subtitle": {
+      "en": "3D Printing News & Tips",
+      "me": "Vijesti i savjeti o 3D štampi",
+      "ru": "Новости и советы о 3D-печати",
+      "ua": "Новини та поради про 3D-друк"
+    }
+  }
+}

+ 224 - 0
src/locales/master_user/careers.json

@@ -0,0 +1,224 @@
+{
+  "careers": {
+    "apply": {
+      "en": "Apply",
+      "me": "Prijavi se",
+      "ru": "Подать заявку",
+      "ua": "Подати заявку"
+    },
+    "contact": {
+      "en": "Contact",
+      "me": "Kontakt",
+      "ru": "Контакт",
+      "ua": "Контакт"
+    },
+    "cta": {
+      "content": {
+        "en": "Send info.",
+        "me": "Pošaljite info.",
+        "ru": "Пришлите информацию.",
+        "ua": "Надішліть інформацію."
+      },
+      "title": {
+        "en": "Other?",
+        "me": "Ostalo?",
+        "ru": "Другое?",
+        "ua": "Інше?"
+      }
+    },
+    "openPositions": {
+      "position1": {
+        "description": {
+          "en": "3D printer farm management.",
+          "me": "Upravljanje farmom štampača.",
+          "ru": "Управление фермой принтеров.",
+          "ua": "Управління фермою принтерів."
+        },
+        "location": {
+          "en": "Herceg Novi",
+          "me": "Herceg Novi",
+          "ru": "Херцег-Нови",
+          "ua": "Херцег-Нові"
+        },
+        "title": {
+          "en": "Technician",
+          "me": "Tehničar",
+          "ru": "Техник",
+          "ua": "Технік"
+        },
+        "type": {
+          "en": "Full-time",
+          "me": "Puno radno vrijeme",
+          "ru": "Полный день",
+          "ua": "Повний день"
+        }
+      },
+      "position2": {
+        "description": {
+          "en": "Customer help.",
+          "me": "Pomoć klijentima.",
+          "ru": "Помощь клиентам.",
+          "ua": "Допомога клієнтам."
+        },
+        "location": {
+          "en": "Montenegro",
+          "me": "Crna Gora",
+          "ru": "Черногория",
+          "ua": "Чорногорія"
+        },
+        "title": {
+          "en": "Support",
+          "me": "Podrška",
+          "ru": "Поддержка",
+          "ua": "Підтримка"
+        },
+        "type": {
+          "en": "Remote",
+          "me": "Daljinski",
+          "ru": "Удаленно",
+          "ua": "Віддалено"
+        }
+      },
+      "title": {
+        "en": "Positions",
+        "me": "Pozicije",
+        "ru": "Вакансии",
+        "ua": "Вакансії"
+      }
+    },
+    "process": {
+      "step1": {
+        "description": {
+          "en": "Send CV.",
+          "me": "Pošaljite CV.",
+          "ru": "Пришлите CV.",
+          "ua": "Надішліть CV."
+        },
+        "title": {
+          "en": "Apply",
+          "me": "Prijava",
+          "ru": "Заявка",
+          "ua": "Заявка"
+        }
+      },
+      "step2": {
+        "description": {
+          "en": "We check.",
+          "me": "Pregledamo.",
+          "ru": "Мы проверяем.",
+          "ua": "Ми перевіряємо."
+        },
+        "title": {
+          "en": "Review",
+          "me": "Pregled",
+          "ru": "Обзор",
+          "ua": "Огляд"
+        }
+      },
+      "step3": {
+        "description": {
+          "en": "Chat.",
+          "me": "Razgovor.",
+          "ru": "Беседа.",
+          "ua": "Бесіда."
+        },
+        "title": {
+          "en": "Interview",
+          "me": "Intervju",
+          "ru": "Интервью",
+          "ua": "Інтерв'ю"
+        }
+      },
+      "step4": {
+        "description": {
+          "en": "Done.",
+          "me": "Gotovo.",
+          "ru": "Готово.",
+          "ua": "Готово."
+        },
+        "title": {
+          "en": "Offer",
+          "me": "Ponuda",
+          "ru": "Предложение",
+          "ua": "Пропозиція"
+        }
+      },
+      "title": {
+        "en": "Process",
+        "me": "Proces",
+        "ru": "Процесс",
+        "ua": "Процес"
+      }
+    },
+    "subtitle": {
+      "en": "Join our team.",
+      "me": "Pridružite se timu.",
+      "ru": "Присоединяйтесь к команде.",
+      "ua": "Приєднуйтесь до команди."
+    },
+    "whyWork": {
+      "growth": {
+        "content": {
+          "en": "Fast growth.",
+          "me": "Brz rast.",
+          "ru": "Быстрый рост.",
+          "ua": "Швидкий ріст."
+        },
+        "title": {
+          "en": "Growth",
+          "me": "Rast",
+          "ru": "Рост",
+          "ua": "Ріст"
+        }
+      },
+      "impact": {
+        "content": {
+          "en": "Real impact.",
+          "me": "Stvarni uticaj.",
+          "ru": "Реальный вклад.",
+          "ua": "Реальний внесок."
+        },
+        "title": {
+          "en": "Impact",
+          "me": "Uticaj",
+          "ru": "Влияние",
+          "ua": "Вплив"
+        }
+      },
+      "innovation": {
+        "content": {
+          "en": "Best tech.",
+          "me": "Najbolja tehnologija.",
+          "ru": "Лучшие технологии.",
+          "ua": "Кращі технології."
+        },
+        "title": {
+          "en": "Innovation",
+          "me": "Inovacije",
+          "ru": "Инновации",
+          "ua": "Інновації"
+        }
+      },
+      "team": {
+        "content": {
+          "en": "Great folks.",
+          "me": "Sjajni ljudi.",
+          "ru": "Отличные люди.",
+          "ua": "Чудові люди."
+        },
+        "title": {
+          "en": "Team",
+          "me": "Tim",
+          "ru": "Команда",
+          "ua": "Команда"
+        }
+      },
+      "title": {
+        "en": "Why Us?",
+        "me": "Zašto mi?",
+        "ru": "Почему мы?",
+        "ua": "Чому ми?"
+      }
+    }
+  }
+}

+ 40 - 0
src/locales/master_user/chat.json

@@ -0,0 +1,40 @@
+{
+  "chat": {
+    "admin": {
+      "en": "Support",
+      "me": "Podrška",
+      "ru": "Поддержка",
+      "ua": "Підтримка"
+    },
+    "empty": {
+      "en": "No messages yet. Start a conversation!",
+      "me": "Još nema poruka. Započnite razgovor!",
+      "ru": "Сообщений пока нет. Начните диалог!",
+      "ua": "Повідомлень поки що немає. Почніть діалог!"
+    },
+    "open": {
+      "en": "Chat",
+      "me": "Čat",
+      "ru": "Чат",
+      "ua": "Чат"
+    },
+    "placeholder": {
+      "en": "Type a message...",
+      "me": "Upišite poruku...",
+      "ru": "Напишите сообщение...",
+      "ua": "Напишіть повідомлення..."
+    },
+    "title": {
+      "en": "Order Chat",
+      "me": "Čat za narudžbu",
+      "ru": "Чат по заказу",
+      "ua": "Чат на замовлення"
+    },
+    "unread": {
+      "en": "New message",
+      "me": "Nova poruka",
+      "ru": "Новое сообщение",
+      "ua": "Нове повідомлення"
+    }
+  }
+}

+ 40 - 0
src/locales/master_user/common.json

@@ -0,0 +1,40 @@
+{
+  "common": {
+    "back": {
+      "en": "Back",
+      "me": "Nazad",
+      "ru": "Назад",
+      "ua": "Назад"
+    },
+    "default": {
+      "en": "Default",
+      "me": "Podrazumijevano",
+      "ru": "По умолчанию",
+      "ua": "За замовчуванням"
+    },
+    "or": {
+      "en": "or",
+      "me": "ili",
+      "ru": "или",
+      "ua": "або"
+    },
+    "orderId": {
+      "en": "Order #{id}",
+      "me": "Narudžba #{id}",
+      "ru": "Заказ #{id}",
+      "ua": "Замовлення #{id}"
+    },
+    "pending": {
+      "en": "Pending...",
+      "me": "Na čekanju...",
+      "ru": "Ожидание...",
+      "ua": "Очікування..."
+    },
+    "save_continue": {
+      "en": "Save and Continue",
+      "me": "Sačuvaj i nastavi",
+      "ru": "Сохранить и продолжить",
+      "ua": "Зберегти та продовжити"
+    }
+  }
+}

+ 232 - 0
src/locales/master_user/contact.json

@@ -0,0 +1,232 @@
+{
+  "contact": {
+    "form": {
+      "email": {
+        "label": {
+          "en": "Email",
+          "me": "Email",
+          "ru": "Email",
+          "ua": "Email"
+        },
+        "placeholder": {
+          "en": "your{'@'}email.com",
+          "me": "vas{'@'}email.com",
+          "ru": "vash{'@'}email.com",
+          "ua": "vash{'@'}email.com"
+        }
+      },
+      "file": {
+        "button": {
+          "en": "Select File",
+          "me": "Izaberi fajl",
+          "ru": "Выбрать файл",
+          "ua": "Обрати файл"
+        },
+        "description": {
+          "en": "Max 50MB. Formats: .stl, .obj, .step, .3mf",
+          "me": "Maks. 50MB. Formati: .stl, .obj, .step, .3mf",
+          "ru": "Макс. 50МБ. Форматы: .stl, .obj, .step, .3mf",
+          "ua": "Макс. 50МБ. Формати: .stl, .obj, .step, .3mf"
+        },
+        "label": {
+          "en": "Project Files (Optional)",
+          "me": "Djelovi projekta (Opciono)",
+          "ru": "Файлы проекта (опционально)",
+          "ua": "Файли проєкту (опціонально)"
+        },
+        "selected": {
+          "en": "File selected: {fileName}",
+          "me": "Izabran fajl: {fileName}",
+          "ru": "Выбран файл: {fileName}",
+          "ua": "Обрано файл: {fileName}"
+        }
+      },
+      "message": {
+        "label": {
+          "en": "Message",
+          "me": "Poruka",
+          "ru": "Сообщение",
+          "ua": "Повідомлення"
+        },
+        "placeholder": {
+          "en": "Tell us about your project...",
+          "me": "Recite nam nešto o vašem projektu...",
+          "ru": "Расскажите нам о вашем проекте...",
+          "ua": "Розкажіть нам про ваш проєкт..."
+        }
+      },
+      "name": {
+        "label": {
+          "en": "Your Name",
+          "me": "Vaše ime",
+          "ru": "Ваше имя",
+          "ua": "Ваше ім'я"
+        },
+        "placeholder": {
+          "en": "John Doe",
+          "me": "Marko Marković",
+          "ru": "Иван Иванов",
+          "ua": "Іван Іванов"
+        }
+      },
+      "subject": {
+        "label": {
+          "en": "Subject",
+          "me": "Tema",
+          "ru": "Тема",
+          "ua": "Тема"
+        },
+        "options": {
+          "careers": {
+            "en": "Careers",
+            "me": "Karijera",
+            "ru": "Карьера",
+            "ua": "Кар'єра"
+          },
+          "general": {
+            "en": "General Inquiry",
+            "me": "Opšti upit",
+            "ru": "Общий вопрос",
+            "ua": "Загальне питання"
+          },
+          "other": {
+            "en": "Other",
+            "me": "Ostalo",
+            "ru": "Другое",
+            "ua": "Інше"
+          },
+          "quote": {
+            "en": "Request Quote",
+            "me": "Upit za cijenu",
+            "ru": "Запрос цены",
+            "ua": "Запит ціни"
+          },
+          "support": {
+            "en": "Technical Support",
+            "me": "Tehnička podrška",
+            "ru": "Техподдержка",
+            "ua": "Техпідтримка"
+          }
+        },
+        "placeholder": {
+          "en": "Select a topic",
+          "me": "Izaberite temu",
+          "ru": "Выберите тему",
+          "ua": "Оберіть тему"
+        }
+      },
+      "submit": {
+        "en": "Send Message",
+        "me": "Pošalji poruku",
+        "ru": "Отправить сообщение",
+        "ua": "Надіслати повідомлення"
+      },
+      "submitting": {
+        "en": "Sending...",
+        "me": "Slanje...",
+        "ru": "Отправка...",
+        "ua": "Надсилання..."
+      },
+      "success": {
+        "en": "Message sent! We'll get back to you soon.",
+        "me": "Poruka je poslata! Javićemo vam se uskoro.",
+        "ru": "Сообщение отправлено! Мы скоро свяжемся с вами.",
+        "ua": "Повідомлення відправлено! Ми скоро зв'яжемося з вами."
+      },
+      "title": {
+        "en": "Send a Message",
+        "me": "Pošaljite poruku",
+        "ru": "Напишите нам",
+        "ua": "Напишіть нам"
+      }
+    },
+    "info": {
+      "email": {
+        "description": {
+          "en": "We usually respond within 2 hours.",
+          "me": "Obično odgovaramo u roku od 2 sata.",
+          "ru": "Мы обычно отвечаем в течение 2 часов.",
+          "ua": "Ми зазвичай відповідаємо протягом 2 годин."
+        },
+        "title": {
+          "en": "Email",
+          "me": "Email",
+          "ru": "Email",
+          "ua": "Email"
+        }
+      },
+      "hours": {
+        "description": {
+          "en": "Online support is available daily.",
+          "me": "Online podrška je dostupna svakodnevno.",
+          "ru": "Онлайн-поддержка доступна ежедневно.",
+          "ua": "Онлайн-підтримка доступна щоденно."
+        },
+        "schedule": {
+          "en": "Mon - Fri: 09:00 - 18:00",
+          "me": "Pon - Pet: 09:00 - 18:00",
+          "ru": "Пн - Пт: 09:00 - 18:00",
+          "ua": "Пн - Пт: 09:00 - 18:00"
+        },
+        "title": {
+          "en": "Working Hours",
+          "me": "Radno vrijeme",
+          "ru": "График работы",
+          "ua": "Графік роботи"
+        }
+      },
+      "location": {
+        "description": {
+          "en": "Stop by for a coffee and discuss your project.",
+          "me": "Navratite na kafu da porazgovaramo o vašem projektu.",
+          "ru": "Заходите на кофе, чтобы обсудить ваш проект.",
+          "ua": "Заходьте на каву, щоб обговорити ваш проєкт."
+        },
+        "title": {
+          "en": "Location",
+          "me": "Lokacija",
+          "ru": "Адрес",
+          "ua": "Адреса"
+        }
+      },
+      "social": {
+        "facebook": {
+          "en": "Facebook",
+          "me": "Facebook",
+          "ru": "Facebook",
+          "ua": "Facebook"
+        },
+        "instagram": {
+          "en": "Instagram",
+          "me": "Instagram",
+          "ru": "Instagram",
+          "ua": "Instagram"
+        },
+        "linkedin": {
+          "en": "LinkedIn",
+          "me": "LinkedIn",
+          "ru": "LinkedIn",
+          "ua": "LinkedIn"
+        },
+        "title": {
+          "en": "Social Media",
+          "me": "Društvene mreže",
+          "ru": "Социальные сети",
+          "ua": "Соціальні мережі"
+        }
+      },
+      "title": {
+        "en": "Contact Info",
+        "me": "Kontakt info",
+        "ru": "Контактная информация",
+        "ua": "Контактна інформація"
+      }
+    },
+    "subtitle": {
+      "en": "Get in touch.",
+      "me": "Budimo u kontaktu.",
+      "ru": "Свяжитесь с нами.",
+      "ua": "Зв'яжіться з нами."
+    }
+  }
+}

+ 22 - 0
src/locales/master_user/cookies.json

@@ -0,0 +1,22 @@
+{
+  "cookies": {
+    "accept": {
+      "en": "Accept",
+      "me": "Prihvati",
+      "ru": "Принять",
+      "ua": "Прийняти"
+    },
+    "leave": {
+      "en": "Leave",
+      "me": "Napusti",
+      "ru": "Уйти",
+      "ua": "Піти"
+    },
+    "message": {
+      "en": "This site uses cookies to improve your experience and analyze traffic.",
+      "me": "Ovaj sajt koristi kolačiće za pružanje boljeg korisničkog iskustva.",
+      "ru": "Данный сайт использует файлы cookie для улучшения пользовательского опыта.",
+      "ua": "Цей сайт використовує файли cookie для покращення досвіду користувача."
+    }
+  }
+}

+ 62 - 0
src/locales/master_user/errors.json

@@ -0,0 +1,62 @@
+{
+  "errors": {
+    "404": {
+      "button": {
+        "en": "Return to Home",
+        "me": "Povratak na početnu",
+        "ru": "Вернуться на главную",
+        "ua": "Повернутися на головну"
+      },
+      "subtitle": {
+        "en": "Oops! Page not found",
+        "me": "Ups! Stranica nije pronađena",
+        "ru": "Страница не найдена",
+        "ua": "Сторінка не знайдена"
+      },
+      "title": {
+        "en": "404",
+        "me": "404",
+        "ru": "Ошибка 404",
+        "ua": "Помилка 404"
+      }
+    },
+    "field_required": {
+      "en": "This field is required",
+      "me": "Ovo polje je obavezno",
+      "ru": "Это поле обязательно для заполнения",
+      "ua": "Це поле є обов'язковим для заповнення"
+    },
+    "missing": {
+      "en": "Field is required",
+      "me": "Ovo polje je obavezno",
+      "ru": "Обязательное поле",
+      "ua": "Обов'язкове поле"
+    },
+    "string_too_short": {
+      "en": "Too short, min {{min_length}} characters",
+      "me": "Previše kratko, min {{min_length}} karaktera",
+      "ru": "Слишком коротко, минимум {{min_length}} символов",
+      "ua": "Дуже коротко, мінімум {{min_length}} символів"
+    },
+    "too_short": {
+      "en": "Field too short",
+      "me": "Polje je previše kratko",
+      "ru": "Поле слишком короткое",
+      "ua": "Поле надто коротке"
+    },
+    "unknown": {
+      "en": "Something went wrong",
+      "me": "Nešto je pošlo po zlu",
+      "ru": "Что-то пошло не так",
+      "ua": "Щось пішло не так"
+    },
+    "value_error": {
+      "email": {
+        "en": "Invalid email",
+        "me": "Neispravan email",
+        "ru": "Некорректный email",
+        "ua": "Некоректний email"
+      }
+    }
+  }
+}

+ 118 - 0
src/locales/master_user/footer.json

@@ -0,0 +1,118 @@
+{
+  "footer": {
+    "about": {
+      "en": "About Us",
+      "me": "O nama",
+      "ru": "О нас",
+      "ua": "Про нас"
+    },
+    "allRightsReserved": {
+      "en": "All rights reserved.",
+      "me": "Sva prava zadržana.",
+      "ru": "Все права защищены.",
+      "ua": "Усі права захищені."
+    },
+    "api": {
+      "en": "API",
+      "me": "API",
+      "ru": "API",
+      "ua": "API"
+    },
+    "blog": {
+      "en": "Blog",
+      "me": "Blog",
+      "ru": "Блог",
+      "ua": "Блог"
+    },
+    "careers": {
+      "en": "Careers",
+      "me": "Karijere",
+      "ru": "Вакансии",
+      "ua": "Вакансії"
+    },
+    "company": {
+      "en": "Company",
+      "me": "Kompanija",
+      "ru": "Компания",
+      "ua": "Компанія"
+    },
+    "contact": {
+      "en": "Contact",
+      "me": "Kontakt",
+      "ru": "Контакты",
+      "ua": "Контакти"
+    },
+    "contactDesc": {
+      "en": "If you have any questions or wish to exercise your data rights, please reach out to our dedicated team.",
+      "me": "Ako imate bilo kakvih pitanja, slobodno nas kontaktirajte.",
+      "ru": "Если у вас есть вопросы, свяжитесь с нами.",
+      "ua": "Якщо у вас є питання, зв'яжіться з нами."
+    },
+    "contactTitle": {
+      "en": "Need assistance?",
+      "me": "Kontakt",
+      "ru": "Контакты",
+      "ua": "Контакти"
+    },
+    "guidelines": {
+      "en": "Guidelines",
+      "me": "Uputstva",
+      "ru": "Руководство",
+      "ua": "Керівництво"
+    },
+    "help": {
+      "en": "Help Center",
+      "me": "Centar za pomoć",
+      "ru": "Справочный центр",
+      "ua": "Довідковий центр"
+    },
+    "intro": {
+      "en": "At Radionica3D, we are committed to protecting your personal data and ensuring transparency in how we handle it. This policy outlines our practices for users in Montenegro and internationally.",
+      "me": "Bavimo se digitalnom zanatom kroz 3D štampu u Crnoj Gori.",
+      "ru": "Мы занимаемся цифровым ремеслом через 3D-печать в Черногории.",
+      "ua": "Ми займаємося цифровим ремеслом через 3D-друк у Чорногорії."
+    },
+    "location": {
+      "en": "Herceg Novi, Montenegro",
+      "me": "Herceg Novi, Crna Gora",
+      "ru": "Херцег-Нови, Черногория",
+      "ua": "Херцег-Нові, Чорногорія"
+    },
+    "materials": {
+      "en": "Materials",
+      "me": "Materijali",
+      "ru": "Материалы",
+      "ua": "Матеріали"
+    },
+    "privacy": {
+      "en": "Privacy",
+      "me": "Privatnost",
+      "ru": "Конфиденциальность",
+      "ua": "Конфіденційність"
+    },
+    "services": {
+      "en": "Services",
+      "me": "Usluge",
+      "ru": "Услуги",
+      "ua": "Послуги"
+    },
+    "support": {
+      "en": "Support",
+      "me": "Podrška",
+      "ru": "Поддержка",
+      "ua": "Підтримка"
+    },
+    "tagline": {
+      "en": "Radionica 3D — A service built on trust. We do our best to make sure you are satisfied.",
+      "me": "Radionica 3D — Servis izgrađen na povjerenju. Trudimo se da budete zadovoljni.",
+      "ru": "Radionica 3D — сервис, построенный на доверии. Мы приложим все силы, чтобы Вы остались довольны.",
+      "ua": "Radionica 3D — сервіс, побудований на довірі. Ми докладемо всіх зусиль, щоб Ви залишилися задоволені."
+    },
+    "terms": {
+      "en": "Terms",
+      "me": "Uslovi",
+      "ru": "Условия",
+      "ua": "Умови"
+    }
+  }
+}

+ 554 - 0
src/locales/master_user/guidelines.json

@@ -0,0 +1,554 @@
+{
+  "guidelines": {
+    "designTips": {
+      "fdm": {
+        "bridging": {
+          "en": "Bridging",
+          "me": "Bridging",
+          "ru": "Bridging",
+          "ua": "Bridging"
+        },
+        "infill": {
+          "en": "Infill",
+          "me": "Infill",
+          "ru": "Infill",
+          "ua": "Infill"
+        },
+        "layerHeight": {
+          "en": "Layer Height",
+          "me": "Layer Height",
+          "ru": "Layer Height",
+          "ua": "Layer Height"
+        },
+        "overhangs": {
+          "en": "Overhangs",
+          "me": "Overhangs",
+          "ru": "Overhangs",
+          "ua": "Overhangs"
+        },
+        "title": {
+          "en": "FDM",
+          "me": "FDM",
+          "ru": "FDM",
+          "ua": "FDM"
+        }
+      },
+      "sla": {
+        "drainage": {
+          "en": "Drainage",
+          "me": "Drainage",
+          "ru": "Drainage",
+          "ua": "Drainage"
+        },
+        "orientation": {
+          "en": "Orientation",
+          "me": "Orientation",
+          "ru": "Orientation",
+          "ua": "Orientation"
+        },
+        "postProcessing": {
+          "en": "Post-processing",
+          "me": "Post-processing",
+          "ru": "Post-processing",
+          "ua": "Post-processing"
+        },
+        "supports": {
+          "en": "Supports",
+          "me": "Supports",
+          "ru": "Supports",
+          "ua": "Supports"
+        },
+        "title": {
+          "en": "SLA",
+          "me": "SLA",
+          "ru": "SLA",
+          "ua": "SLA"
+        }
+      },
+      "title": {
+        "en": "Design Tips",
+        "me": "Savjeti",
+        "ru": "Советы",
+        "ua": "Поради"
+      }
+    },
+    "filePreparation": {
+      "formats": {
+        "3mf": {
+          "en": "3MF",
+          "me": "3MF",
+          "ru": "3MF",
+          "ua": "3MF"
+        },
+        "obj": {
+          "en": "OBJ",
+          "me": "OBJ",
+          "ru": "OBJ",
+          "ua": "OBJ"
+        },
+        "step": {
+          "en": "STEP",
+          "me": "STEP",
+          "ru": "STEP",
+          "ua": "STEP"
+        },
+        "stl": {
+          "en": "STL",
+          "me": "STL",
+          "ru": "STL",
+          "ua": "STL"
+        },
+        "title": {
+          "en": "Formats",
+          "me": "Formati",
+          "ru": "Форматы",
+          "ua": "Формати"
+        }
+      },
+      "requirements": {
+        "normals": {
+          "en": "Correct Normals",
+          "me": "Ispravne normale",
+          "ru": "Правильные нормали",
+          "ua": "Правильні нормалі"
+        },
+        "scale": {
+          "en": "Proper Scale",
+          "me": "Ispravna razmjera",
+          "ru": "Правильный масштаб",
+          "ua": "Правильний масштаб"
+        },
+        "title": {
+          "en": "Requirements",
+          "me": "Zahtjevi",
+          "ru": "Требования",
+          "ua": "Вимоги"
+        },
+        "wallThickness": {
+          "en": "Min Wall Thickness",
+          "me": "Min debljina zida",
+          "ru": "Мин. толщина стенки",
+          "ua": "Мін. товщина стінки"
+        },
+        "watertight": {
+          "en": "Watertight",
+          "me": "Zatvorena geometrija (Watertight)",
+          "ru": "Герметичность (Watertight)",
+          "ua": "Герметичність (Watertight)"
+        }
+      },
+      "title": {
+        "en": "File Preparation",
+        "me": "Priprema fajla",
+        "ru": "Подготовка файлов",
+        "ua": "Підготовка файлів"
+      }
+    },
+    "help": {
+      "contact": {
+        "en": "Contact",
+        "me": "Kontaktirajte nas",
+        "ru": "Связаться",
+        "ua": "Зв'язатися"
+      },
+      "description": {
+        "en": "Ask us.",
+        "me": "Pitajte nas bilo šta o 3D štampi.",
+        "ru": "Задайте нам любой вопрос о 3D-печати.",
+        "ua": "Задайте нам будь-яке питання про 3D-друк."
+      },
+      "helpCenter": {
+        "en": "Help Center",
+        "me": "Centar za pomoć",
+        "ru": "Центр помощи",
+        "ua": "Центр допомоги"
+      },
+      "title": {
+        "en": "Need Help?",
+        "me": "Potrebna pomoć?",
+        "ru": "Нужна помощь?",
+        "ua": "Потрібна допомога?"
+      }
+    },
+    "materialSelection": {
+      "abs": {
+        "bestFor": {
+          "en": "Tech parts",
+          "me": "Tehnički djelovi",
+          "ru": "Технические детали",
+          "ua": "Технічні деталі"
+        },
+        "considerations": {
+          "en": "Heat resistant",
+          "me": "Otporan na toplotu",
+          "ru": "Термостойкий",
+          "ua": "Термостійкий"
+        },
+        "name": {
+          "en": "ABS",
+          "me": "ABS",
+          "ru": "ABS",
+          "ua": "ABS"
+        }
+      },
+      "petg": {
+        "bestFor": {
+          "en": "Durable",
+          "me": "Izdržljivi djelovi",
+          "ru": "Прочные изделия",
+          "ua": "Міцні вироби"
+        },
+        "considerations": {
+          "en": "Easy print",
+          "me": "Lako se štampa",
+          "ru": "Легкая печать",
+          "ua": "Легкий друк"
+        },
+        "name": {
+          "en": "PETG",
+          "me": "PETG",
+          "ru": "PETG",
+          "ua": "PETG"
+        }
+      },
+      "pla": {
+        "bestFor": {
+          "en": "Prototypes",
+          "me": "Prototipovi",
+          "ru": "Прототипы",
+          "ua": "Прототипи"
+        },
+        "considerations": {
+          "en": "Bio-degradable",
+          "me": "Biorazgradiv",
+          "ru": "Биоразлагаемый",
+          "ua": "Біорозкладний"
+        },
+        "name": {
+          "en": "PLA",
+          "me": "PLA",
+          "ru": "PLA",
+          "ua": "PLA"
+        }
+      },
+      "resin": {
+        "bestFor": {
+          "en": "Detail",
+          "me": "Detalji",
+          "ru": "Мелкие детали",
+          "ua": "Дрібні деталі"
+        },
+        "considerations": {
+          "en": "UV sensitive",
+          "me": "UV osjetljiv",
+          "ru": "УФ-чувствительный",
+          "ua": "УФ-чутливий"
+        },
+        "name": {
+          "en": "Resin",
+          "me": "Resin",
+          "ru": "Resin",
+          "ua": "Resin"
+        }
+      },
+      "table": {
+        "bestFor": {
+          "en": "Best For",
+          "me": "Najbolje za",
+          "ru": "Подходит для",
+          "ua": "Підходить для"
+        },
+        "considerations": {
+          "en": "Notes",
+          "me": "Napomene",
+          "ru": "Особенности",
+          "ua": "Особливості"
+        },
+        "material": {
+          "en": "Material",
+          "me": "Materijal",
+          "ru": "Материал",
+          "ua": "Матеріал"
+        }
+      },
+      "title": {
+        "en": "Materials",
+        "me": "Materijali",
+        "ru": "Материалы",
+        "ua": "Матеріали"
+      }
+    },
+    "nuances": {
+      "description": {
+        "en": "Products made using the FDM (Fused Deposition Modeling) method have a number of visual and tactile features that are normal for the technology and are not considered defects.",
+        "me": "Proizvodi napravljeni FDM metodom (slojevito topljenje plastike) imaju niz vizuelnih i taktilnih karakteristika koje su normalne za tehnologiju i ne smatramo ih defektima.",
+        "ru": "Изделия, изготовленные методом FDM (послойного наплавления пластика), имеют ряд визуальных и тактильных особенностей, которые являются нормой технологии и не считаются дефектами.",
+        "ua": "Вироби, виготовлені методом FDM (пошарового наплавлення пластику), мають ряд візуальних і тактильних особливостей, які є нормою технології та не вважаються дефектами."
+      },
+      "disclaimer": {
+        "text": {
+          "en": "These features are due to the very nature of FDM printing technology and do not affect the functionality of the product.",
+          "me": "Ove karakteristike su posledica same prirode tehnologije FDM štampe i ne utiču na funkcionalnost proizvoda.",
+          "ru": "Эти особенности обусловлены самой природой технологии FDM-печати и не влияют на функциональность изделия.",
+          "ua": "Ці особливості обумовлені самою природою технології FDM-друку і не впливають на функціональність виробу."
+        },
+        "title": {
+          "en": "Quality Assurance",
+          "me": "Garancija kvaliteta",
+          "ru": "Гарантия качества",
+          "ua": "Гарантія якості"
+        }
+      },
+      "items": {
+        "colorVariations": {
+          "description": {
+            "en": "Slight variations in shade or gloss.",
+            "me": "Blage varijacije nijanse ili sjaja.",
+            "ru": "Незначительные вариации оттенка или блеска.",
+            "ua": "Незначні варіації відтінку або блиску."
+          },
+          "details": {
+            "en": "Even within the same color, batch variations can occur.",
+            "me": "Čak i unutar iste boje, mogu se javiti varijacije u serijama.",
+            "ru": "Даже в рамках одного цвета возможны вариации.",
+            "ua": "Навіть у межах одного кольору можливі варіації."
+          },
+          "title": {
+            "en": "Color Variations",
+            "me": "Varijacije boja",
+            "ru": "Различия в оттенке",
+            "ua": "Відмінності у відтінку"
+          }
+        },
+        "dimensionalTolerances": {
+          "description": {
+            "en": "Minor deviations in overall dimensions.",
+            "me": "Manja odstupanja u ukupnim dimenzijama.",
+            "ru": "Небольшие допуски в размерах.",
+            "ua": "Невеликі допуски в розмірах."
+          },
+          "details": {
+            "en": "Caused by material properties and cooling effects.",
+            "me": "Uzrokovano svojstvima materijala i efektima hlađenja.",
+            "ru": "Обусловлено свойствами материалов и охлаждением.",
+            "ua": "Обумовлено властивостями матеріалів та охолодженням."
+          },
+          "title": {
+            "en": "Tolerances",
+            "me": "Tolerancije",
+            "ru": "Отклонения размеров",
+            "ua": "Допуски розмірів"
+          }
+        },
+        "layerStructure": {
+          "description": {
+            "en": "Visible horizontal lines on the surface.",
+            "me": "Vidljive horizontalne linije na površini.",
+            "ru": "Поверхность может иметь заметные линии слоёв.",
+            "ua": "Поверхня може мати помітні лінії шарів."
+          },
+          "details": {
+            "en": "A natural result of the layer-by-layer manufacturing process.",
+            "me": "Prirodan rezultat procesa proizvodnje sloj po sloj.",
+            "ru": "Естественный результат послойного построения модели.",
+            "ua": "Природний результат пошарової побудови моделі."
+          },
+          "title": {
+            "en": "Layered Structure",
+            "me": "Slojevita struktura",
+            "ru": "Слоистая структура",
+            "ua": "Пошарова структура"
+          }
+        },
+        "overhangs": {
+          "description": {
+            "en": "Potential sagging on unsupported parts.",
+            "me": "Moguće prohvjesivanje na neoslonjenim djelovima.",
+            "ru": "Возможно небольшое провисание на нависаниях.",
+            "ua": "Можливе невелике провисання на нависаннях."
+          },
+          "details": {
+            "en": "Inherent limitation for geometries without bottom support.",
+            "me": "Urođeno ograničenje za geometrije bez donje potpore.",
+            "ru": "Ограничение технологии для участков без опоры.",
+            "ua": "Обмеження технології для ділянок без опори."
+          },
+          "title": {
+            "en": "Overhangs",
+            "me": "Prepusti",
+            "ru": "Нависающие элементы",
+            "ua": "Особливості нависань"
+          }
+        },
+        "stringing": {
+          "description": {
+            "en": "Fine plastic hairs between elements.",
+            "me": "Tanke plastične niti između elemenata.",
+            "ru": "Тонкие пластиковые нити между элементами.",
+            "ua": "Тонкі пластикові нитки між елементами."
+          },
+          "details": {
+            "en": "Usually easily removed and don't affect structural integrity.",
+            "me": "Obično se lako uklanjaju i ne utiču na integritet.",
+            "ru": "Легко удаляются и не влияют на функциональность.",
+            "ua": "Легко видаляються і не впливають на функціональність."
+          },
+          "title": {
+            "en": "Stringing",
+            "me": "Niti (Stringing)",
+            "ru": "Мелкие ниточки (stringing)",
+            "ua": "Дрібні ниточки (stringing)"
+          }
+        },
+        "supportMarks": {
+          "description": {
+            "en": "Small marks where support structures were attached.",
+            "me": "Mali tragovi na mjestima gdje su bile podrške.",
+            "ru": "Следы в местах, где использовались поддержки.",
+            "ua": "Сліди в місцях, де використовувалися підтримки."
+          },
+          "details": {
+            "en": "Expected surface variations from necessary supports.",
+            "me": "Očekivane varijacije površine od potrebnih podrški.",
+            "ru": "Допускаются небольшие отличия в текстуре поверхности.",
+            "ua": "Допускаються невеликі відмінності в текстурі поверхні."
+          },
+          "title": {
+            "en": "Support Marks",
+            "me": "Tragovi podrški",
+            "ru": "Следы от поддержек",
+            "ua": "Сліди від підтримок"
+          }
+        },
+        "surfaceImperfections": {
+          "description": {
+            "en": "Minor roughness or micro-artifacts.",
+            "me": "Blaga hrapavost ili mikro-artefakti.",
+            "ru": "Лёгкая шероховатость или микронаплывы.",
+            "ua": "Легка шорсткість або мікронапливи."
+          },
+          "details": {
+            "en": "Common on complex geometry and fine details.",
+            "me": "Uobičajeno na složenoj geometriji i finim detaljima.",
+            "ru": "Допускается на сложной геометрии.",
+            "ua": "Допускається на складній геометрії."
+          },
+          "title": {
+            "en": "Surface Texture",
+            "me": "Tekstura površine",
+            "ru": "Неровности и текстура",
+            "ua": "Нерівності та текстура"
+          }
+        },
+        "zSeam": {
+          "description": {
+            "en": "A vertical line or point on the surface.",
+            "me": "Vertikalna linija ili tačka na površini.",
+            "ru": "Вертикальная линия или точка на поверхности.",
+            "ua": "Вертикальна лінія або точка на поверхні."
+          },
+          "details": {
+            "en": "The point where each print layer starts and ends.",
+            "me": "Tačka gdje svaki sloj štampe počinje i završava.",
+            "ru": "Место, где начинается и заканчивается каждый слой.",
+            "ua": "Місце, де починається і закінчується кожен шар."
+          },
+          "title": {
+            "en": "Z-Seam",
+            "me": "Z-šav",
+            "ru": "Швы (Z-seam)",
+            "ua": "Шви (Z-seam)"
+          }
+        }
+      },
+      "subtitle": {
+        "en": "What to expect from FDM printing",
+        "me": "Šta očekivati od FDM štampe",
+        "ru": "Чего ожидать от FDM-печати",
+        "ua": "Чого очікувати від FDM-друку"
+      },
+      "title": {
+        "en": "3D Printing Nuances",
+        "me": "Nijanse 3D štampe",
+        "ru": "Нюансы 3D-печати",
+        "ua": "Нюанси 3D-друку"
+      }
+    },
+    "orderingProcess": {
+      "step1": {
+        "description": {
+          "en": "Send file",
+          "me": "Pošaljite model",
+          "ru": "Загрузите файл",
+          "ua": "Завантажте файл"
+        },
+        "title": {
+          "en": "Upload",
+          "me": "Upload",
+          "ru": "Загрузка",
+          "ua": "Завантаження"
+        }
+      },
+      "step2": {
+        "description": {
+          "en": "We craft",
+          "me": "Mi izrađujemo",
+          "ru": "Мы изготавливаем",
+          "ua": "Ми виготовляємо"
+        },
+        "title": {
+          "en": "Print",
+          "me": "Štampa",
+          "ru": "Печать",
+          "ua": "Друк"
+        }
+      },
+      "step3": {
+        "description": {
+          "en": "By mail",
+          "me": "Dostava kurirom",
+          "ru": "Доставка почтой",
+          "ua": "Доставка поштою"
+        },
+        "title": {
+          "en": "Ship",
+          "me": "Dostava",
+          "ru": "Доставка",
+          "ua": "Доставка"
+        }
+      },
+      "step4": {
+        "description": {
+          "en": "Trust model",
+          "me": "Sigurno plaćanje",
+          "ru": "Удобная оплата",
+          "ua": "Зручна оплата"
+        },
+        "title": {
+          "en": "Pay",
+          "me": "Plaćanje",
+          "ru": "Оплата",
+          "ua": "Оплата"
+        }
+      },
+      "title": {
+        "en": "Process",
+        "me": "Process",
+        "ru": "Process",
+        "ua": "Process"
+      }
+    },
+    "subtitle": {
+      "en": "Healthy environment.",
+      "me": "Zdravo okruženje.",
+      "ru": "Творческая атмосфера.",
+      "ua": "Творча атмосфера."
+    },
+    "title": {
+      "en": "Guidelines",
+      "me": "Pravila",
+      "ru": "Правила",
+      "ua": "Правила"
+    }
+  }
+}

+ 186 - 0
src/locales/master_user/help.json

@@ -0,0 +1,186 @@
+{
+  "help": {
+    "categories": {
+      "ordering": {
+        "description": {
+          "en": "How it works.",
+          "me": "Kako radi.",
+          "ru": "Как это работает.",
+          "ua": "Як це працює."
+        },
+        "title": {
+          "en": "Ordering",
+          "me": "Naručivanje",
+          "ru": "Заказы",
+          "ua": "Замовлення"
+        }
+      },
+      "pricing": {
+        "description": {
+          "en": "Trust model.",
+          "me": "Model povjerenja.",
+          "ru": "Модель доверия.",
+          "ua": "Модель довіри."
+        },
+        "title": {
+          "en": "Pricing",
+          "me": "Cijene",
+          "ru": "Цены",
+          "ua": "Ціни"
+        }
+      },
+      "shipping": {
+        "description": {
+          "en": "Mail delivery.",
+          "me": "Dostava poštom.",
+          "ru": "Доставка почтой.",
+          "ua": "Доставка поштою."
+        },
+        "title": {
+          "en": "Shipping",
+          "me": "Dostava",
+          "ru": "Доставка",
+          "ua": "Доставка"
+        }
+      },
+      "technical": {
+        "description": {
+          "en": "Files & specs.",
+          "me": "Datoteke i specifikacije.",
+          "ru": "Файлы и характеристики.",
+          "ua": "Файли та характеристики."
+        },
+        "title": {
+          "en": "Technical",
+          "me": "Tehničko",
+          "ru": "Техническое",
+          "ua": "Технічне"
+        }
+      },
+      "title": {
+        "en": "Categories",
+        "me": "Kategorije",
+        "ru": "Категории",
+        "ua": "Категорії"
+      }
+    },
+    "contact": {
+      "button": {
+        "en": "Support",
+        "me": "Podrška",
+        "ru": "Поддержка",
+        "ua": "Підтримка"
+      },
+      "description": {
+        "en": "Email us.",
+        "me": "Pišite nam.",
+        "ru": "Напишите нам.",
+        "ua": "Напишіть нам."
+      },
+      "email": {
+        "en": "Email",
+        "me": "Email",
+        "ru": "Email",
+        "ua": "Email"
+      },
+      "title": {
+        "en": "Contact",
+        "me": "Kontakt",
+        "ru": "Контакт",
+        "ua": "Контакт"
+      }
+    },
+    "faq": {
+      "q1": {
+        "answer": {
+          "en": "We do our best to make you satisfied.",
+          "me": "Trudimo se da budete zadovoljni.",
+          "ru": "Мы приложим все силы, чтобы Вы остались довольны.",
+          "ua": "Ми докладемо всіх зусиль, щоб Ви залишилися задоволені."
+        },
+        "question": {
+          "en": "How much should I pay?",
+          "me": "Koliko da platim?",
+          "ru": "Сколько стоит печать?",
+          "ua": "Скільки коштує друк?"
+        }
+      },
+      "q2": {
+        "answer": {
+          "en": "Usually 2-3 days.",
+          "me": "Obično 2-3 dana.",
+          "ru": "Обычно 2-3 рабочих дня.",
+          "ua": "Зазвичай 2-3 робочих дні."
+        },
+        "question": {
+          "en": "Delivery time?",
+          "me": "Vrijeme dostave?",
+          "ru": "Сроки доставки?",
+          "ua": "Терміни доставки?"
+        }
+      },
+      "q3": {
+        "answer": {
+          "en": "STL, OBJ, STEP.",
+          "me": "STL, OBJ, STEP.",
+          "ru": "STL, OBJ, STEP.",
+          "ua": "STL, OBJ, STEP."
+        },
+        "question": {
+          "en": "What files?",
+          "me": "Koje datoteke?",
+          "ru": "Какие форматы?",
+          "ua": "Які формати?"
+        }
+      },
+      "q4": {
+        "answer": {
+          "en": "Your models are safe.",
+          "me": "Vaši modeli su sigurni.",
+          "ru": "Ваши модели в безопасности.",
+          "ua": "Ваші моделі в безпеці."
+        },
+        "question": {
+          "en": "Confidentiality?",
+          "me": "Povjerljivost?",
+          "ru": "Конфиденциальность?",
+          "ua": "Конфіденційність?"
+        }
+      },
+      "q5": {
+        "answer": {
+          "en": "We help with design.",
+          "me": "Pomažemo oko dizajna.",
+          "ru": "Мы помогаем с доработкой моделей.",
+          "ua": "Ми допомагаємо з доопрацюванням моделей."
+        },
+        "question": {
+          "en": "Support?",
+          "me": "Podrška?",
+          "ru": "Поддержка?",
+          "ua": "Підтримка?"
+        }
+      },
+      "title": {
+        "en": "FAQ",
+        "me": "FAQ",
+        "ru": "Вопросы и ответы",
+        "ua": "Питання та відповіді"
+      }
+    },
+    "search": {
+      "placeholder": {
+        "en": "Search...",
+        "me": "Traži...",
+        "ru": "Поиск...",
+        "ua": "Пошук..."
+      }
+    },
+    "subtitle": {
+      "en": "How can we help?",
+      "me": "Kako možemo pomoći?",
+      "ru": "Как мы можем помочь?",
+      "ua": "Як ми можемо допомогти?"
+    }
+  }
+}

+ 78 - 0
src/locales/master_user/hero.json

@@ -0,0 +1,78 @@
+{
+  "hero": {
+    "badge": {
+      "en": "Trust in Every Layer",
+      "me": "Povjerenje u svakom sloju",
+      "ru": "Доверие в каждом слое",
+      "ua": "Якість у кожному шарі"
+    },
+    "description": {
+      "en": "Unique 3D printing service in Montenegro: send us a model, receive it by mail with payment on delivery.",
+      "me": "Jedinstveni servis 3D štampe u Crnoj Gori: pošaljite model, dobijte gotov proizvod poštom s plaćanjem prilikom preuzimanja.",
+      "ru": "Уникальный сервис 3D-печать в Черногории: пришлите модель, получите готовое изделие по почте с оплатой по факту получения.",
+      "ua": "Унікальний сервіс 3D-друку в Чорногорії: надішліть модель, отримайте готовий виріб поштою з оплатою після отримання."
+    },
+    "pricingButton": {
+      "en": "How It Works",
+      "me": "Kako funkcioniše",
+      "ru": "Как это работает",
+      "ua": "Як це працює"
+    },
+    "stats": {
+      "materials": {
+        "en": "Materials",
+        "me": "Materijala",
+        "ru": "Материалов",
+        "ua": "матеріалів"
+      },
+      "materialsValue": {
+        "en": "10+",
+        "me": "10+",
+        "ru": "10+",
+        "ua": "10+"
+      },
+      "precision": {
+        "en": "Precision",
+        "me": "Preciznost",
+        "ru": "Точность",
+        "ua": "Точність"
+      },
+      "precisionValue": {
+        "en": "0.1mm",
+        "me": "0.1mm",
+        "ru": "0.1мм",
+        "ua": "0.1мм"
+      },
+      "shipping": {
+        "en": "Mail Delivery",
+        "me": "Dostava poštom",
+        "ru": "Доставка почтой",
+        "ua": "Доставка поштою"
+      },
+      "shippingValue": {
+        "en": "Express",
+        "me": "Ekspres",
+        "ru": "Экспресс",
+        "ua": "Експрес"
+      }
+    },
+    "title": {
+      "en": "We Print —",
+      "me": "Mi štampamo —",
+      "ru": "Мы печатаем —",
+      "ua": "Ми друкуємо"
+    },
+    "titleGradient": {
+      "en": "We Care",
+      "me": "Mi brinemo",
+      "ru": "Мы стараемся",
+      "ua": "Ми дбаємо"
+    },
+    "uploadButton": {
+      "en": "Order Print",
+      "me": "Naruči štampu",
+      "ru": "Заказать печать",
+      "ua": "Замовити друк"
+    }
+  }
+}

+ 24 - 0
src/locales/master_user/home.json

@@ -0,0 +1,24 @@
+{
+  "home": {
+    "reviews": {
+      "title": {
+        "en": "Client Experiences",
+        "me": "Iskustva klijenata",
+        "ru": "Отзывы наших клиентов",
+        "ua": "Відгуки наших клієнтів"
+      },
+      "subtitle": {
+        "en": "Discover what our customers say about our print quality and reliability.",
+        "me": "Saznajte što naši klijenti misle o kvalitetu i pouzdanosti naše štampe.",
+        "ru": "Узнайте, что наши клиенты думают о качестве нашей печати и надежности сервиса.",
+        "ua": "Дізнайтеся, що наші клієнти думають про якість нашого друку та надійність сервісу."
+      },
+      "verifiedCustomer": {
+        "en": "Verified Customer",
+        "me": "Verifikovani kupac",
+        "ru": "Проверенный заказ",
+        "ua": "Перевірене замовлення"
+      }
+    }
+  }
+}

+ 106 - 0
src/locales/master_user/nav.json

@@ -0,0 +1,106 @@
+{
+  "nav": {
+    "admin": {
+      "en": "Admin",
+      "me": "Admin",
+      "ru": "Админ",
+      "ua": "Адмін"
+    },
+    "adminPanel": {
+      "en": "Admin Panel",
+      "me": "Admin panel",
+      "ru": "Панель управления",
+      "ua": "Панель управління"
+    },
+    "howItWorks": {
+      "en": "How it works",
+      "me": "Kako to funkcioniše",
+      "ru": "Как это работает",
+      "ua": "Як це працює"
+    },
+    "logIn": {
+      "en": "Log In",
+      "me": "Prijavi se",
+      "ru": "Войти",
+      "ua": "Увійти"
+    },
+    "logOut": {
+      "en": "Log Out",
+      "me": "Odjavi se",
+      "ru": "Выйти",
+      "ua": "Вийти"
+    },
+    "loggedOut": {
+      "en": "Successfully logged out",
+      "me": "Uspješno ste se odjavili",
+      "ru": "Вы успешно вышли",
+      "ua": "Ви успішно вийшли"
+    },
+    "materials": {
+      "en": "Materials",
+      "me": "Materijali",
+      "ru": "Материалы",
+      "ua": "Матеріали"
+    },
+    "myOrders": {
+      "en": "My Orders",
+      "me": "Moje narudžbe",
+      "ru": "Мои заказы",
+      "ua": "Мої замовлення"
+    },
+    "nuances": {
+      "en": "Nuances",
+      "me": "Nijanse",
+      "ru": "Нюансы",
+      "ua": "Нюанси"
+    },
+    "philosophy": {
+      "en": "Philosophy",
+      "me": "Filozofija",
+      "ru": "Наш подход",
+      "ua": "Наш підхід"
+    },
+    "portfolio": {
+      "en": "Portfolio",
+      "me": "Portfolio",
+      "ru": "Портфолио",
+      "ua": "Портфоліо"
+    },
+    "register": {
+      "en": "Register",
+      "me": "Registracija",
+      "ru": "Регистрация",
+      "ua": "Реєстрація"
+    },
+    "toggleMenu": {
+      "en": "Toggle Menu",
+      "me": "Otvori/Zatvori meni",
+      "ru": "Открыть/Закрыть меню",
+      "ua": "Відкрити/Закрити меню"
+    },
+    "changeLanguage": {
+      "en": "Change Language",
+      "me": "Promijeni jezik",
+      "ru": "Сменить язык",
+      "ua": "Змінити мову"
+    },
+    "services": {
+      "en": "Services",
+      "me": "Usluge",
+      "ru": "Услуги",
+      "ua": "Послуги"
+    },
+    "unreadMessages": {
+      "en": "Unread Messages",
+      "me": "Nepročitane poruke",
+      "ru": "Непрочитанные сообщения",
+      "ua": "Непрочитані повідомлення"
+    },
+    "unreadTooltip": {
+      "en": "Unread messages in chat",
+      "me": "Nepročitane poruke u chatu",
+      "ru": "У вас есть непрочитанные сообщения",
+      "ua": "У вас є непрочитані повідомлення"
+    }
+  }
+}

+ 204 - 0
src/locales/master_user/nuances.json

@@ -0,0 +1,204 @@
+{
+  "nuances": {
+    "aiDisclaimer": {
+      "en": "All explanatory photos are AI-generated for illustrative purposes.",
+      "me": "Sve fotografije objašnjenja su generisane pomoću vještačke inteligencije u ilustrativne svrhe.",
+      "ru": "Все поясняющие фотографии сгенерированы ИИ для наглядности.",
+      "ua": "Усі пояснювальні фотографії згенеровані ШІ для наочності."
+    },
+    "description": {
+      "en": "Products made using the FDM (Fused Deposition Modeling) method have a number of visual and tactile features that are normal for the technology and are not considered defects.",
+      "me": "Proizvodi napravljeni FDM metodom (slojevito topljenje plastike) imaju niz vizuelnih i taktilnih karakteristika koje su normalne za tehnologiju i ne smatramo ih defektima.",
+      "ru": "Изделия, изготовленные методом FDM (послойного наплавления пластика), имеют ряд визуальных и тактильных особенностей, которые являются нормой технологии и не считаются дефектами.",
+      "ua": "Вироби, виготовлені методом FDM (пошарового наплавлення пластику), мають ряд візуальних і тактильних особливостей, які є нормою технології та не вважаються дефектами."
+    },
+    "disclaimer": {
+      "text": {
+        "en": "These features are due to the very nature of FDM printing technology and do not affect the functionality of the product.",
+        "me": "Ove karakteristike su posledica same prirode tehnologije FDM štampe i ne utiču na funkcionalnost proizvoda.",
+        "ru": "Эти особенности обусловлены самой природой технологии FDM-печати и не влияют на функциональность изделия.",
+        "ua": "Ці особливості обумовлені самою природою технології FDM-друку і не впливають на функціональність виробу."
+      },
+      "title": {
+        "en": "Quality Assurance",
+        "me": "Garancija kvaliteta",
+        "ru": "Гарантия качества",
+        "ua": "Гарантія якості"
+      }
+    },
+    "items": {
+      "colorVariations": {
+        "description": {
+          "en": "Slight shade variations.",
+          "me": "Blage varijacije nijanse.",
+          "ru": "Незначительные вариации цвета.",
+          "ua": "Незначні варіації кольору."
+        },
+        "details": {
+          "en": "Filament batch differences.",
+          "me": "Razlike u serijama materijala.",
+          "ru": "Даже в рамках одного цвета возможны вариации.",
+          "ua": "Навіть у межах одного кольору можливі варіації."
+        },
+        "title": {
+          "en": "Color",
+          "me": "Boja",
+          "ru": "Различия в оттенке",
+          "ua": "Відмінності у відтінку"
+        }
+      },
+      "dimensionalTolerances": {
+        "description": {
+          "en": "Minor size deviations.",
+          "me": "Manja odstupanja dimenzija.",
+          "ru": "Возможны небольшие допуски.",
+          "ua": "Можливі невеликі допуски."
+        },
+        "details": {
+          "en": "Physical property of cooling.",
+          "me": "Fizičko svojstvo hlađenja.",
+          "ru": "Обусловлено свойствами и охлаждением.",
+          "ua": "Обумовлено властивостями та охолодженням."
+        },
+        "title": {
+          "en": "Tolerances",
+          "me": "Tolerancije",
+          "ru": "Допуски размеров",
+          "ua": "Допуски розмірів"
+        }
+      },
+      "layerStructure": {
+        "description": {
+          "en": "Visible layer lines.",
+          "me": "Vidljive linije slojeva.",
+          "ru": "Поверхность имеет заметные линии слоёв.",
+          "ua": "Поверхня має помітні лінії шарів."
+        },
+        "details": {
+          "en": "Result of layered manufacturing.",
+          "me": "Rezultat slojevite proizvodnje.",
+          "ru": "Это естественный результат послойного построения.",
+          "ua": "Це природний результат пошарової побудови."
+        },
+        "title": {
+          "en": "Layered Structure",
+          "me": "Slojevita struktura",
+          "ru": "Слоистая структура",
+          "ua": "Пошарова структура"
+        }
+      },
+      "overhangs": {
+        "description": {
+          "en": "Drooping on unsupported areas.",
+          "me": "Opuštanje na neoslonjenim djelovima.",
+          "ru": "Провисание на участках без опоры.",
+          "ua": "Провисання на ділянках без опори."
+        },
+        "details": {
+          "en": "Depends on geometry.",
+          "me": "Zavisi od geometrije.",
+          "ru": "Ограничение технологии.",
+          "ua": "Обмеження технології."
+        },
+        "title": {
+          "en": "Overhangs",
+          "me": "Prepusti",
+          "ru": "Особенности нависаний",
+          "ua": "Особливості нависань"
+        }
+      },
+      "stringing": {
+        "description": {
+          "en": "Thin plastic hairs.",
+          "me": "Tanke plastične niti.",
+          "ru": "Тонкие пластиковые нити.",
+          "ua": "Тонкі пластикові нитки."
+        },
+        "details": {
+          "en": "Easily removed.",
+          "me": "Lako se uklanjaju.",
+          "ru": "Легко удаляются.",
+          "ua": "Легко видаляються."
+        },
+        "title": {
+          "en": "Stringing",
+          "me": "Niti",
+          "ru": "Мелкие ниточки (stringing)",
+          "ua": "Дрібні ниточки (stringing)"
+        }
+      },
+      "supportMarks": {
+        "description": {
+          "en": "Small marks where supports were.",
+          "me": "Mali tragovi od potpornih struktura.",
+          "ru": "Могут оставаться следы в местах поддержек.",
+          "ua": "Можуть залишатися сліди в місцях підтримок."
+        },
+        "details": {
+          "en": "Expected residue.",
+          "me": "Očekivani ostaci.",
+          "ru": "Небольшие отличия в текстуре поверхности.",
+          "ua": "Невеликі відмінності в текстурі поверхні."
+        },
+        "title": {
+          "en": "Support Marks",
+          "me": "Tragovi podrški",
+          "ru": "Следы от поддержек",
+          "ua": "Сліди від підтримок"
+        }
+      },
+      "surfaceImperfections": {
+        "description": {
+          "en": "Minor roughness on complex shapes.",
+          "me": "Blaga hrapavost na složenim oblicima.",
+          "ru": "Допускается лёгкая шероховатость.",
+          "ua": "Допускається легка шорсткість."
+        },
+        "details": {
+          "en": "Technological norm.",
+          "me": "Tehnološka norma.",
+          "ru": "Является нормой для данной технологии.",
+          "ua": "Є нормою для даної технології."
+        },
+        "title": {
+          "en": "Surface Texture",
+          "me": "Tekstura površine",
+          "ru": "Неровности и текстура",
+          "ua": "Нерівності та текстура"
+        }
+      },
+      "zSeam": {
+        "description": {
+          "en": "Start/end point of layers.",
+          "me": "Početna/završna tačka slojeva.",
+          "ru": "Точка начала и конца каждого слоя.",
+          "ua": "Точка початку та кінця кожного шару."
+        },
+        "details": {
+          "en": "Usually placed in corners.",
+          "me": "Obično se skriva u uglovima.",
+          "ru": "Может быть заметна на поверхности.",
+          "ua": "Може бути помітна на поверхні."
+        },
+        "title": {
+          "en": "Z-Seam",
+          "me": "Z-šav",
+          "ru": "Швы (Z-seam)",
+          "ua": "Шви (Z-seam)"
+        }
+      }
+    },
+    "subtitle": {
+      "en": "What to expect",
+      "me": "Šta očekivati",
+      "ru": "Чего ожидать",
+      "ua": "Чого очікувати"
+    },
+    "title": {
+      "en": "3D Printing Nuances",
+      "me": "Nijanse 3D štampe",
+      "ru": "Нюансы 3D-печати",
+      "ua": "Нюанси 3D-друку"
+    }
+  }
+}

+ 116 - 0
src/locales/master_user/orders.json

@@ -0,0 +1,116 @@
+{
+  "orders": {
+    "labels": {
+      "estimate": {
+        "en": "Estimate",
+        "me": "Procjena",
+        "ru": "Расчет",
+        "ua": "Розрахунок"
+      },
+      "materialColor": {
+        "en": "Material & Color",
+        "me": "Materijal i boja",
+        "ru": "Материал и цвет",
+        "ua": "Матеріал та колір"
+      },
+      "myNotes": {
+        "en": "My Notes",
+        "me": "Moje bilješke",
+        "ru": "Мои заметки",
+        "ua": "Мої замітки"
+      },
+      "progressReport": {
+        "en": "Progress Report",
+        "me": "Izvještaj o napretku",
+        "ru": "Отчет о выполнении",
+        "ua": "Звіт про виконання"
+      },
+      "projectFiles": {
+        "en": "My Project Files",
+        "me": "Fajlovi projekta",
+        "ru": "Файлы проекта",
+        "ua": "Файли проєкту"
+      },
+      "quantity": {
+        "en": "Quantity",
+        "me": "Količina",
+        "ru": "Кол-во",
+        "ua": "К-сть"
+      },
+      "status": {
+        "en": "Status",
+        "me": "Status",
+        "ru": "Статус",
+        "ua": "Статус"
+      }
+    },
+    "loading": {
+      "en": "Loading order history...",
+      "me": "Učitavanje istorije narudžbi...",
+      "ru": "Загрузка истории заказов...",
+      "ua": "Завантаження історії замовлень..."
+    },
+    "noOrders": {
+      "en": "No orders yet",
+      "me": "Još nema narudžbi",
+      "ru": "Заказов пока нет",
+      "ua": "Замовлення поки відсутні"
+    },
+    "startProject": {
+      "en": "Start New Project",
+      "me": "Započni novi projekat",
+      "ru": "Создать новый проект",
+      "ua": "Створити новий проєкт"
+    },
+    "startProjectDesc": {
+      "en": "Once you start a 3D printing project, you'll be able to track its progress right here.",
+      "me": "Kada započnete projekat 3D štampe, ovdje ćete moći pratiti njegov napredak.",
+      "ru": "Как только вы создадите проект на 3D-печать, вы сможете отслеживать его прогресс здесь.",
+      "ua": "Як тільки ви створите проєкт на 3D-друк, ви зможете відстежувати його прогрес тут."
+    },
+    "review": {
+      "writeTitle": {
+        "en": "Share Your Experience",
+        "me": "Podijelite Vaše iskustvo",
+        "ru": "Поделитесь впечатлениями",
+        "ua": "Поділіться вашими враженнями"
+      },
+      "placeholder": {
+        "en": "How was the print quality? Was the delivery on time?",
+        "me": "Kakav je kvalitet štampe? Da li je isporuka bila na vrijeme?",
+        "ru": "Как качество печати? Быстро ли приехал заказ?",
+        "ua": "Яка якість друку? Чи вчасно приїхало замовлення?"
+      },
+      "submit": {
+        "en": "Post Review",
+        "me": "Pošalji recenziju",
+        "ru": "Оставить отзыв",
+        "ua": "Залишити відгук"
+      },
+      "success": {
+        "en": "Thank you for your review!",
+        "me": "Hvala Vam na recenziji!",
+        "ru": "Спасибо за ваш отзыв!",
+        "ua": "Дякуємо за ваш відгук!"
+      },
+      "pending": {
+        "en": "Pending Approval",
+        "me": "Na čekanju",
+        "ru": "На модерации",
+        "ua": "На модерації"
+      },
+      "approved": {
+        "en": "Public Review",
+        "me": "Javna recenzija",
+        "ru": "Опубликован",
+        "ua": "Опубліковано"
+      }
+    },
+    "titleSubtitle": {
+      "en": "Track your 3D printing projects",
+      "me": "Pratite tvoje projekte 3D štampe",
+      "ru": "Отслеживайте свои проекты 3D-печати",
+      "ua": "Відстежуйте свої проєкти 3D-друку"
+    }
+  }
+}

+ 46 - 0
src/locales/master_user/portfolio.json

@@ -0,0 +1,46 @@
+{
+  "portfolio": {
+    "description": {
+      "en": "Explore our successful 3D printing projects realized for our local customers in Montenegro.",
+      "me": "Istražite naše uspješne projekte 3D štampe realizovane za naše klijente u Crnoj Gori.",
+      "ru": "Ознакомьтесь с нашими успешными проектами 3D-печати, реализованными для клиентов в Черногории.",
+      "ua": "Ознайомтеся з нашими успішними проектами 3D-друку, реалізованими для клієнтів у Чорногорії."
+    },
+    "empty": {
+      "en": "Portfolio is currently empty.",
+      "me": "Portfolio je trenutno prazan.",
+      "ru": "Наша галерея пополняется. Заходите позже!",
+      "ua": "Наша галерея поповнюється. Заходьте пізніше!"
+    },
+    "emptyDesc": {
+      "en": "Check back soon for more amazing prints!",
+      "me": "Navratite uskoro za više nevjerovatnih radova!",
+      "ru": "Здесь скоро появятся наши новые работы.",
+      "ua": "Тут скоро з'являться наші нові роботи."
+    },
+    "emptyTitle": {
+      "en": "Our gallery is growing",
+      "me": "Naša galerija raste",
+      "ru": "Портфолио пусто",
+      "ua": "Портфоліо порожнє"
+    },
+    "loading": {
+      "en": "Loading gallery...",
+      "me": "Učitavanje galerije...",
+      "ru": "Загрузка портфолио...",
+      "ua": "Завантаження портфоліо..."
+    },
+    "title": {
+      "en": "Project",
+      "me": "Galerija",
+      "ru": "Галерея",
+      "ua": "Галерея"
+    },
+    "titleGradient": {
+      "en": "Showcase",
+      "me": "radova",
+      "ru": "работ",
+      "ua": "робіт"
+    }
+  }
+}

+ 72 - 0
src/locales/master_user/pricing.json

@@ -0,0 +1,72 @@
+{
+  "pricing": {
+    "badge": {
+      "en": "Trust Policy",
+      "me": "Politika povjerenja",
+      "ru": "Политика доверия",
+      "ua": "Політика довіри"
+    },
+    "description": {
+      "en": "No upfront costs or complex calculators. You only pay for results you value.",
+      "me": "Bez uplate unaprijed i komplikovanih kalkulatora. Plaćaš samo za rezultat u koji vjeruješ.",
+      "ru": "Никаких предоплат и сложных калькуляторов. Вы платите только за результат, в который верите.",
+      "ua": "Жодних передоплат і складних калькуляторів. Ви платите лише за результат, у який вірите."
+    },
+    "materials": {
+      "en": "Available Materials",
+      "me": "Dostupni materijali",
+      "ru": "Доступные материалы",
+      "ua": "Доступні матеріали"
+    },
+    "requestQuote": {
+      "en": "Send Request",
+      "me": "Pošalji zahtjev",
+      "ru": "Отправить запрос",
+      "ua": "Надіслати запит"
+    },
+    "saveConfig": {
+      "en": "Save",
+      "me": "Sačuvaj",
+      "ru": "Сохранить",
+      "ua": "Зберегти"
+    },
+    "title": {
+      "en": "Payment",
+      "me": "Plaćanje",
+      "ru": "Оплата",
+      "ua": "Оплата"
+    },
+    "titleGradient": {
+      "en": "After Delivery",
+      "me": "nakon isporuke",
+      "ru": "после получения",
+      "ua": "після отримання"
+    },
+    "trustSteps": {
+      "step1": {
+        "en": "Send us an STL model or a link",
+        "me": "Pošaljite nam STL model ili link",
+        "ru": "Отправьте нам STL модель или ссылку",
+        "ua": "Надішліть нам STL модель або посилання"
+      },
+      "step2": {
+        "en": "We'll craft it using the best material",
+        "me": "Mi ćemo ga izraditi od najboljeg materijala",
+        "ru": "Мы изготовим ее из подходящего материала",
+        "ua": "Ми виготовимо її з відповідного матеріалу"
+      },
+      "step3": {
+        "en": "Receive the package at your address",
+        "me": "Primite paket na navedenu adresu",
+        "ru": "Получите посылку на указанный адрес",
+        "ua": "Отримайте посилку на вказану адресу"
+      },
+      "step4": {
+        "en": "We do our best to make sure you are satisfied.",
+        "me": "Dajemo sve od sebe da budete zadovoljni.",
+        "ru": "Мы приложим все силы, чтобы Вы остались довольны.",
+        "ua": "Ми докладемо всіх зусиль, щоб Ви залишилися задоволені."
+      }
+    }
+  }
+}

+ 196 - 0
src/locales/master_user/privacy.json

@@ -0,0 +1,196 @@
+{
+  "privacy": {
+    "contactDesc": {
+      "en": "If you have any questions or wish to exercise your data rights, please reach out to our dedicated team.",
+      "me": "Ako imate bilo kakvih pitanja ili želite da ostvarite svoja prava na podatke, obratite se našem timu.",
+      "ru": "Если у вас есть вопросы, наша команда всегда готова помочь.",
+      "ua": "Якщо у вас є питання, наша команда завжди готова допомогти."
+    },
+    "contactTitle": {
+      "en": "Need assistance?",
+      "me": "Potrebna pomoć?",
+      "ru": "Нужна помощь?",
+      "ua": "Потрібна допомога?"
+    },
+    "intro": {
+      "en": "This Privacy Policy describes:\n• what data we collect\n• how and why we use it\n• where and how it is stored or transferred\n• your rights regarding your data\n• how to contact us about privacy\n\nBy visiting our site, contacting us, or using our services, you agree to this policy.",
+      "me": "Ova Politika privatnosti opisuje:\n• koje podatke prikupljamo\n• kako i zašto ih koristimo\n• gdje se čuvaju i kako se prenose\n• vaša prava u vezi sa vašim podacima\n• kako da nas kontaktirate u vezi sa privatnošću\n\nPosjetom našem sajtu, stupanjem u kontakt sa nama ili korišćenjem naših usluga, prihvatate ovu politiku.",
+      "ru": "Эта Политика конфиденциальности описывает:\n• какие данные мы собираем\n• как и почему мы их используем\n• где и как они хранятся или передаются\n• ваши права в отношении ваших данных\n• как связаться с нами по вопросам конфиденциальности\n\nПосещая наш сайт, связываясь с нами или пользуясь нашими услугами, вы соглашаетесь с этой политикой.",
+      "ua": "Ця Політика конфіденційності описує:\n• які дані ми збираємо\n• як і чому ми їх використовуємо\n• де і як вони зберігаються або передаються\n• ваші права щодо ваших даних\n• як зв'язатися з нами щодо конфіденційності\n\nВідвідуючи наш сайт, зв'язуючись з нами або користуючись нашими послугами, ви погоджуєтеся з цією політикою."
+    },
+    "responseNotice": {
+      "en": "We respond to all privacy requests within 48 hours.",
+      "me": "Odgovaramo na sve zahtjeve za privatnost u roku od 48 sati.",
+      "ru": "Мы отвечаем на все запросы в течение 48 часов.",
+      "ua": "Ми відповідаємо на всі запити протягом 48 годин."
+    },
+    "sections": {
+      "01_data": {
+        "content": {
+          "en": "We may collect and process:\n• Contact details: name, email, phone number, company\n• Project data & uploads: messages, briefs, 3D models, images, sketches\n• Transaction data: quotes, invoices, payments\n• Website & technical data: IP address, browser type, cookies, analytics\n\nWe do not collect sensitive categories (e.g. race, health, religious beliefs).",
+          "me": "Možemo prikupljati i obrađivati:\n• Kontakt podatke: ime, email, broj telefona, kompanija\n• Podatke o projektima i otpremanje: poruke, brifove, 3D modele, slike, skice\n• Podatke o transakcijama: ponude, fakture, plaćanja\n• Tehničke podatke: IP adresa, tip pretraživača, kolačići, analitika\n\nNe prikupljamo osjetljive kategorije (npr. rasa, zdravlje, vjerska uvjerenja).",
+          "ru": "Мы можем собирать и обрабатывать:\n• Контактные данные: имя, email, номер телефона, компания\n• Данные проекта и загрузки: сообщения, брифы, 3D-модели, изображения, эскизы\n• Данные о транзакциях: сметы, счета, платежи\n• Технические данные сайта: IP-адрес, тип браузера, файлы cookie, аналитика\n\nМы не собираем чувствительные категории данных (например, раса, состояние здоровья, религиозные убеждения).",
+          "ua": "Ми можемо збирати та обробляти:\n• Контактні дані: ім'я, email, номер телефону, компанія\n• Дані проекту та завантаження: повідомлення, брифи, 3D-моделі, зображення, ескізи\n• Дані про транзакції: кошториси, рахунки, платежі\n• Технічні дані: IP-адреса, тип браузера, файли cookie, аналітика\n\nМи не збираємо чутливі категорії даних (наприклад, раса, стан здоров'я, релігійні переконання)."
+        },
+        "title": {
+          "en": "1. Data We Collect",
+          "me": "1. Podaci koje prikupljamo",
+          "ru": "1. Собираемые данные",
+          "ua": "1. Дані, які ми збираємо"
+        }
+      },
+      "02_usage": {
+        "content": {
+          "en": "We use personal data to:\n• respond to enquiries and provide quotes\n• manage projects, orders, deliveries\n• maintain client records in our systems\n• send updates or confirmations (email or WhatsApp/Viber/Telegram, where consent given)\n• improve our website and services via anonymised analytics\n\nWe do not sell or rent your personal data to third parties.",
+          "me": "Podatke koristimo za:\n• odgovaranje na upite i izradu ponuda\n• upravljanje projektima, porudžbinama, isporukama\n• vođenje evidencije o klijentima u našim sistemima\n• slanje ažuriranja ili potvrda (email ili WhatsApp/Viber/Telegram, uz saglasnost)\n• poboljšanje našeg sajta i usluga putem anonimne analitike\n\nVaše lične podatke ne prodajemo niti iznajmljujemo trećim licima.",
+          "ru": "Мы используем персональные данные для:\n• ответов на запросы и предоставления смет\n• управления проектами, заказами, доставкой\n• ведения клиентских записей в наших системах\n• отправки обновлений или подтверждений (email или WhatsApp/Viber/Telegram, при наличии согласия)\n• улучшения нашего сайта и услуг с помощью анонимной аналитики\n\nМы не продаем и не сдаем в аренду ваши персональные данные третьим лицам.",
+          "ua": "Ми використовуємо персональні дані для:\n• відповідей на запити та надання кошторисів\n• управління проектами, замовленнями, доставкою\n• ведення клієнтських записів у наших системах\n• надсилання оновлень або підтвержень (email або WhatsApp/Viber/Telegram, за згодою)\n• покращення нашого сайту та послуг за допомогою анонімної аналітики\n\nМи не продаємо і не здаємо в оренду ваші персональні дані третім особам."
+        },
+        "title": {
+          "en": "2. How We Use Your Data",
+          "me": "2. Kako koristimo vaše podatke",
+          "ru": "2. Как мы используем ваши данные",
+          "ua": "2. Як ми використовуємо ваші дані"
+        }
+      },
+      "03_basis": {
+        "content": {
+          "en": "Under EU GDPR, we rely on:\n• Contract — to perform services you request (quotes, production)\n• Legitimate Interest — for business administration, client management, and responding to enquiries\n• Consent — for optional marketing or newsletters\n\nIf you give consent, you may withdraw it at any time (we will respect that).",
+          "me": "Prema EU GDPR-u, oslanjamo se na:\n• Ugovor — za pružanje traženih usluga (ponude, proizvodnja)\n• Legitimni interes — za administraciju poslovanja, upravljanje klijentima i odgovaranje na upite\n• Saglasnost — za opcioni marketing ili obavještenja\n\nAko date saglasnost, možete je povući u bilo kom trenutku.",
+          "ru": "В соответствии с EU GDPR мы опираемся на:\n• Контракт — для выполнения запрашиваемых вами услуг (сметы, производство)\n• Законный интерес — для администрирования бизнеса, управления клиентами и ответов на запросы\n• Согласие — для дополнительного маркетинга или рассылок\n\nЕсли вы даете согласие, вы можете отозвать его в любое время.",
+          "ua": "Відповідно до EU GDPR ми спираємося на:\n• Контракт — для надання послуг за вашим запитом (кошториси, виробництво)\n• Законний інтерес — для адміністрування бізнесу, управління клієнтами та відповідей на запити\n• Згоду — для додаткового маркетингу або розсилок\n\nЯкщо ви надаєте згоду, ви можете відкликати її в будь-який час."
+        },
+        "title": {
+          "en": "3. Lawful Basis for Processing",
+          "me": "3. Pravni osnov za obradu",
+          "ru": "3. Правовые основания для обработки",
+          "ua": "3. Правові підстави для обробки"
+        }
+      },
+      "04_uploads": {
+        "content": {
+          "en": "When you upload files or models, they are handled under our Content Submission & IP Protection Agreement. We keep project files securely while a job is active. After the job or after a defined period (e.g. 30 days on temporary services), we may delete or anonymise them as per our data-retention rules.",
+          "me": "Kada otpremite fajlove ili modele, oni se obrađuju u skladu sa našim Ugovorom o dostavljanju sadržaja i zaštiti intelektualne svojine. Čuvamo fajlove projekta dok je posao aktivan. Nakon završetka posla ili nakon određenog perioda (npr. 30 dana za privremene usluge), možemo ih izbrisati ili anonimizovati.",
+          "ru": "При загрузке файлов или моделей они обрабатываются в соответствии с нашим Соглашением о подаче контента и защите ИС. Мы надежно храним файлы проекта, пока работа активна. После завершения работы или по истечении определенного периода (например, 30 дней для временных услуг), мы можем удалить или анонимизировать их.",
+          "ua": "При завантаженні файлів або моделей вони обробляються відповідно до нашої Угоди про подання контенту та захист ІВ. Ми надійно зберігаємо файли проекту, поки робота активна. Після завершення роботи або після певного періоду (наприклад, 30 днів для тимчасових послуг), ми можемо видалити або анонімізувати їх."
+        },
+        "title": {
+          "en": "4. File Uploads & Submitted Content",
+          "me": "4. Otpremanje fajlova i poslati sadržaj",
+          "ru": "4. Загрузка файлов и отправленный контент",
+          "ua": "4. Завантаження файлів та надісланий контент"
+        }
+      },
+      "05_security": {
+        "content": {
+          "en": "Our primary storage is on secure servers under our control in the EU. We use encryption, secure access controls, and limited staff access. Transaction and project records are kept for up to six years (for accounting and legal compliance). Where a client asks us to retain project files for repeat orders, we will do so securely until instructed otherwise.",
+          "me": "Skladištimo podatke na sigurnim serverima pod našom kontrolom u EU. Koristimo enkripciju i ograničen pristup osoblja. Zapisi o transakcijama i projektima čuvaju se do šest godina (radi računovodstvene i pravne usklađenosti). Ako klijent zatraži da zadržimo fajlove projekta za ponovne porudžbine, to ćemo činiti bezbjedno dok ne dobijemo drugačija uputstva.",
+          "ru": "Нашим основным хранилищем являются защищенные серверы под нашим контролем в ЕС. Мы используем шифрование, средства контроля безопасного доступа и ограниченный доступ персонала. Записи о транзакциях и проектах хранятся до шести лет (для бухгалтерского и юридического учета). Если клиент просит нас сохранить файлы проекта для повторных заказов, мы будем хранить их надежно до получения иных указаний.",
+          "ua": "Нашим основним сховищем є захищені сервери под нашим контролем в ЄС. Ми використовуємо шифрування, засоби контролю безпечного доступу та обмежений доступ персоналу. Записи про транзакції та проекти зберігаються до шести років (для бухгалтерського та юридичного обліку). Якщо клієнт просить нас зберегти файли проекту для повторних замовлень, ми будемо зберігати їх надійно до отримання інших вказівок."
+        },
+        "title": {
+          "en": "5. Storage & Security",
+          "me": "5. Čuvanje i bezbjednost",
+          "ru": "5. Хранение и безопасность",
+          "ua": "5. Зберігання та безпека"
+        }
+      },
+      "06_sharing": {
+        "content": {
+          "en": "We only share personal data when necessary to provide the service, such as:\n• Payment processors (for transactions)\n• Order / file management platforms\n• Logistics / delivery partners\n• Accountants, legal advisors\nAll third parties are bound to confidentiality and data protection obligations consistent with EU GDPR.",
+          "me": "Lične podatke dijelimo samo kada je neophodno za pružanje usluge, kao što su:\n• Platni procesori (za transakcije)\n• Platforme za upravljanje porudžbinama/fajlovima\n• Logistički partneri\n• Računovođe, pravni savjetnici\nSve treće strane su obavezane na povjerljivost i zaštitu podataka u skladu sa EU GDPR-om.",
+          "ru": "Мы передаем персональные данные только в случае необходимости для предоставления услуги, например:\n• Платежным системам (для транзакций)\n• Платформам управления заказами/файлами\n• Партнерам по логистике/доставке\n• Бухгалтерам, юридическим консультантам\nВсе третьи стороны связаны обязательствами по конфиденциальности и защите данных в соответствии с EU GDPR.",
+          "ua": "Ми передаємо персональні дані лише у разі потреби для надання послуги, наприклад:\n• Платіжним системам (для транзакцій)\n• Платформам управління замовленнями/файлами\n• Партнерам з логістики/доставки\n• Бухгалтерам, юридичним консультантам\nУсі треті сторони пов'язані зобов'язаннями щодо конфіденційності та захисту даних відповідно до EU GDPR."
+        },
+        "title": {
+          "en": "6. Sharing & Third-Party Services",
+          "me": "6. Dijeljenje podataka i usluge trećih lica",
+          "ru": "6. Передача данных и сторонние услуги",
+          "ua": "6. Передача даних та сторонні послуги"
+        }
+      },
+      "07_rights": {
+        "content": {
+          "en": "You have the right to: access your personal data, correct inaccuracies, request deletion (where legally permitted), object to processing or withdraw consent, request restriction or portability of data. Submit requests via Hello{'@'}radionica3d.me. We will respond within 30 days.",
+          "me": "Imate pravo na: pristup svojim podacima, ispravku netačnosti, zahtijevanje brisanja (gdje je zakonom dozvoljeno), prigovor na obradu ili povlačenje saglasnosti, zahtijevanje ograničenja ili prenosivosti podataka. Zahtjeve šaljite na Hello{'@'}radionica3d.me. Odgovorićemo u roku od 30 dana.",
+          "ru": "Вы имеете право на: доступ к вашим персональным данным, исправление неточностей, запрос на удаление (где это разрешено законом), возражение против обработки или отзыв согласия, запрос на ограничение или перенос данных. Направляйте запросы на Hello{'@'}radionica3d.me. Мы ответим в течение 30 дней.",
+          "ua": "Ви маєте право на: доступ до ваших персональних даних, виправлення неточністьей, запит на видалення (де це дозволено законом), заперечення проти обробки або відкликання згоди, запит на обмеження або перенесення даних. Надсилайте запити на Hello{'@'}radionica3d.me. Ми відповімо протягом 30 днів."
+        },
+        "title": {
+          "en": "7. Your Rights",
+          "me": "7. Vaša prava",
+          "ru": "7. Ваши права",
+          "ua": "7. Ваші права"
+        }
+      },
+      "08_cookies": {
+        "content": {
+          "en": "We use essential cookies for site functionality, and optional analytics cookies to monitor usage and improve performance. You can manage or disable cookies via browser settings or our site interface.",
+          "me": "Koristimo neophodne kolačiće za funkcionalnost sajta i analitičke kolačiće za praćenje korišćenja. Kolačićima možete upravljati ili ih isključiti u podešavanjima pretraživača.",
+          "ru": "Мы используем необходимые файлы cookie для работы сайта и дополнительные аналитические файлы cookie для мониторинга использования и повышения производительности. Вы можете управлять файлами cookie или отключать их в настройках браузера.",
+          "ua": "Ми використовуємо необхідні файли cookie для роботи сайту та додаткові аналітичні файли cookie для моніторингу використання та підвищення продуктивності. Ви можете керувати файлами cookie або вимикати їх у налаштуваннях браузера."
+        },
+        "title": {
+          "en": "8. Cookies & Analytics",
+          "me": "8. Kolačići i analitika",
+          "ru": "8. Файлы cookie и аналитика",
+          "ua": "8. Файли cookie та аналітика"
+        }
+      },
+      "09_international": {
+        "content": {
+          "en": "Although we store most data in the EU, we also work with service providers (such as order or CRM platforms) whose servers may be located outside the EU (including the US). When personal data is transferred internationally, we ensure it is protected via Standard Contractual Clauses (SCCs) or equivalent safeguards approved under EU GDPR.",
+          "me": "Iako većinu podataka čuvamo u EU, radimo i sa pružaocima usluga čiji se serveri mogu nalaziti izvan EU (uključujući SAD). Kada se podaci prenose međunarodno, osiguravamo zaštitu putem Standardnih ugovornih klauzula (SCC) ili ekvivalentnih zaštitnih mjera u skladu sa EU GDPR-om.",
+          "ru": "Хотя мы храним большую часть данных в ЕС, мы также работаем с поставщиками услуг, чьи серверы могут находиться за пределами ЕС (включая США). При международной передаче данных мы обеспечиваем их защиту с помощью Стандартных договорных условий (SCC) или эквивалентных гарантий, утвержденных в соответствии с EU GDPR.",
+          "ua": "Хоча ми зберігаємо більшу частину даних в ЄС, ми також працюємо з постачальниками послуг, чиї сервери можуть знаходитися за межами ЄС (включаючи США). При міжнародній передачі даних ми забезпечуємо їх захист за допомогою Стандартних договірних умов (SCC) або еквівалентних гарантій, затверджених відповідно до EU GDPR."
+        },
+        "title": {
+          "en": "9. International Transfers & Third-Country Processing",
+          "me": "9. Međunarodni prenos i obrada u trećim zemljama",
+          "ru": "9. Международная передача и обработка в третьих странах",
+          "ua": "9. Міжнародна передача та обробка у третіх країнах"
+        }
+      },
+      "10_updates": {
+        "content": {
+          "en": "We may revise this policy from time to time. The latest version is always available on our website.",
+          "me": "Povremeno možemo revidirati ovu politiku. Najnovija verzija je uvijek dostupna na našem sajtu.",
+          "ru": "Мы можем время от времени пересматривать эту политику. Последняя версия всегда доступна на нашем сайте.",
+          "ua": "Ми можемо час від часу переглядати цю політику. Остання версія завжди доступна на нашому сайті."
+        },
+        "title": {
+          "en": "10. Policy Updates",
+          "me": "10. Ažuriranje politike",
+          "ru": "10. Обновления политики",
+          "ua": "10. Оновлення політики"
+        }
+      },
+      "11_contact": {
+        "content": {
+          "en": "If you have questions or concerns about how we handle your data, please contact us at Hello{'@'}radionica3d.me.",
+          "me": "Ako imate pitanja ili nedoumica o tome kako rukujemo vašim podacima, kontaktirajte nas na Hello{'@'}radionica3d.me.",
+          "ru": "Если у вас есть вопросы или опасения по поводу того, как мы обрабатываем ваши данные, свяжитесь с нами по адресу Hello{'@'}radionica3d.me.",
+          "ua": "Якщо у вас є запитання або побоювання щодо того, як ми обробляємо ваші дані, зв’яжіться з нами за адресою Hello{'@'}radionica3d.me."
+        },
+        "title": {
+          "en": "11. Contact & Complaints",
+          "me": "11. Kontakt i prigovori",
+          "ru": "11. Контакты и жалобы",
+          "ua": "11. Контакти та скарги"
+        }
+      }
+    },
+    "subtitle": {
+      "en": "Effective Date: April 11, 2026\nRadionica3d (“we”, “us”) operates this website and is responsible for how your personal data is collected and used.",
+      "me": "Datum stupanja na snagu: 11. april 2026.\nRadionica3d („mi”, „nas”) upravlja ovim sajtom i odgovorna je za način na koji se vaši lični podaci prikupljaju i koriste.",
+      "ru": "Дата вступления в силу: 11 апреля 2026 г.\nRadionica3d («мы», «нам») управляет этим сайтом и несет ответственность за сбор и использование ваших персональных данных.",
+      "ua": "Дата набрання чинності: 11 квітня 2026 р.\nRadionica3d («ми», «нам») керує цим сайтом і несе відповідальність за збір та використання ваших персональних даних."
+    },
+    "title": {
+      "en": "Privacy Policy",
+      "me": "Politika privatnosti",
+      "ru": "Политика конфиденциальности",
+      "ua": "Політика конфіденційності"
+    }
+  }
+}

+ 16 - 0
src/locales/master_user/profile.json

@@ -0,0 +1,16 @@
+{
+  "profile": {
+    "complete_subtitle": {
+      "en": "Please provide your contact information to continue with the order.",
+      "me": "Molimo unesite svoje kontakt podatke da biste nastavili sa narudžbom.",
+      "ru": "Пожалуйста, предоставьте контактную информацию, чтобы продолжить оформление заказа.",
+      "ua": "Будь ласка, надайте контактну інформацію, щоб продовжити оформлення замовлення."
+    },
+    "complete_title": {
+      "en": "Complete Your Profile",
+      "me": "Popunite svoj profil",
+      "ru": "Заполните профиль",
+      "ua": "Заповніть профіль"
+    }
+  }
+}

+ 56 - 0
src/locales/master_user/services.json

@@ -0,0 +1,56 @@
+{
+  "services": {
+    "badge": {
+      "en": "Our Capabilities",
+      "me": "Naše mogućnosti",
+      "ru": "Наши возможности",
+      "ua": "Наші можливості"
+    },
+    "description": {
+      "en": "We'll choose the optimal printing method for your specific design.",
+      "me": "Odabraćemo optimalnu metodu štampe za tvoj specifični dizajn.",
+      "ru": "Мы подберем оптимальный метод печати для вашей задачи.",
+      "ua": "Ми підберемо оптимальний метод друку для вашого завдання."
+    },
+    "fdm": {
+      "description": {
+        "en": "Durable parts made from engineering plastics.",
+        "me": "Izdržljivi djelovi od industrijske plastike.",
+        "ru": "Прочные детали из инженерных пластиков.",
+        "ua": "Міцні деталі із інженерних пластиків."
+      },
+      "title": {
+        "en": "FDM Printing",
+        "me": "FDM Štampa",
+        "ru": "FDM печать",
+        "ua": "FDM друк"
+      }
+    },
+    "sla": {
+      "description": {
+        "en": "Maximum resolution and smooth industrial finish.",
+        "me": "Maksimalna preciznost i glatka industrijska obrada.",
+        "ru": "Максимальная детализация и гладкость изделий.",
+        "ua": "Максимальна деталізація та гладкість виробів."
+      },
+      "title": {
+        "en": "SLA Resin",
+        "me": "SLA Resin",
+        "ru": "SLA смола",
+        "ua": "SLA смола"
+      }
+    },
+    "title": {
+      "en": "Core",
+      "me": "Glavne",
+      "ru": "Технологии",
+      "ua": "Технології"
+    },
+    "titleGradient": {
+      "en": "Technologies",
+      "me": "tehnologije",
+      "ru": "реализации",
+      "ua": "реалізації"
+    }
+  }
+}

+ 52 - 0
src/locales/master_user/statuses.json

@@ -0,0 +1,52 @@
+{
+  "statuses": {
+    "pending": {
+      "en": "Pending",
+      "me": "Na čekanju",
+      "ru": "В ожидании",
+      "ua": "В очікуванні"
+    },
+    "processing": {
+      "en": "Processing",
+      "me": "U obradi",
+      "ru": "В работе",
+      "ua": "В роботі"
+    },
+    "shipped": {
+      "en": "Shipped",
+      "me": "Poslato",
+      "ru": "Отправлено",
+      "ua": "Відправлено"
+    },
+    "completed": {
+      "en": "Completed",
+      "me": "Završeno",
+      "ru": "Завершено",
+      "ua": "Завершено"
+    },
+    "cancelled": {
+      "en": "Cancelled",
+      "me": "Otkazano",
+      "ru": "Отменено",
+      "ua": "Скасовано"
+    },
+    "approved": {
+      "en": "Approved",
+      "me": "Odobreno",
+      "ru": "Одобрено",
+      "ua": "Схвалено"
+    },
+    "printing": {
+      "en": "Printing",
+      "me": "Štampanje",
+      "ru": "Печать",
+      "ua": "Друк"
+    },
+    "delivered": {
+      "en": "Delivered",
+      "me": "Uručeno",
+      "ru": "Доставлено",
+      "ua": "Доставлено"
+    }
+  }
+}

+ 336 - 0
src/locales/master_user/terms.json

@@ -0,0 +1,336 @@
+{
+  "terms": {
+    "changes": {
+      "content": {
+        "en": "Subject to change.",
+        "me": "Podložno izmjenama.",
+        "ru": "Могут меняться.",
+        "ua": "Можуть змінюватися."
+      },
+      "title": {
+        "en": "Changes",
+        "me": "Izmjene",
+        "ru": "Изменения",
+        "ua": "Зміни"
+      }
+    },
+    "contact": {
+      "button": {
+        "en": "Legal",
+        "me": "Pravnik",
+        "ru": "Юрист",
+        "ua": "Юрист"
+      },
+      "description": {
+        "en": "Legal questions.",
+        "me": "Pravna pitanja.",
+        "ru": "Юридические вопросы.",
+        "ua": "Юридичні питання."
+      },
+      "email": {
+        "en": "Email",
+        "me": "Email",
+        "ru": "Email",
+        "ua": "Email"
+      },
+      "title": {
+        "en": "Contact",
+        "me": "Kontakt",
+        "ru": "Контакт",
+        "ua": "Контакт"
+      }
+    },
+    "intellectualProperty": {
+      "companyRights": {
+        "content": {
+          "en": "We own our tech.",
+          "me": "Mi posjedujemo našu tehnologiju.",
+          "ru": "Мы владеем нашей технологией.",
+          "ua": "Ми володіємо нашою технологією."
+        },
+        "title": {
+          "en": "Our Rights",
+          "me": "Naša prava",
+          "ru": "Наши права",
+          "ua": "Наші права"
+        }
+      },
+      "description": {
+        "en": "Property rights.",
+        "me": "Vlasnička prava.",
+        "ru": "Права собственности.",
+        "ua": "Права власності."
+      },
+      "title": {
+        "en": "IP",
+        "me": "IP",
+        "ru": "ИС",
+        "ua": "ІВ"
+      },
+      "userRights": {
+        "content": {
+          "en": "You own your models.",
+          "me": "Vi posjedujete svoje modele.",
+          "ru": "Вы владеете своими моделями.",
+          "ua": "Ви володієте своїми моделями."
+        },
+        "title": {
+          "en": "Your Rights",
+          "me": "Vaša prava",
+          "ru": "Ваши права",
+          "ua": "Ваші права"
+        }
+      }
+    },
+    "introduction": {
+      "content": {
+        "en": "Welcome to Radionica 3D.",
+        "me": "Dobrodošli u Radionica 3D.",
+        "ru": "Добро пожаловать в Radionica 3D.",
+        "ua": "Ласкаво просимо до Radionica 3D."
+      },
+      "title": {
+        "en": "Introduction",
+        "me": "Uvod",
+        "ru": "Введение",
+        "ua": "Вступ"
+      }
+    },
+    "liability": {
+      "description": {
+        "en": "Legal limits.",
+        "me": "Pravne granice.",
+        "ru": "Юридические границы.",
+        "ua": "Юридичні межі."
+      },
+      "limitations": {
+        "point1": {
+          "en": "No misuse.",
+          "me": "Nema zloupotrebe.",
+          "ru": "Без злоупотреблений.",
+          "ua": "Без зловживань."
+        },
+        "point2": {
+          "en": "Local laws.",
+          "me": "Lokalni zakoni.",
+          "ru": "Местные законы.",
+          "ua": "Місцеві закони."
+        },
+        "point3": {
+          "en": "Safe handling.",
+          "me": "Sigurno rukovanje.",
+          "ru": "Безопасное обращение.",
+          "ua": "Безпечне поводження."
+        },
+        "point4": {
+          "en": "No warrenty.",
+          "me": "Bez garancije.",
+          "ru": "Без гарантий.",
+          "ua": "Без гарантій."
+        },
+        "title": {
+          "en": "Limits",
+          "me": "Granice",
+          "ru": "Границы",
+          "ua": "Межі"
+        }
+      },
+      "title": {
+        "en": "Liability",
+        "me": "Odgovornost",
+        "ru": "Ответственность",
+        "ua": "Відповідальність"
+      }
+    },
+    "payment": {
+      "description": {
+        "en": "Trust model.",
+        "me": "Model povjerenja.",
+        "ru": "Модель доверия.",
+        "ua": "Модель довіри."
+      },
+      "title": {
+        "en": "Payment",
+        "me": "Plaćanje",
+        "ru": "Оплата",
+        "ua": "Оплата"
+      },
+      "trustModel": {
+        "point1": {
+          "en": "Pay after delivery.",
+          "me": "Platite nakon dostave.",
+          "ru": "Оплата после доставки.",
+          "ua": "Оплата після доставки."
+        },
+        "point2": {
+          "en": "We guarantee quality.",
+          "me": "Garantujemo kvalitet.",
+          "ru": "Мы гарантируем качество.",
+          "ua": "Ми гарантуємо якість."
+        },
+        "point3": {
+          "en": "Fair usage.",
+          "me": "Fer upotreba.",
+          "ru": "Честное использование.",
+          "ua": "Чесне використання."
+        },
+        "point4": {
+          "en": "Support provided.",
+          "me": "Podrška uključena.",
+          "ru": "Поддержка включена.",
+          "ua": "Підтримка включена."
+        },
+        "title": {
+          "en": "Details",
+          "me": "Detalji",
+          "ru": "Детали",
+          "ua": "Деталі"
+        }
+      }
+    },
+    "services": {
+      "description": {
+        "en": "FDM and SLA printing.",
+        "me": "FDM i SLA štampa.",
+        "ru": "FDM и SLA печать.",
+        "ua": "FDM та SLA друк."
+      },
+      "point1": {
+        "en": "Quality guaranteed.",
+        "me": "Kvalitet garantovan.",
+        "ru": "Гарантия качества.",
+        "ua": "Гарантія якості."
+      },
+      "point2": {
+        "en": "Fast delivery.",
+        "me": "Brza dostava.",
+        "ru": "Быстрая доставка.",
+        "ua": "Швидка доставка."
+      },
+      "point3": {
+        "en": "Support.",
+        "me": "Podrška.",
+        "ru": "Поддержка.",
+        "ua": "Підтримка."
+      },
+      "point4": {
+        "en": "Trust.",
+        "me": "Povjerenje.",
+        "ru": "Доверие.",
+        "ua": "Довіра."
+      },
+      "title": {
+        "en": "Services",
+        "me": "Usluge",
+        "ru": "Услуги",
+        "ua": "Послуги"
+      }
+    },
+    "shipping": {
+      "delivery": {
+        "content": {
+          "en": "Mail delivery.",
+          "me": "Dostava poštom.",
+          "ru": "Доставка почтой.",
+          "ua": "Доставка поштою."
+        },
+        "title": {
+          "en": "Methods",
+          "me": "Metode",
+          "ru": "Методы",
+          "ua": "Методи"
+        }
+      },
+      "description": {
+        "en": "How we ship.",
+        "me": "Kako šaljemo.",
+        "ru": "Как мы отправляем.",
+        "ua": "Як ми відправляємо."
+      },
+      "returns": {
+        "content": {
+          "en": "Reasonable returns.",
+          "me": "Razumni povrati.",
+          "ru": "Возможен возврат.",
+          "ua": "Можливе повернення."
+        },
+        "title": {
+          "en": "Returns",
+          "me": "Povrat",
+          "ru": "Возврат",
+          "ua": "Повернення"
+        }
+      },
+      "title": {
+        "en": "Shipping",
+        "me": "Dostava",
+        "ru": "Доставка",
+        "ua": "Доставка"
+      }
+    },
+    "subtitle": {
+      "en": "Legal stuff.",
+      "me": "Pravne stvari.",
+      "ru": "Юридические моменты.",
+      "ua": "Юридичні моменти."
+    },
+    "title": {
+      "en": "Terms",
+      "me": "Uslovi",
+      "ru": "Условия",
+      "ua": "Умови"
+    },
+    "userResponsibilities": {
+      "description": {
+        "en": "Safe use.",
+        "me": "Sigurna upotreba.",
+        "ru": "Безопасное использование.",
+        "ua": "Безпечне використання."
+      },
+      "prohibited": {
+        "point1": {
+          "en": "Illegal items.",
+          "me": "Ilegalni predmeti.",
+          "ru": "Незаконные предметы.",
+          "ua": "Незаконні предмети."
+        },
+        "point2": {
+          "en": "Harmful materials.",
+          "me": "Opasni materijali.",
+          "ru": "Опасные материалы.",
+          "ua": "Небезпечні матеріали."
+        },
+        "point3": {
+          "en": "Copyrighted files.",
+          "me": "Fajlovi pod zaštitom.",
+          "ru": "Файлы с авторским правом.",
+          "ua": "Файли з авторським правом."
+        },
+        "point4": {
+          "en": "Spam.",
+          "me": "Spam.",
+          "ru": "Спам.",
+          "ua": "Спам."
+        },
+        "point5": {
+          "en": "Abuse.",
+          "me": "Zloupotreba.",
+          "ru": "Злоупотребление.",
+          "ua": "Зловживання."
+        },
+        "title": {
+          "en": "Prohibited",
+          "me": "Zabranjeno",
+          "ru": "Запрещено",
+          "ua": "Заборонено"
+        }
+      },
+      "title": {
+        "en": "Responsibilities",
+        "me": "Odgovornosti",
+        "ru": "Обязанности",
+        "ua": "Обов'язки"
+      }
+    }
+  }
+}

+ 178 - 0
src/locales/master_user/upload.json

@@ -0,0 +1,178 @@
+{
+  "upload": {
+    "addressPlaceholder": {
+      "en": "City, ZIP, Address (free form)",
+      "me": "Grad, Poštanski broj, Adresa (slobodna forma)",
+      "ru": "Город, Индекс, Адрес (в свободной форме)",
+      "ua": "Місто, Індекс, Адреса (у вільній формі)"
+    },
+    "allowPortfolio": {
+      "en": "Allow featuring in public portfolio",
+      "me": "Dozvoli prikazivanje u javnom portfoliju",
+      "ru": "Разрешить публикацию в портфолио",
+      "ua": "Дозволити публікацію в портфоліо"
+    },
+    "allowPortfolioDesc": {
+      "en": "We'll show photos of your print to inspire other customers.",
+      "me": "Prikazaćemo fotografije vašeg modela kako bismo inspirisali druge klijente.",
+      "ru": "Мы покажем фото вашего изделия, чтобы вдохновить других клиентов.",
+      "ua": "Ми покажемо фотографії вашого виробу, щоб надихнути інших клієнтів."
+    },
+    "badge": {
+      "en": "Place Your Project",
+      "me": "Kreiranje projekta",
+      "ru": "Оформление заказа",
+      "ua": "Оформлення замовлення"
+    },
+    "browse": {
+      "en": "browse files",
+      "me": "pretraži datoteke",
+      "ru": "выбрать файлы",
+      "ua": "вибрати файли"
+    },
+    "continue": {
+      "en": "Submit Request",
+      "me": "Pošalji zahtjev",
+      "ru": "Отправить заказ",
+      "ua": "Надіслати замовлення"
+    },
+    "description": {
+      "en": "Upload a file or provide a link to a model (Thingiverse, Printables, etc.). We'll contact you for details.",
+      "me": "Otpremite datoteku ili navedite link do modela (Thingiverse, Printables i dr.). Kontaktiraćemo vas radi detalja.",
+      "ru": "Загрузите файл или укажите ссылку на модель (Thingiverse, Printables и др.). Мы свяжемся с вами для уточнения деталей.",
+      "ua": "Завантажте файл або вкажіть посилання на модель (Thingiverse, Printables тощо). Ми зв'яжемося з вами для уточнення деталей."
+    },
+    "dropzone": {
+      "en": "Upload files (STL, OBJ, STEP)",
+      "me": "Otpremi datoteke (STL, OBJ, STEP)",
+      "ru": "Загрузить файлы (STL, OBJ, STEP)",
+      "ua": "Завантажити файли (STL, OBJ, STEP)"
+    },
+    "dropzoneActive": {
+      "en": "Drop your files here",
+      "me": "Prevucite datoteke ovdje",
+      "ru": "Переместите файлы сюда",
+      "ua": "Перемістіть файли сюди"
+    },
+    "email": {
+      "en": "Email Address",
+      "me": "Email adresa",
+      "ru": "Email",
+      "ua": "Email"
+    },
+    "error": {
+      "en": "Failed to submit order.",
+      "me": "Slanje narudžbe nije uspjelo.",
+      "ru": "Ошибка загрузки",
+      "ua": "Помилка завантаження"
+    },
+    "estimatedTotal": {
+      "en": "Estimated Total",
+      "me": "Procijenjeni ukupni iznos",
+      "ru": "Приблизительный итог",
+      "ua": "Орієнтовний підсумок"
+    },
+    "firstName": {
+      "en": "First Name",
+      "me": "Ime",
+      "ru": "Имя",
+      "ua": "Ім'я"
+    },
+    "lastName": {
+      "en": "Last Name",
+      "me": "Prezime",
+      "ru": "Фамилия",
+      "ua": "Прізвище"
+    },
+    "modelLink": {
+      "en": "Model Link (optional)",
+      "me": "Link do modela (opciono)",
+      "ru": "Ссылка на модель (необязательно)",
+      "ua": "Посилання на модель (необов'язково)"
+    },
+    "modelLinkPlaceholder": {
+      "en": "https://www.printables.com/model/...",
+      "me": "https://www.printables.com/model/...",
+      "ru": "https://www.printables.com/model/...",
+      "ua": "https://www.printables.com/model/..."
+    },
+    "notes": {
+      "en": "Order Notes / Remarks",
+      "me": "Napomene uz narudžbu",
+      "ru": "Примечания к заказу",
+      "ua": "Примітки до замовлення"
+    },
+    "notesPlaceholder": {
+      "en": "Color preferences, specific requirements, or special instructions...",
+      "me": "Želje za bojom, materijalom, specifičnim zahtjevima ili posebne instrukcije...",
+      "ru": "Пожелания по цвету, материалу, толщине стенок или другие инструкции...",
+      "ua": "Побажання щодо кольору, матеріалу, товщини стінок або інші інструкції."
+    },
+    "phone": {
+      "en": "Phone Number",
+      "me": "Broj telefona",
+      "ru": "Телефон",
+      "ua": "Телефон"
+    },
+    "priceDisclaimer": {
+      "en": "Approximate cost based on material. Complexity and labor are not included and will be factored in the final quote.",
+      "me": "Okviran trošak na bazi materijala. Složenost i rad nisu uključeni i biće dodati u konačnu ponudu.",
+      "ru": "Ориентировочная стоимость на основе материала. Сложность и трудоемкость будут учтены при финальной оценке администратором.",
+      "ua": "Орієнтовна вартість на основі матеріалу. Складність та трудомісткість будуть враховані при фінальній оцінці адміністратором."
+    },
+    "quantity": {
+      "en": "Quantity",
+      "me": "Broj kopija",
+      "ru": "Количество копий",
+      "ua": "Кількість копій"
+    },
+    "selectColor": {
+      "en": "Select Color",
+      "me": "Izaberite boju",
+      "ru": "Выберите цвет",
+      "ua": "Виберіть колір"
+    },
+    "selectMaterial": {
+      "en": "Select Material",
+      "me": "Izaberite materijal",
+      "ru": "Выберите материал",
+      "ua": "Виберіть матеріал"
+    },
+    "shippingAddress": {
+      "en": "Shipping Address",
+      "me": "Adresa isporuke",
+      "ru": "Адрес доставки",
+      "ua": "Адреса доставки"
+    },
+    "submitting": {
+      "en": "Submitting...",
+      "me": "Slanje...",
+      "ru": "Отправка...",
+      "ua": "Надсилання..."
+    },
+    "success": {
+      "en": "Order submitted successfully!",
+      "me": "Narudžba je uspješno poslata!",
+      "ru": "Заказ успешно отправлен! Мы свяжемся с вами в ближайшее время.",
+      "ua": "Замовлення успішно надіслано! Ми зв'яжемося з вами найближчим часом."
+    },
+    "title": {
+      "en": "Submit",
+      "me": "Pošaljite",
+      "ru": "Пришлите",
+      "ua": "Надішліть"
+    },
+    "titleGradient": {
+      "en": "Your Idea",
+      "me": "vašu ideju",
+      "ru": "вашу идею",
+      "ua": "вашу ідею"
+    },
+    "uploadedFiles": {
+      "en": "Files to print",
+      "me": "Fajlovi za štampu",
+      "ru": "Выбранные файлы",
+      "ua": "Вибрані файли"
+    }
+  }
+}

+ 54 - 0
src/locales/master_user/whyTrust.json

@@ -0,0 +1,54 @@
+{
+  "whyTrust": {
+    "description1": {
+      "en": "We believe that high-quality 3D printing should be accessible, and the process as simple as possible. Our experience allows us to take on the risks: we are confident in our equipment and the quality of our materials.",
+      "me": "Vjerujemo da kvalitetna 3D štampa treba da bude dostupna, a proces — maksimalno jednostavan. Naše iskustvo nam omogućava da preuzmemo rizike: sigurni smo u našu opremu i kvalitet materijala.",
+      "ru": "Мы верим, что качественная 3D-печать должна быть доступной, а процесс — максимально простым. Наш опыт позволяет нам брать на себя риски: мы уверены в своем оборудовании и качестве материалов.",
+      "ua": "Ми віримо, що якісний 3D-друк має бути доступним, а процес — максимально простим. Наш досвід дозволяє нам брати на себе ризики: ми впевнені у своєму обладнанні та якості матеріалів."
+    },
+    "description2": {
+      "en": "This approach removes the barriers of 'complex calculations' and gives you the opportunity to get exactly what you intended, evaluating the results yourself.",
+      "me": "Ovaj pristup eliminiše barijere \"komplikovanih proračuna\" i daje vam mogućnost da dobijete upravo ono što ste zamislili, procjenjujući rezultat samostalno.",
+      "ru": "Этот подход позволяет убрать барьеры \"сложных расчетов\" и дать вам возможность получить именно то, что вы задумали, оценив результат самостоятельно.",
+      "ua": "Цей підхід дозволяє усунути бар'єри \"складних розрахунків\" і дати вам можливість отримати саме те, що ви задумали, оцінивши результат самостійно."
+    },
+    "items": {
+      "noCommissions": {
+        "en": "No fees",
+        "me": "Bez provizija",
+        "ru": "Без комиссий",
+        "ua": "Без комісій"
+      },
+      "noPrepayment": {
+        "en": "No prepayment",
+        "me": "Bez uplate unaprijed",
+        "ru": "Bez предоплаты",
+        "ua": "Без передоплати"
+      },
+      "shipping": {
+        "en": "Mail delivery",
+        "me": "Isporuka poštom",
+        "ru": "Отправка почтой",
+        "ua": "Надсилання поштою"
+      },
+      "yourPrice": {
+        "en": "Fair Price",
+        "me": "Časna cijena",
+        "ru": "Честная цена",
+        "ua": "Чесна ціна"
+      }
+    },
+    "title": {
+      "en": "Why we",
+      "me": "Zašto nam",
+      "ru": "Почему мы",
+      "ua": "Чому ми"
+    },
+    "titleItalic": {
+      "en": "trust",
+      "me": "vjeruju",
+      "ru": "доверяем",
+      "ua": "довіряємо"
+    }
+  }
+}

+ 116 - 134
src/locales/translations.admin.json

@@ -166,10 +166,10 @@
         "ua": "Дія"
       },
       "active": {
-        "en": "Active and Visible",
-        "me": "Aktivan i vidljiv",
-        "ru": "Активен",
-        "ua": "Активний"
+        "en": "Active",
+        "me": "Aktivno",
+        "ru": "Активно",
+        "ua": "Активно"
       },
       "notActive": {
         "en": "Not Active / Private",
@@ -400,10 +400,10 @@
         "ua": "Опублікувати відразу"
       },
       "quantity": {
-        "en": "Quantity",
-        "me": "Količina",
-        "ru": "Количество",
-        "ua": "Кількість"
+        "en": "Quantity / Weight",
+        "me": "Količina / Težina",
+        "ru": "Количество / Вес",
+        "ua": "Кількість / Вага"
       },
       "selectColorStrict": {
         "en": "Select Color (Strict)",
@@ -429,24 +429,12 @@
         "ru": "Slug (URL)",
         "ua": "Slug (URL)"
       },
-      "material": {
-        "en": "Material",
-        "me": "Materijal",
-        "ru": "Материал",
-        "ua": "Матеріал"
-      },
       "color": {
         "en": "Color Name",
         "me": "Naziv boje",
         "ru": "Название цвета",
         "ua": "Назва кольору"
       },
-      "quantity": {
-        "en": "Quantity / Weight",
-        "me": "Količina / Težina",
-        "ru": "Количество / Вес",
-        "ua": "Кількість / Вага"
-      },
       "notes": {
         "en": "Notes",
         "me": "Napomene",
@@ -459,12 +447,6 @@
         "ru": "Статус",
         "ua": "Статус"
       },
-      "active": {
-        "en": "Active",
-        "me": "Aktivno",
-        "ru": "Активно",
-        "ua": "Активно"
-      },
       "snapshotInfo": {
         "en": "These are the parameters recorded at the moment of order submission.",
         "me": "Ovo su parametri zabilježeni u trenutku slanja narudžbe.",
@@ -526,6 +508,18 @@
         "ua": "Користувач"
       }
     },
+    "filters": {
+      "en": "Filters",
+      "me": "Filteri",
+      "ru": "Фильтры",
+      "ua": "Фільтри"
+    },
+    "from": {
+      "en": "From",
+      "me": "Od",
+      "ru": "От",
+      "ua": "Від"
+    },
     "labels": {
       "actions": {
         "en": "Actions",
@@ -712,91 +706,11 @@
         "ua": "Вкажіть новий пароль для цього користувача:"
       }
     },
-    "searchPlaceholder": {
-      "en": "Search {tab}...",
-      "me": "Traži {tab}...",
-      "ru": "Поиск...",
-      "ua": "Пошук..."
-    },
-    "searchUsersPlaceholder": {
-      "en": "Search by name, email, phone...",
-      "me": "Traži po imenu, emailu, telefonu...",
-      "ru": "Поиск пользователей...",
-      "ua": "Пошук користувачів..."
-    },
-    "tabs": {
-      "audit": {
-        "en": "Audit",
-        "me": "Audit",
-        "ru": "Аудит",
-        "ua": "Аудит"
-      },
-      "blog": {
-        "en": "Blog",
-        "me": "Blog",
-        "ru": "Блог",
-        "ua": "Блог"
-      },
-      "materials": {
-        "en": "Materials",
-        "me": "Materijali",
-        "ru": "Материалы",
-        "ua": "Матеріали"
-      },
-      "orders": {
-        "en": "Orders",
-        "me": "Narudžbe",
-        "ru": "Заказы",
-        "ua": "Замовлення"
-      },
-      "portfolio": {
-        "en": "Portfolio",
-        "me": "Portfolio",
-        "ru": "Портфолио",
-        "ua": "Портфоліо"
-      },
-      "posts": {
-        "en": "Blog",
-        "me": "Blog",
-        "ru": "Блог",
-        "ua": "Блог"
-      },
-      "services": {
-        "en": "Services",
-        "me": "Usluge",
-        "ru": "Услуги",
-        "ua": "Послуги"
-      },
-      "reviews": {
-        "en": "Reviews",
-        "me": "Recenzije",
-        "ru": "Отзывы",
-        "ua": "Відгуки"
-      },
-      "users": {
-        "en": "Users",
-        "me": "Korisnici",
-        "ru": "Пользователи",
-        "ua": "Користувачі"
-      }
-    },
-    "warehouse": {
-      "en": "Warehouse",
-      "me": "Skladište",
-      "ru": "Склад",
-      "ua": "Склад",
-      "noStockFound": {
-        "en": "No stock records found",
-        "me": "Nisu pronađeni zapisi o zalihama",
-        "ru": "Остатки не найдены",
-        "ua": "Залишки не знайдені"
-      },
-      "noMaterials": {
-        "en": "First, add materials to the catalog to manage stock",
-        "me": "Prvo dodajte materijale u katalog da biste upravljali zalihama",
-        "ru": "Сначала добавьте материалы в каталог",
-        "ua": "Спочатку додайте материалы до каталогу"
-      }
+    "reset": {
+      "en": "Reset",
+      "me": "Resetuj",
+      "ru": "Сбросить",
+      "ua": "Скинути"
     },
     "reviews": {
       "title": {
@@ -890,6 +804,80 @@
         "ua": "Статус"
       }
     },
+    "searchPlaceholder": {
+      "en": "Search {tab}...",
+      "me": "Traži {tab}...",
+      "ru": "Поиск...",
+      "ua": "Пошук..."
+    },
+    "searchUsersPlaceholder": {
+      "en": "Search by name, email, phone...",
+      "me": "Traži po imenu, emailu, telefonu...",
+      "ru": "Поиск пользователей...",
+      "ua": "Пошук користувачів..."
+    },
+    "tabs": {
+      "audit": {
+        "en": "Audit",
+        "me": "Audit",
+        "ru": "Аудит",
+        "ua": "Аудит"
+      },
+      "blog": {
+        "en": "Blog",
+        "me": "Blog",
+        "ru": "Блог",
+        "ua": "Блог"
+      },
+      "materials": {
+        "en": "Materials",
+        "me": "Materijali",
+        "ru": "Материалы",
+        "ua": "Матеріали"
+      },
+      "orders": {
+        "en": "Orders",
+        "me": "Narudžbe",
+        "ru": "Заказы",
+        "ua": "Замовлення"
+      },
+      "portfolio": {
+        "en": "Portfolio",
+        "me": "Portfolio",
+        "ru": "Портфолио",
+        "ua": "Портфоліо"
+      },
+      "posts": {
+        "en": "Blog",
+        "me": "Blog",
+        "ru": "Блог",
+        "ua": "Блог"
+      },
+      "services": {
+        "en": "Services",
+        "me": "Usluge",
+        "ru": "Услуги",
+        "ua": "Послуги"
+      },
+      "reviews": {
+        "en": "Reviews",
+        "me": "Recenzije",
+        "ru": "Отзывы",
+        "ua": "Відгуки"
+      },
+      "users": {
+        "en": "Users",
+        "me": "Korisnici",
+        "ru": "Пользователи",
+        "ua": "Користувачі"
+      }
+    },
+    "to": {
+      "en": "To",
+      "me": "Do",
+      "ru": "До",
+      "ua": "До"
+    },
     "toasts": {
       "chatDisabled": {
         "en": "Chat for User #{id} is now Disabled",
@@ -1036,29 +1024,23 @@
       "ru": "Всего",
       "ua": "Всього"
     },
-    "filters": {
-      "en": "Filters",
-      "me": "Filteri",
-      "ru": "Фильтры",
-      "ua": "Фільтри"
-    },
-    "from": {
-      "en": "From",
-      "me": "Od",
-      "ru": "От",
-      "ua": "Від"
-    },
-    "to": {
-      "en": "To",
-      "me": "Do",
-      "ru": "До",
-      "ua": "До"
-    },
-    "reset": {
-      "en": "Reset",
-      "me": "Resetuj",
-      "ru": "Сбросить",
-      "ua": "Скинути"
+    "warehouse": {
+      "en": "Warehouse",
+      "me": "Skladište",
+      "ru": "Склад",
+      "ua": "Склад",
+      "noStockFound": {
+        "en": "No stock records found",
+        "me": "Nisu pronađeni zapisi o zalihama",
+        "ru": "Остатки не найдены",
+        "ua": "Залишки не знайдені"
+      },
+      "noMaterials": {
+        "en": "First, add materials to the catalog to manage stock",
+        "me": "Prvo dodajte materijale u katalog da biste upravljali zalihama",
+        "ru": "Сначала добавьте материалы в каталог",
+        "ua": "Спочатку додайте материалы до каталогу"
+      }
     }
   }
 }

+ 82 - 82
src/locales/translations.user.json

@@ -149,6 +149,16 @@
       }
     }
   },
+  "admin": {
+    "actions": {
+      "deleteOrder": {
+        "en": "Delete Order Entirely",
+        "me": "Obriši narudžbu trajno",
+        "ru": "Удалить заказ полностью",
+        "ua": "Видалити замовлення повністю"
+      }
+    }
+  },
   "auth": {
     "back": {
       "en": "Back to Home",
@@ -2057,28 +2067,6 @@
       "ua": "Як ми можемо допомогти?"
     }
   },
-  "home": {
-    "reviews": {
-      "title": {
-        "en": "Client Experiences",
-        "me": "Iskustva klijenata",
-        "ru": "Отзывы наших клиентов",
-        "ua": "Відгуки наших клієнтів"
-      },
-      "subtitle": {
-        "en": "Discover what our customers say about our print quality and reliability.",
-        "me": "Saznajte što naši klijenti misle o kvalitetu i pouzdanosti naše štampe.",
-        "ru": "Узнайте, что наши клиенты думают о качестве нашей печати и надежности сервиса.",
-        "ua": "Дізнайтеся, що наші клієнти думають про якість нашого друку та надійність сервісу."
-      },
-      "verifiedCustomer": {
-        "en": "Verified Customer",
-        "me": "Verifikovani kupac",
-        "ru": "Проверенный заказ",
-        "ua": "Перевірене замовлення"
-      }
-    }
-  },
   "hero": {
     "badge": {
       "en": "Trust in Every Layer",
@@ -2155,6 +2143,28 @@
       "ua": "Замовити друк"
     }
   },
+  "home": {
+    "reviews": {
+      "title": {
+        "en": "Client Experiences",
+        "me": "Iskustva klijenata",
+        "ru": "Отзывы наших клиентов",
+        "ua": "Відгуки наших клієнтів"
+      },
+      "subtitle": {
+        "en": "Discover what our customers say about our print quality and reliability.",
+        "me": "Saznajte što naši klijenti misle o kvalitetu i pouzdanosti naše štampe.",
+        "ru": "Узнайте, что наши клиенты думают о качестве нашей печати и надежности сервиса.",
+        "ua": "Дізнайтеся, що наші клієнти думають про якість нашого друку та надійність сервісу."
+      },
+      "verifiedCustomer": {
+        "en": "Verified Customer",
+        "me": "Verifikovani kupac",
+        "ru": "Проверенный заказ",
+        "ua": "Перевірене замовлення"
+      }
+    }
+  },
   "nav": {
     "admin": {
       "en": "Admin",
@@ -2951,6 +2961,56 @@
       "ua": "реалізації"
     }
   },
+  "statuses": {
+    "pending": {
+      "en": "Pending",
+      "me": "Na čekanju",
+      "ru": "В ожидании",
+      "ua": "В очікуванні"
+    },
+    "processing": {
+      "en": "Processing",
+      "me": "U obradi",
+      "ru": "В работе",
+      "ua": "В роботі"
+    },
+    "shipped": {
+      "en": "Shipped",
+      "me": "Poslato",
+      "ru": "Отправлено",
+      "ua": "Відправлено"
+    },
+    "completed": {
+      "en": "Completed",
+      "me": "Završeno",
+      "ru": "Завершено",
+      "ua": "Завершено"
+    },
+    "cancelled": {
+      "en": "Cancelled",
+      "me": "Otkazano",
+      "ru": "Отменено",
+      "ua": "Скасовано"
+    },
+    "approved": {
+      "en": "Approved",
+      "me": "Odobreno",
+      "ru": "Одобрено",
+      "ua": "Схвалено"
+    },
+    "printing": {
+      "en": "Printing",
+      "me": "Štampanje",
+      "ru": "Печать",
+      "ua": "Друк"
+    },
+    "delivered": {
+      "en": "Delivered",
+      "me": "Uručeno",
+      "ru": "Доставлено",
+      "ua": "Доставлено"
+    }
+  },
   "terms": {
     "changes": {
       "content": {
@@ -3512,65 +3572,5 @@
       "ru": "доверяем",
       "ua": "довіряємо"
     }
-  },
-  "statuses": {
-    "pending": {
-      "en": "Pending",
-      "me": "Na čekanju",
-      "ru": "В ожидании",
-      "ua": "В очікуванні"
-    },
-    "processing": {
-      "en": "Processing",
-      "me": "U obradi",
-      "ru": "В работе",
-      "ua": "В роботі"
-    },
-    "shipped": {
-      "en": "Shipped",
-      "me": "Poslato",
-      "ru": "Отправлено",
-      "ua": "Відправлено"
-    },
-    "completed": {
-      "en": "Completed",
-      "me": "Završeno",
-      "ru": "Завершено",
-      "ua": "Завершено"
-    },
-    "cancelled": {
-      "en": "Cancelled",
-      "me": "Otkazano",
-      "ru": "Отменено",
-      "ua": "Скасовано"
-    },
-    "approved": {
-      "en": "Approved",
-      "me": "Odobreno",
-      "ru": "Одобрено",
-      "ua": "Схвалено"
-    },
-    "printing": {
-      "en": "Printing",
-      "me": "Štampanje",
-      "ru": "Печать",
-      "ua": "Друк"
-    },
-    "delivered": {
-      "en": "Delivered",
-      "me": "Uručeno",
-      "ru": "Доставлено",
-      "ua": "Доставлено"
-    }
-  },
-  "admin": {
-    "actions": {
-      "deleteOrder": {
-        "en": "Delete Order Entirely",
-        "me": "Obriši narudžbu trajno",
-        "ru": "Удалить заказ полностью",
-        "ua": "Видалити замовлення повністю"
-      }
-    }
   }
 }