unknown 1 тиждень тому
батько
коміт
6f2f40f18a

+ 19 - 0
scripts/fix_translations.py

@@ -0,0 +1,19 @@
+import json
+import os
+
+def fix_translations():
+    file_path = os.path.join("src", "locales", "translations.json")
+    
+    with open(file_path, "r", encoding="utf-8") as f:
+        data = json.load(f)
+
+    if "blog" not in data: data["blog"] = {}
+    data["blog"]["back"] = { "en": "Back to Blog", "me": "Nazad na Blog", "ru": "Назад в блог", "ua": "Назад до блогу" }
+
+    with open(file_path, "w", encoding="utf-8") as f:
+        json.dump(data, f, ensure_ascii=False, indent=2)
+    
+    print(f"Successfully updated {file_path}")
+
+if __name__ == "__main__":
+    fix_translations()

+ 23 - 13
src/components/Footer.vue

@@ -17,7 +17,6 @@
         </div>
 
         <!-- Services -->
-        <!-- Links -->
         <div>
           <h4 class="font-display text-xs font-bold uppercase tracking-widest text-foreground/40 mb-3">{{ t("footer.services") }}</h4>
           <ul class="space-y-1.5">
@@ -26,20 +25,25 @@
             </li>
           </ul>
         </div>
+
+        <!-- Company -->
         <div>
           <h4 class="font-display text-xs font-bold uppercase tracking-widest text-foreground/40 mb-3">{{ t("footer.company") }}</h4>
           <ul class="space-y-1.5">
             <li v-for="link in footerLinks.company" :key="link.label">
               <router-link v-if="link.to" :to="link.to" class="text-xs font-bold text-foreground/60 hover:text-primary transition-colors">{{ link.label }}</router-link>
-              <a v-else :href="link.href" class="text-xs font-bold text-foreground/60 hover:text-primary transition-colors">{{ link.label }}</a>
+              <a v-else-if="link.href" :href="link.href" class="text-xs font-bold text-foreground/60 hover:text-primary transition-colors">{{ link.label }}</a>
             </li>
           </ul>
         </div>
+
+        <!-- Support -->
         <div>
           <h4 class="font-display text-xs font-bold uppercase tracking-widest text-foreground/40 mb-3">{{ t("footer.support") }}</h4>
           <ul class="space-y-1.5">
             <li v-for="link in footerLinks.support" :key="link.label">
-              <a :href="link.href" class="text-xs font-bold text-foreground/60 hover:text-primary transition-colors">{{ link.label }}</a>
+              <router-link v-if="link.to" :to="link.to" class="text-xs font-bold text-foreground/60 hover:text-primary transition-colors">{{ link.label }}</router-link>
+              <a v-else-if="link.href" :href="link.href" class="text-xs font-bold text-foreground/60 hover:text-primary transition-colors">{{ link.label }}</a>
             </li>
           </ul>
         </div>
@@ -50,7 +54,7 @@
         <p class="text-[10px] font-bold text-foreground/30 uppercase tracking-widest">© 2024 Radionica 3D. {{ t("footer.allRightsReserved") }}</p>
         <div class="flex gap-4">
           <router-link to="/privacy" class="text-[10px] font-bold text-foreground/30 hover:text-primary transition-colors uppercase tracking-widest">{{ t("footer.privacy") }}</router-link>
-          <a href="#" class="text-[10px] font-bold text-foreground/30 hover:text-primary transition-colors uppercase tracking-widest">{{ t("footer.terms") }}</a>
+          <router-link to="/terms" class="text-[10px] font-bold text-foreground/30 hover:text-primary transition-colors uppercase tracking-widest">{{ t("footer.terms") }}</router-link>
         </div>
       </div>
     </div>
@@ -65,23 +69,29 @@ import Logo from "./Logo.vue";
 
 const { t } = useI18n();
 
+interface FooterLink {
+  label: string;
+  to?: string;
+  href?: string;
+}
+
 const footerLinks = computed(() => ({
   services: [
     { label: t("services.fdm.title"), href: "#" },
     { label: t("services.sla.title"), href: "#" },
-  ],
+  ] as FooterLink[],
   company: [
-    { label: t("footer.about"), href: "#" },
+    { label: t("footer.about"), to: "/about" },
     { label: t("footer.privacy"), to: "/privacy" },
-    { label: t("footer.careers"), href: "#" },
-    { label: t("footer.blog"), href: "#" },
-    { label: t("footer.contact"), href: "#" },
-  ],
+    { label: t("footer.careers"), to: "/careers" },
+    { label: t("footer.blog"), to: "/blog" },
+    { label: t("footer.contact"), to: "/contact" },
+  ] as FooterLink[],
   support: [
-    { label: t("footer.help"), href: "#" },
-    { label: t("footer.guidelines"), href: "#" },
+    { label: t("footer.help"), to: "/help" },
+    { label: t("footer.guidelines"), to: "/guidelines" },
     { label: t("footer.materials"), href: "#" },
     { label: t("footer.api"), href: "#" },
-  ],
+  ] as FooterLink[],
 }));
 </script>

+ 5 - 4
src/components/StlViewer.vue

@@ -5,13 +5,14 @@
 <script setup lang="ts">
 import { ref, onMounted, onUnmounted } from "vue";
 import * as THREE from "three";
-import { STLLoader } from "three/examples/jsm/loaders/STLLoader";
-import { OrbitControls } from "three/examples/jsm/controls/OrbitControls";
+import { STLLoader } from "three/addons/loaders/STLLoader.js";
+import { OrbitControls } from "three/addons/controls/OrbitControls.js";
 
-const props = defineProps<{
+interface Props {
   file: File;
-}>();
+}
 
+const props = defineProps<Props>();
 const container = ref<HTMLElement | null>(null);
 let animationId = 0;
 

+ 418 - 1
src/locales/en.json

@@ -54,7 +54,7 @@
   "footer": {
     "about": "About Us",
     "allRightsReserved": "All rights reserved.",
-    "api": "Documentation",
+    "api": "API",
     "blog": "Blog",
     "careers": "Careers",
     "company": "Company",
@@ -224,5 +224,422 @@
     "message": "This site uses cookies to improve your experience and analyze traffic.",
     "accept": "Accept",
     "leave": "Leave"
+  },
+  "nuances": {
+    "title": "3D Printing Nuances",
+    "subtitle": "What to expect",
+    "description": "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.",
+    "disclaimer": {
+      "title": "Quality Assurance",
+      "text": "These features are due to the very nature of FDM printing technology and do not affect the functionality of the product."
+    },
+    "items": {
+      "layerStructure": {
+        "title": "Layered Structure",
+        "description": "Visible layer lines.",
+        "details": "Result of layered manufacturing."
+      },
+      "surfaceImperfections": {
+        "title": "Surface Texture",
+        "description": "Minor roughness on complex shapes.",
+        "details": "Technological norm."
+      },
+      "supportMarks": {
+        "title": "Support Marks",
+        "description": "Small marks where supports were.",
+        "details": "Expected residue."
+      },
+      "zSeam": {
+        "title": "Z-Seam",
+        "description": "Start/end point of layers.",
+        "details": "Usually placed in corners."
+      },
+      "overhangs": {
+        "title": "Overhangs",
+        "description": "Drooping on unsupported areas.",
+        "details": "Depends on geometry."
+      },
+      "dimensionalTolerances": {
+        "title": "Tolerances",
+        "description": "Minor size deviations.",
+        "details": "Physical property of cooling."
+      },
+      "colorVariations": {
+        "title": "Color",
+        "description": "Slight shade variations.",
+        "details": "Filament batch differences."
+      },
+      "stringing": {
+        "title": "Stringing",
+        "description": "Thin plastic hairs.",
+        "details": "Easily removed."
+      }
+    }
+  },
+  "about": {
+    "subtitle": "Crafting the future, layer by layer.",
+    "mission": {
+      "title": "Our Mission",
+      "content": "Reliable 3D printing for everyone."
+    },
+    "values": {
+      "title": "Values",
+      "trust": {
+        "title": "Trust",
+        "content": "Pay after you see results."
+      }
+    },
+    "team": {
+      "title": "Team",
+      "member1": {
+        "name": "Luka",
+        "role": "Founder"
+      }
+    }
+  },
+  "careers": {
+    "subtitle": "Join our team.",
+    "apply": "Apply",
+    "contact": "Contact",
+    "whyWork": {
+      "title": "Why Us?",
+      "innovation": {
+        "title": "Innovation",
+        "content": "Best tech."
+      },
+      "growth": {
+        "title": "Growth",
+        "content": "Fast growth."
+      },
+      "team": {
+        "title": "Team",
+        "content": "Great folks."
+      },
+      "impact": {
+        "title": "Impact",
+        "content": "Real impact."
+      }
+    },
+    "openPositions": {
+      "title": "Positions",
+      "position1": {
+        "title": "Technician",
+        "type": "Full-time",
+        "location": "Herceg Novi",
+        "description": "3D printer farm management."
+      },
+      "position2": {
+        "title": "Support",
+        "type": "Remote",
+        "location": "Montenegro",
+        "description": "Customer help."
+      }
+    },
+    "process": {
+      "title": "Process",
+      "step1": {
+        "title": "Apply",
+        "description": "Send CV."
+      },
+      "step2": {
+        "title": "Review",
+        "description": "We check."
+      },
+      "step3": {
+        "title": "Interview",
+        "description": "Chat."
+      },
+      "step4": {
+        "title": "Offer",
+        "description": "Done."
+      }
+    },
+    "cta": {
+      "title": "Other?",
+      "content": "Send info."
+    }
+  },
+  "blog": {
+    "subtitle": "3D Printing News & Tips",
+    "readMore": "Read More",
+    "featured": "Featured",
+    "dateFormat": "{date}",
+    "latestPosts": "Latest Posts",
+    "featuredPost": {
+      "title": "The Future of 3D Printing in Montenegro",
+      "excerpt": "How digital manufacturing is changing the local craft business."
+    },
+    "post1": {
+      "title": "FDM vs SLA",
+      "excerpt": "Choosing the right tech."
+    },
+    "post2": {
+      "title": "Materials Guide",
+      "excerpt": "Which one to use?"
+    },
+    "post3": {
+      "title": "Design Tips",
+      "excerpt": "Optimize your STL."
+    },
+    "categories": {
+      "title": "Categories",
+      "technology": "Technology",
+      "materials": "Materials",
+      "tutorials": "Tutorials",
+      "caseStudies": "Case Studies",
+      "industry": "Industry"
+    },
+    "newsletter": {
+      "title": "Newsletter",
+      "content": "Stay in loop.",
+      "placeholder": "Email",
+      "subscribe": "Subscribe"
+    },
+    "back": "Back to Blog"
+  },
+  "help": {
+    "subtitle": "How can we help?",
+    "search": {
+      "placeholder": "Search..."
+    },
+    "categories": {
+      "title": "Categories",
+      "ordering": {
+        "title": "Ordering",
+        "description": "How it works."
+      },
+      "pricing": {
+        "title": "Pricing",
+        "description": "Trust model."
+      },
+      "shipping": {
+        "title": "Shipping",
+        "description": "Mail delivery."
+      },
+      "technical": {
+        "title": "Technical",
+        "description": "Files & specs."
+      }
+    },
+    "faq": {
+      "title": "FAQ",
+      "q1": {
+        "question": "How much should I pay?",
+        "answer": "You decide the value."
+      },
+      "q2": {
+        "question": "Delivery time?",
+        "answer": "Usually 2-3 days."
+      },
+      "q3": {
+        "question": "What files?",
+        "answer": "STL, OBJ, STEP."
+      },
+      "q4": {
+        "question": "Confidentiality?",
+        "answer": "Your models are safe."
+      },
+      "q5": {
+        "question": "Support?",
+        "answer": "We help with design."
+      }
+    },
+    "contact": {
+      "title": "Contact",
+      "description": "Email us.",
+      "button": "Support",
+      "email": "Email"
+    }
+  },
+  "contact": {
+    "subtitle": "Get in touch.",
+    "form": {
+      "title": "Email",
+      "name": "Name",
+      "subject": "Subject",
+      "message": "Message",
+      "submit": "Send"
+    },
+    "info": {
+      "title": "Info",
+      "email": "hello@radionica3d.me",
+      "phone": "+382 68 888 777",
+      "location": "Herceg Novi"
+    }
+  },
+  "guidelines": {
+    "title": "Guidelines",
+    "subtitle": "Healthy environment.",
+    "filePreparation": {
+      "title": "File Preparation",
+      "formats": {
+        "title": "Formats",
+        "stl": "STL",
+        "obj": "OBJ",
+        "step": "STEP",
+        "3mf": "3MF"
+      },
+      "requirements": {
+        "title": "Requirements",
+        "watertight": "Watertight",
+        "normals": "Correct Normals",
+        "scale": "Proper Scale",
+        "wallThickness": "Min Wall Thickness"
+      }
+    },
+    "designTips": {
+      "title": "Design Tips",
+      "fdm": {
+        "title": "FDM",
+        "overhangs": "Overhangs",
+        "bridging": "Bridging",
+        "layerHeight": "Layer Height",
+        "infill": "Infill"
+      },
+      "sla": {
+        "title": "SLA",
+        "supports": "Supports",
+        "orientation": "Orientation",
+        "drainage": "Drainage",
+        "postProcessing": "Post-processing"
+      }
+    },
+    "materialSelection": {
+      "title": "Materials",
+      "table": {
+        "material": "Material",
+        "bestFor": "Best For",
+        "considerations": "Notes"
+      },
+      "pla": {
+        "name": "PLA",
+        "bestFor": "Prototypes",
+        "considerations": "Bio-degradable"
+      },
+      "abs": {
+        "name": "ABS",
+        "bestFor": "Tech parts",
+        "considerations": "Heat resistant"
+      },
+      "petg": {
+        "name": "PETG",
+        "bestFor": "Durable",
+        "considerations": "Easy print"
+      },
+      "resin": {
+        "name": "Resin",
+        "bestFor": "Detail",
+        "considerations": "UV sensitive"
+      }
+    },
+    "orderingProcess": {
+      "title": "Process",
+      "step1": {
+        "title": "Upload",
+        "description": "Send file"
+      },
+      "step2": {
+        "title": "Print",
+        "description": "We craft"
+      },
+      "step3": {
+        "title": "Ship",
+        "description": "By mail"
+      },
+      "step4": {
+        "title": "Pay",
+        "description": "Trust model"
+      }
+    },
+    "help": {
+      "title": "Need Help?",
+      "description": "Ask us.",
+      "helpCenter": "Help Center",
+      "contact": "Contact"
+    }
+  },
+  "terms": {
+    "title": "Terms",
+    "subtitle": "Legal stuff.",
+    "introduction": {
+      "title": "Introduction",
+      "content": "Welcome to Radionica 3D."
+    },
+    "services": {
+      "title": "Services",
+      "description": "FDM and SLA printing.",
+      "point1": "Quality guaranteed.",
+      "point2": "Fast delivery.",
+      "point3": "Support.",
+      "point4": "Trust."
+    },
+    "userResponsibilities": {
+      "title": "Responsibilities",
+      "description": "Safe use.",
+      "prohibited": {
+        "title": "Prohibited",
+        "point1": "Illegal items.",
+        "point2": "Harmful materials.",
+        "point3": "Copyrighted files.",
+        "point4": "Spam.",
+        "point5": "Abuse."
+      }
+    },
+    "intellectualProperty": {
+      "title": "IP",
+      "description": "Property rights.",
+      "userRights": {
+        "title": "Your Rights",
+        "content": "You own your models."
+      },
+      "companyRights": {
+        "title": "Our Rights",
+        "content": "We own our tech."
+      }
+    },
+    "payment": {
+      "title": "Payment",
+      "description": "Trust model.",
+      "trustModel": {
+        "title": "Details",
+        "point1": "Pay after delivery.",
+        "point2": "You value quality.",
+        "point3": "Fair usage.",
+        "point4": "Support provided."
+      }
+    },
+    "shipping": {
+      "title": "Shipping",
+      "description": "How we ship.",
+      "delivery": {
+        "title": "Methods",
+        "content": "Mail delivery."
+      },
+      "returns": {
+        "title": "Returns",
+        "content": "Reasonable returns."
+      }
+    },
+    "liability": {
+      "title": "Liability",
+      "description": "Legal limits.",
+      "limitations": {
+        "title": "Limits",
+        "point1": "No misuse.",
+        "point2": "Local laws.",
+        "point3": "Safe handling.",
+        "point4": "No warrenty."
+      }
+    },
+    "changes": {
+      "title": "Changes",
+      "content": "Subject to change."
+    },
+    "contact": {
+      "title": "Contact",
+      "description": "Legal questions.",
+      "button": "Legal",
+      "email": "Email"
+    }
   }
 }

+ 418 - 1
src/locales/me.json

@@ -54,7 +54,7 @@
   "footer": {
     "about": "O nama",
     "allRightsReserved": "Sva prava zadržana.",
-    "api": "Dokumentacija",
+    "api": "API",
     "blog": "Blog",
     "careers": "Karijere",
     "company": "Kompanija",
@@ -224,5 +224,422 @@
     "message": "Ovaj sajt koristi kolačiće za pružanje boljeg korisničkog iskustva.",
     "accept": "Prihvati",
     "leave": "Napusti"
+  },
+  "nuances": {
+    "title": "Nijanse 3D štampe",
+    "subtitle": "Šta očekivati",
+    "description": "Proizvodi napravljeni FDM metodom (slojevito topljenje plastike) imaju niz vizuelnih i taktilnih karakteristika koje su normalne za tehnologiju i ne smatramo ih defektima.",
+    "disclaimer": {
+      "title": "Garancija kvaliteta",
+      "text": "Ove karakteristike su posledica same prirode tehnologije FDM štampe."
+    },
+    "items": {
+      "layerStructure": {
+        "title": "Slojevita struktura",
+        "description": "Vidljive linije slojeva.",
+        "details": "Rezultat slojevite proizvodnje."
+      },
+      "surfaceImperfections": {
+        "title": "Tekstura površine",
+        "description": "Blaga hrapavost na složenim oblicima.",
+        "details": "Tehnološka norma."
+      },
+      "supportMarks": {
+        "title": "Tragovi podrški",
+        "description": "Mali tragovi od potpornih struktura.",
+        "details": "Očekivani ostaci."
+      },
+      "zSeam": {
+        "title": "Z-šav",
+        "description": "Početna/završna tačka slojeva.",
+        "details": "Obično se skriva u uglovima."
+      },
+      "overhangs": {
+        "title": "Prepusti",
+        "description": "Opuštanje na neoslonjenim djelovima.",
+        "details": "Zavisi od geometrije."
+      },
+      "dimensionalTolerances": {
+        "title": "Tolerancije",
+        "description": "Manja odstupanja dimenzija.",
+        "details": "Fizičko svojstvo hlađenja."
+      },
+      "colorVariations": {
+        "title": "Boja",
+        "description": "Blage varijacije nijanse.",
+        "details": "Razlike u serijama materijala."
+      },
+      "stringing": {
+        "title": "Niti",
+        "description": "Tanke plastične niti.",
+        "details": "Lako se uklanjaju."
+      }
+    }
+  },
+  "about": {
+    "subtitle": "Bavimo se budućnošću, sloj po sloj.",
+    "mission": {
+      "title": "Naša misija",
+      "content": "Pouzdan 3D štampa za sve."
+    },
+    "values": {
+      "title": "Vrijednosti",
+      "trust": {
+        "title": "Povjerenje",
+        "content": "Platite nakon što vidite rezultat."
+      }
+    },
+    "team": {
+      "title": "Tim",
+      "member1": {
+        "name": "Luka",
+        "role": "Osnivač"
+      }
+    }
+  },
+  "careers": {
+    "subtitle": "Pridružite se timu.",
+    "apply": "Prijavi se",
+    "contact": "Kontakt",
+    "whyWork": {
+      "title": "Zašto mi?",
+      "innovation": {
+        "title": "Inovacije",
+        "content": "Najbolja tehnologija."
+      },
+      "growth": {
+        "title": "Rast",
+        "content": "Brz rast."
+      },
+      "team": {
+        "title": "Tim",
+        "content": "Sjajni ljudi."
+      },
+      "impact": {
+        "title": "Uticaj",
+        "content": "Stvarni uticaj."
+      }
+    },
+    "openPositions": {
+      "title": "Pozicije",
+      "position1": {
+        "title": "Tehničar",
+        "type": "Puno radno vrijeme",
+        "location": "Herceg Novi",
+        "description": "Upravljanje farmom štampača."
+      },
+      "position2": {
+        "title": "Podrška",
+        "type": "Daljinski",
+        "location": "Crna Gora",
+        "description": "Pomoć klijentima."
+      }
+    },
+    "process": {
+      "title": "Proces",
+      "step1": {
+        "title": "Prijava",
+        "description": "Pošaljite CV."
+      },
+      "step2": {
+        "title": "Pregled",
+        "description": "Pregledamo."
+      },
+      "step3": {
+        "title": "Intervju",
+        "description": "Razgovor."
+      },
+      "step4": {
+        "title": "Ponuda",
+        "description": "Gotovo."
+      }
+    },
+    "cta": {
+      "title": "Ostalo?",
+      "content": "Pošaljite info."
+    }
+  },
+  "blog": {
+    "subtitle": "Vijesti i savjeti o 3D štampi",
+    "readMore": "Pročitaj više",
+    "featured": "Izdvojeno",
+    "dateFormat": "{date}",
+    "latestPosts": "Najnoviji članci",
+    "featuredPost": {
+      "title": "Budućnost 3D štampe u Crnoj Gori",
+      "excerpt": "Kako digitalna proizvodnja mijenja lokalni zanat."
+    },
+    "post1": {
+      "title": "FDM i SLA",
+      "excerpt": "Odabir tehnologije."
+    },
+    "post2": {
+      "title": "Vodič materijala",
+      "excerpt": "Koji koristiti?"
+    },
+    "post3": {
+      "title": "Savjeti za dizajn",
+      "excerpt": "Optimizujte STL."
+    },
+    "categories": {
+      "title": "Kategorije",
+      "technology": "Tehnologija",
+      "materials": "Materijali",
+      "tutorials": "Vodiči",
+      "caseStudies": "Кейсы",
+      "industry": "Industrija"
+    },
+    "newsletter": {
+      "title": "Bilten",
+      "content": "Budite u toku.",
+      "placeholder": "Email",
+      "subscribe": "Prijavi se"
+    },
+    "back": "Nazad na Blog"
+  },
+  "help": {
+    "subtitle": "Kako možemo pomoći?",
+    "search": {
+      "placeholder": "Traži..."
+    },
+    "categories": {
+      "title": "Kategorije",
+      "ordering": {
+        "title": "Naručivanje",
+        "description": "Kako radi."
+      },
+      "pricing": {
+        "title": "Cijene",
+        "description": "Model povjerenja."
+      },
+      "shipping": {
+        "title": "Dostava",
+        "description": "Dostava poštom."
+      },
+      "technical": {
+        "title": "Tehničko",
+        "description": "Datoteke i specifikacije."
+      }
+    },
+    "faq": {
+      "title": "FAQ",
+      "q1": {
+        "question": "Koliko da platim?",
+        "answer": "Vi odlučujete o vrijednosti."
+      },
+      "q2": {
+        "question": "Vrijeme dostave?",
+        "answer": "Obično 2-3 dana."
+      },
+      "q3": {
+        "question": "Koje datoteke?",
+        "answer": "STL, OBJ, STEP."
+      },
+      "q4": {
+        "question": "Povjerljivost?",
+        "answer": "Vaši modeli su sigurni."
+      },
+      "q5": {
+        "question": "Podrška?",
+        "answer": "Pomažemo oko dizajna."
+      }
+    },
+    "contact": {
+      "title": "Kontakt",
+      "description": "Pišite nam.",
+      "button": "Podrška",
+      "email": "Email"
+    }
+  },
+  "contact": {
+    "subtitle": "Budimo u kontaktu.",
+    "form": {
+      "title": "Email",
+      "name": "Ime",
+      "subject": "Naslov",
+      "message": "Poruka",
+      "submit": "Pošalji"
+    },
+    "info": {
+      "title": "Info",
+      "email": "hello@radionica3d.me",
+      "phone": "+382 68 888 777",
+      "location": "Herceg Novi"
+    }
+  },
+  "guidelines": {
+    "title": "Pravila",
+    "subtitle": "Zdravo okruženje.",
+    "filePreparation": {
+      "title": "Priprema fajla",
+      "formats": {
+        "title": "Formati",
+        "stl": "STL",
+        "obj": "OBJ",
+        "step": "STEP",
+        "3mf": "3MF"
+      },
+      "requirements": {
+        "title": "Zahtjevi",
+        "watertight": "Watertight",
+        "normals": "Correct Normals",
+        "scale": "Proper Scale",
+        "wallThickness": "Min Wall Thickness"
+      }
+    },
+    "designTips": {
+      "title": "Savjeti",
+      "fdm": {
+        "title": "FDM",
+        "overhangs": "Overhangs",
+        "bridging": "Bridging",
+        "layerHeight": "Layer Height",
+        "infill": "Infill"
+      },
+      "sla": {
+        "title": "SLA",
+        "supports": "Supports",
+        "orientation": "Orientation",
+        "drainage": "Drainage",
+        "postProcessing": "Post-processing"
+      }
+    },
+    "materialSelection": {
+      "title": "Materijali",
+      "table": {
+        "material": "Material",
+        "bestFor": "Best For",
+        "considerations": "Notes"
+      },
+      "pla": {
+        "name": "PLA",
+        "bestFor": "Prototypes",
+        "considerations": "Bio-degradable"
+      },
+      "abs": {
+        "name": "ABS",
+        "bestFor": "Tech parts",
+        "considerations": "Heat resistant"
+      },
+      "petg": {
+        "name": "PETG",
+        "bestFor": "Durable",
+        "considerations": "Easy print"
+      },
+      "resin": {
+        "name": "Resin",
+        "bestFor": "Detail",
+        "considerations": "UV sensitive"
+      }
+    },
+    "orderingProcess": {
+      "title": "Process",
+      "step1": {
+        "title": "Upload",
+        "description": "Send file"
+      },
+      "step2": {
+        "title": "Print",
+        "description": "We craft"
+      },
+      "step3": {
+        "title": "Ship",
+        "description": "By mail"
+      },
+      "step4": {
+        "title": "Pay",
+        "description": "Trust model"
+      }
+    },
+    "help": {
+      "title": "Need Help?",
+      "description": "Ask us.",
+      "helpCenter": "Help Center",
+      "contact": "Contact"
+    }
+  },
+  "terms": {
+    "title": "Uslovi",
+    "subtitle": "Pravne stvari.",
+    "introduction": {
+      "title": "Uvod",
+      "content": "Dobrodošli u Radionica 3D."
+    },
+    "services": {
+      "title": "Usluge",
+      "description": "FDM i SLA štampa.",
+      "point1": "Kvalitet garantovan.",
+      "point2": "Brza dostava.",
+      "point3": "Podrška.",
+      "point4": "Povjerenje."
+    },
+    "userResponsibilities": {
+      "title": "Odgovornosti",
+      "description": "Sigurna upotreba.",
+      "prohibited": {
+        "title": "Zabranjeno",
+        "point1": "Ilegalni predmeti.",
+        "point2": "Opasni materijali.",
+        "point3": "Fajlovi pod zaštitom.",
+        "point4": "Spam.",
+        "point5": "Zloupotreba."
+      }
+    },
+    "intellectualProperty": {
+      "title": "IP",
+      "description": "Vlasnička prava.",
+      "userRights": {
+        "title": "Vaša prava",
+        "content": "Vi posjedujete svoje modele."
+      },
+      "companyRights": {
+        "title": "Naša prava",
+        "content": "Mi posjedujemo našu tehnologiju."
+      }
+    },
+    "payment": {
+      "title": "Plaćanje",
+      "description": "Model povjerenja.",
+      "trustModel": {
+        "title": "Detalji",
+        "point1": "Platite nakon dostave.",
+        "point2": "Vi ocjenjujete kvalitet.",
+        "point3": "Fer upotreba.",
+        "point4": "Podrška uključena."
+      }
+    },
+    "shipping": {
+      "title": "Dostava",
+      "description": "Kako šaljemo.",
+      "delivery": {
+        "title": "Metode",
+        "content": "Dostava poštom."
+      },
+      "returns": {
+        "title": "Povrat",
+        "content": "Razumni povrati."
+      }
+    },
+    "liability": {
+      "title": "Odgovornost",
+      "description": "Pravne granice.",
+      "limitations": {
+        "title": "Granice",
+        "point1": "Nema zloupotrebe.",
+        "point2": "Lokalni zakoni.",
+        "point3": "Sigurno rukovanje.",
+        "point4": "Bez garancije."
+      }
+    },
+    "changes": {
+      "title": "Izmjene",
+      "content": "Podložno izmjenama."
+    },
+    "contact": {
+      "title": "Kontakt",
+      "description": "Pravna pitanja.",
+      "button": "Pravnik",
+      "email": "Email"
+    }
   }
 }

+ 418 - 1
src/locales/ru.json

@@ -54,7 +54,7 @@
   "footer": {
     "about": "О нас",
     "allRightsReserved": "Все права защищены.",
-    "api": "Документация",
+    "api": "API",
     "blog": "Блог",
     "careers": "Вакансии",
     "company": "Компания",
@@ -224,5 +224,422 @@
     "message": "Данный сайт использует файлы cookie для улучшения пользовательского опыта.",
     "accept": "Принять",
     "leave": "Уйти"
+  },
+  "nuances": {
+    "title": "Нюансы 3D-печати",
+    "subtitle": "Чего ожидать",
+    "description": "Изделия, изготовленные методом FDM (послойного наплавления пластика), имеют ряд визуальных и тактильных особенностей, которые являются нормой технологии и не считаются дефектами.",
+    "disclaimer": {
+      "title": "Гарантия качества",
+      "text": "Эти особенности обусловлены самой природой технологии FDM-печати."
+    },
+    "items": {
+      "layerStructure": {
+        "title": "Слоистая структура",
+        "description": "Поверхность имеет заметные линии слоёв.",
+        "details": "Это естественный результат послойного построения."
+      },
+      "surfaceImperfections": {
+        "title": "Неровности и текстура",
+        "description": "Допускается лёгкая шероховатость.",
+        "details": "Является нормой для данной технологии."
+      },
+      "supportMarks": {
+        "title": "Следы от поддержек",
+        "description": "Могут оставаться следы в местах поддержек.",
+        "details": "Небольшие отличия в текстуре поверхности."
+      },
+      "zSeam": {
+        "title": "Швы (Z-seam)",
+        "description": "Точка начала и конца каждого слоя.",
+        "details": "Может быть заметна на поверхности."
+      },
+      "overhangs": {
+        "title": "Особенности нависаний",
+        "description": "Провисание на участках без опоры.",
+        "details": "Ограничение технологии."
+      },
+      "dimensionalTolerances": {
+        "title": "Допуски размеров",
+        "description": "Возможны небольшие допуски.",
+        "details": "Обусловлено свойствами и охлаждением."
+      },
+      "colorVariations": {
+        "title": "Различия в оттенке",
+        "description": "Незначительные вариации цвета.",
+        "details": "Даже в рамках одного цвета возможны вариации."
+      },
+      "stringing": {
+        "title": "Мелкие ниточки (stringing)",
+        "description": "Тонкие пластиковые нити.",
+        "details": "Легко удаляются."
+      }
+    }
+  },
+  "about": {
+    "subtitle": "Создаем будущее слой за слоем.",
+    "mission": {
+      "title": "Наша миссия",
+      "content": "Надежная 3D-печать для каждого."
+    },
+    "values": {
+      "title": "Ценности",
+      "trust": {
+        "title": "Доверие",
+        "content": "Оплата после результата."
+      }
+    },
+    "team": {
+      "title": "Команда",
+      "member1": {
+        "name": "Luka",
+        "role": "Основатель"
+      }
+    }
+  },
+  "careers": {
+    "subtitle": "Присоединяйтесь к команде.",
+    "apply": "Подать заявку",
+    "contact": "Контакт",
+    "whyWork": {
+      "title": "Почему мы?",
+      "innovation": {
+        "title": "Инновации",
+        "content": "Лучшие технологии."
+      },
+      "growth": {
+        "title": "Рост",
+        "content": "Быстрый рост."
+      },
+      "team": {
+        "title": "Команда",
+        "content": "Отличные люди."
+      },
+      "impact": {
+        "title": "Влияние",
+        "content": "Реальный вклад."
+      }
+    },
+    "openPositions": {
+      "title": "Вакансии",
+      "position1": {
+        "title": "Техник",
+        "type": "Полный день",
+        "location": "Херцег-Нови",
+        "description": "Управление фермой принтеров."
+      },
+      "position2": {
+        "title": "Поддержка",
+        "type": "Удаленно",
+        "location": "Черногория",
+        "description": "Помощь клиентам."
+      }
+    },
+    "process": {
+      "title": "Процесс",
+      "step1": {
+        "title": "Заявка",
+        "description": "Пришлите CV."
+      },
+      "step2": {
+        "title": "Обзор",
+        "description": "Мы проверяем."
+      },
+      "step3": {
+        "title": "Интервью",
+        "description": "Беседа."
+      },
+      "step4": {
+        "title": "Предложение",
+        "description": "Готово."
+      }
+    },
+    "cta": {
+      "title": "Другое?",
+      "content": "Пришлите информацию."
+    }
+  },
+  "blog": {
+    "subtitle": "Новости и советы о 3D-печати",
+    "readMore": "Читать далее",
+    "featured": "Рекомендуемое",
+    "dateFormat": "{date}",
+    "latestPosts": "Последние записи",
+    "featuredPost": {
+      "title": "Будущее 3D-печати в Черногории",
+      "excerpt": "Как цифровое производство меняет местный ремесленный бизнес."
+    },
+    "post1": {
+      "title": "FDM против SLA",
+      "excerpt": "Выбор технологии."
+    },
+    "post2": {
+      "title": "Гайд по материалам",
+      "excerpt": "Какой использовать?"
+    },
+    "post3": {
+      "title": "Советы по дизайну",
+      "excerpt": "Оптимизация STL."
+    },
+    "categories": {
+      "title": "Категории",
+      "technology": "Технологии",
+      "materials": "Материалы",
+      "tutorials": "Уроки",
+      "caseStudies": "Кейсы",
+      "industry": "Индустрия"
+    },
+    "newsletter": {
+      "title": "Рассылка",
+      "content": "Будьте в курсе.",
+      "placeholder": "Email",
+      "subscribe": "Подписаться"
+    },
+    "back": "Назад в блог"
+  },
+  "help": {
+    "subtitle": "Как мы можем помочь?",
+    "search": {
+      "placeholder": "Поиск..."
+    },
+    "categories": {
+      "title": "Категории",
+      "ordering": {
+        "title": "Заказы",
+        "description": "Как это работает."
+      },
+      "pricing": {
+        "title": "Цены",
+        "description": "Модель доверия."
+      },
+      "shipping": {
+        "title": "Доставка",
+        "description": "Доставка почтой."
+      },
+      "technical": {
+        "title": "Техническое",
+        "description": "Файлы и характеристики."
+      }
+    },
+    "faq": {
+      "title": "Вопросы и ответы",
+      "q1": {
+        "question": "Сколько стоит печать?",
+        "answer": "Вы сами оцениваете стоимость работы."
+      },
+      "q2": {
+        "question": "Сроки доставки?",
+        "answer": "Обычно 2-3 рабочих дня."
+      },
+      "q3": {
+        "question": "Какие форматы?",
+        "answer": "STL, OBJ, STEP."
+      },
+      "q4": {
+        "question": "Конфиденциальность?",
+        "answer": "Ваши модели в безопасности."
+      },
+      "q5": {
+        "question": "Поддержка?",
+        "answer": "Мы помогаем с доработкой моделей."
+      }
+    },
+    "contact": {
+      "title": "Контакт",
+      "description": "Напишите нам.",
+      "button": "Поддержка",
+      "email": "Email"
+    }
+  },
+  "contact": {
+    "subtitle": "Свяжитесь с нами.",
+    "form": {
+      "title": "Email",
+      "name": "Имя",
+      "subject": "Тема",
+      "message": "Сообщение",
+      "submit": "Отправить"
+    },
+    "info": {
+      "title": "Инфо",
+      "email": "hello@radionica3d.me",
+      "phone": "+382 68 888 777",
+      "location": "Herceg Novi"
+    }
+  },
+  "guidelines": {
+    "title": "Правила",
+    "subtitle": "Творческая атмосфера.",
+    "filePreparation": {
+      "title": "Подготовка файлов",
+      "formats": {
+        "title": "Форматы",
+        "stl": "STL",
+        "obj": "OBJ",
+        "step": "STEP",
+        "3mf": "3MF"
+      },
+      "requirements": {
+        "title": "Требования",
+        "watertight": "Watertight",
+        "normals": "Correct Normals",
+        "scale": "Proper Scale",
+        "wallThickness": "Min Wall Thickness"
+      }
+    },
+    "designTips": {
+      "title": "Советы",
+      "fdm": {
+        "title": "FDM",
+        "overhangs": "Overhangs",
+        "bridging": "Bridging",
+        "layerHeight": "Layer Height",
+        "infill": "Infill"
+      },
+      "sla": {
+        "title": "SLA",
+        "supports": "Supports",
+        "orientation": "Orientation",
+        "drainage": "Drainage",
+        "postProcessing": "Post-processing"
+      }
+    },
+    "materialSelection": {
+      "title": "Материалы",
+      "table": {
+        "material": "Material",
+        "bestFor": "Best For",
+        "considerations": "Notes"
+      },
+      "pla": {
+        "name": "PLA",
+        "bestFor": "Prototypes",
+        "considerations": "Bio-degradable"
+      },
+      "abs": {
+        "name": "ABS",
+        "bestFor": "Tech parts",
+        "considerations": "Heat resistant"
+      },
+      "petg": {
+        "name": "PETG",
+        "bestFor": "Durable",
+        "considerations": "Easy print"
+      },
+      "resin": {
+        "name": "Resin",
+        "bestFor": "Detail",
+        "considerations": "UV sensitive"
+      }
+    },
+    "orderingProcess": {
+      "title": "Process",
+      "step1": {
+        "title": "Upload",
+        "description": "Send file"
+      },
+      "step2": {
+        "title": "Print",
+        "description": "We craft"
+      },
+      "step3": {
+        "title": "Ship",
+        "description": "By mail"
+      },
+      "step4": {
+        "title": "Pay",
+        "description": "Trust model"
+      }
+    },
+    "help": {
+      "title": "Need Help?",
+      "description": "Ask us.",
+      "helpCenter": "Help Center",
+      "contact": "Contact"
+    }
+  },
+  "terms": {
+    "title": "Условия",
+    "subtitle": "Юридические моменты.",
+    "introduction": {
+      "title": "Введение",
+      "content": "Добро пожаловать в Radionica 3D."
+    },
+    "services": {
+      "title": "Услуги",
+      "description": "FDM и SLA печать.",
+      "point1": "Гарантия качества.",
+      "point2": "Быстрая доставка.",
+      "point3": "Поддержка.",
+      "point4": "Доверие."
+    },
+    "userResponsibilities": {
+      "title": "Обязанности",
+      "description": "Безопасное использование.",
+      "prohibited": {
+        "title": "Запрещено",
+        "point1": "Незаконные предметы.",
+        "point2": "Опасные материалы.",
+        "point3": "Файлы с авторским правом.",
+        "point4": "Спам.",
+        "point5": "Злоупотребление."
+      }
+    },
+    "intellectualProperty": {
+      "title": "ИС",
+      "description": "Права собственности.",
+      "userRights": {
+        "title": "Ваши права",
+        "content": "Вы владеете своими моделями."
+      },
+      "companyRights": {
+        "title": "Наши права",
+        "content": "Мы владеем нашей технологией."
+      }
+    },
+    "payment": {
+      "title": "Оплата",
+      "description": "Модель доверия.",
+      "trustModel": {
+        "title": "Детали",
+        "point1": "Оплата после доставки.",
+        "point2": "Вы оцениваете качество.",
+        "point3": "Честное использование.",
+        "point4": "Поддержка включена."
+      }
+    },
+    "shipping": {
+      "title": "Доставка",
+      "description": "Как мы отправляем.",
+      "delivery": {
+        "title": "Методы",
+        "content": "Доставка почтой."
+      },
+      "returns": {
+        "title": "Возврат",
+        "content": "Возможен возврат."
+      }
+    },
+    "liability": {
+      "title": "Ответственность",
+      "description": "Юридические границы.",
+      "limitations": {
+        "title": "Границы",
+        "point1": "Без злоупотреблений.",
+        "point2": "Местные законы.",
+        "point3": "Безопасное обращение.",
+        "point4": "Без гарантий."
+      }
+    },
+    "changes": {
+      "title": "Изменения",
+      "content": "Могут меняться."
+    },
+    "contact": {
+      "title": "Контакт",
+      "description": "Юридические вопросы.",
+      "button": "Юрист",
+      "email": "Email"
+    }
   }
 }

+ 1336 - 4
src/locales/translations.json

@@ -235,10 +235,10 @@
       "ua": "Усі права захищені."
     },
     "api": {
-      "en": "Documentation",
-      "me": "Dokumentacija",
-      "ru": "Документация",
-      "ua": "Документація"
+      "en": "API",
+      "me": "API",
+      "ru": "API",
+      "ua": "API"
     },
     "blog": {
       "en": "Blog",
@@ -994,5 +994,1337 @@
       "me": "Napusti",
       "ua": "Піти"
     }
+  },
+  "nuances": {
+    "title": {
+      "en": "3D Printing Nuances",
+      "me": "Nijanse 3D štampe",
+      "ru": "Нюансы 3D-печати",
+      "ua": "Нюанси 3D-друку"
+    },
+    "subtitle": {
+      "en": "What to expect",
+      "me": "Šta očekivati",
+      "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": {
+      "title": {
+        "en": "Quality Assurance",
+        "me": "Garancija kvaliteta",
+        "ru": "Гарантия качества",
+        "ua": "Гарантія якості"
+      },
+      "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.",
+        "ru": "Эти особенности обусловлены самой природой технологии FDM-печати.",
+        "ua": "Ці особливості обумовлені самою природою технології FDM-друку."
+      }
+    },
+    "items": {
+      "layerStructure": {
+        "title": {
+          "en": "Layered Structure",
+          "me": "Slojevita struktura",
+          "ru": "Слоистая структура",
+          "ua": "Пошарова структура"
+        },
+        "description": {
+          "en": "Visible layer lines.",
+          "me": "Vidljive linije slojeva.",
+          "ru": "Поверхность имеет заметные линии слоёв.",
+          "ua": "Поверхня має помітні лінії шарів."
+        },
+        "details": {
+          "en": "Result of layered manufacturing.",
+          "me": "Rezultat slojevite proizvodnje.",
+          "ru": "Это естественный результат послойного построения.",
+          "ua": "Це природний результат пошарової побудови."
+        }
+      },
+      "surfaceImperfections": {
+        "title": {
+          "en": "Surface Texture",
+          "me": "Tekstura površine",
+          "ru": "Неровности и текстура",
+          "ua": "Нерівності та текстура"
+        },
+        "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": "Є нормою для даної технології."
+        }
+      },
+      "supportMarks": {
+        "title": {
+          "en": "Support Marks",
+          "me": "Tragovi podrški",
+          "ru": "Следы от поддержек",
+          "ua": "Сліди від підтримок"
+        },
+        "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": "Невеликі відмінності в текстурі поверхні."
+        }
+      },
+      "zSeam": {
+        "title": {
+          "en": "Z-Seam",
+          "me": "Z-šav",
+          "ru": "Швы (Z-seam)",
+          "ua": "Шви (Z-seam)"
+        },
+        "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": "Може бути помітна на поверхні."
+        }
+      },
+      "overhangs": {
+        "title": {
+          "en": "Overhangs",
+          "me": "Prepusti",
+          "ru": "Особенности нависаний",
+          "ua": "Особливості нависань"
+        },
+        "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": "Обмеження технології."
+        }
+      },
+      "dimensionalTolerances": {
+        "title": {
+          "en": "Tolerances",
+          "me": "Tolerancije",
+          "ru": "Допуски размеров",
+          "ua": "Допуски розмірів"
+        },
+        "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": "Обумовлено властивостями та охолодженням."
+        }
+      },
+      "colorVariations": {
+        "title": {
+          "en": "Color",
+          "me": "Boja",
+          "ru": "Различия в оттенке",
+          "ua": "Відмінності у відтінку"
+        },
+        "description": {
+          "en": "Slight shade variations.",
+          "me": "Blage varijacije nijanse.",
+          "ru": "Незначительные вариации цвета.",
+          "ua": "Незначні варіації кольору."
+        },
+        "details": {
+          "en": "Filament batch differences.",
+          "me": "Razlike u serijama materijala.",
+          "ru": "Даже в рамках одного цвета возможны вариации.",
+          "ua": "Навіть у межах одного кольору можливі варіації."
+        }
+      },
+      "stringing": {
+        "title": {
+          "en": "Stringing",
+          "me": "Niti",
+          "ru": "Мелкие ниточки (stringing)",
+          "ua": "Дрібні ниточки (stringing)"
+        },
+        "description": {
+          "en": "Thin plastic hairs.",
+          "me": "Tanke plastične niti.",
+          "ru": "Тонкие пластиковые нити.",
+          "ua": "Тонкі пластикові нитки."
+        },
+        "details": {
+          "en": "Easily removed.",
+          "me": "Lako se uklanjaju.",
+          "ru": "Легко удаляются.",
+          "ua": "Легко видаляються."
+        }
+      }
+    }
+  },
+  "about": {
+    "subtitle": {
+      "en": "Crafting the future, layer by layer.",
+      "me": "Bavimo se budućnošću, sloj po sloj.",
+      "ru": "Создаем будущее слой за слоем.",
+      "ua": "Створюємо майбутнє шар за шаром."
+    },
+    "mission": {
+      "title": {
+        "en": "Our Mission",
+        "me": "Naša misija",
+        "ru": "Наша миссия",
+        "ua": "Наша місія"
+      },
+      "content": {
+        "en": "Reliable 3D printing for everyone.",
+        "me": "Pouzdan 3D štampa za sve.",
+        "ru": "Надежная 3D-печать для каждого.",
+        "ua": "Надійний 3D-друк для кожного."
+      }
+    },
+    "values": {
+      "title": {
+        "en": "Values",
+        "me": "Vrijednosti",
+        "ru": "Ценности",
+        "ua": "Цінності"
+      },
+      "trust": {
+        "title": {
+          "en": "Trust",
+          "me": "Povjerenje",
+          "ru": "Доверие",
+          "ua": "Довіра"
+        },
+        "content": {
+          "en": "Pay after you see results.",
+          "me": "Platite nakon što vidite rezultat.",
+          "ru": "Оплата после результата.",
+          "ua": "Оплата після результату."
+        }
+      }
+    },
+    "team": {
+      "title": {
+        "en": "Team",
+        "me": "Tim",
+        "ru": "Команда",
+        "ua": "Команда"
+      },
+      "member1": {
+        "name": "Luka",
+        "role": {
+          "en": "Founder",
+          "me": "Osnivač",
+          "ru": "Основатель",
+          "ua": "Засновник"
+        }
+      }
+    }
+  },
+  "careers": {
+    "subtitle": {
+      "en": "Join our team.",
+      "me": "Pridružite se timu.",
+      "ru": "Присоединяйтесь к команде.",
+      "ua": "Приєднуйтесь до команди."
+    },
+    "apply": {
+      "en": "Apply",
+      "me": "Prijavi se",
+      "ru": "Подать заявку",
+      "ua": "Подати заявку"
+    },
+    "contact": {
+      "en": "Contact",
+      "me": "Kontakt",
+      "ru": "Контакт",
+      "ua": "Контакт"
+    },
+    "whyWork": {
+      "title": {
+        "en": "Why Us?",
+        "me": "Zašto mi?",
+        "ru": "Почему мы?",
+        "ua": "Чому ми?"
+      },
+      "innovation": {
+        "title": {
+          "en": "Innovation",
+          "me": "Inovacije",
+          "ru": "Инновации",
+          "ua": "Інновації"
+        },
+        "content": {
+          "en": "Best tech.",
+          "me": "Najbolja tehnologija.",
+          "ru": "Лучшие технологии.",
+          "ua": "Кращі технології."
+        }
+      },
+      "growth": {
+        "title": {
+          "en": "Growth",
+          "me": "Rast",
+          "ru": "Рост",
+          "ua": "Ріст"
+        },
+        "content": {
+          "en": "Fast growth.",
+          "me": "Brz rast.",
+          "ru": "Быстрый рост.",
+          "ua": "Швидкий ріст."
+        }
+      },
+      "team": {
+        "title": {
+          "en": "Team",
+          "me": "Tim",
+          "ru": "Команда",
+          "ua": "Команда"
+        },
+        "content": {
+          "en": "Great folks.",
+          "me": "Sjajni ljudi.",
+          "ru": "Отличные люди.",
+          "ua": "Чудові люди."
+        }
+      },
+      "impact": {
+        "title": {
+          "en": "Impact",
+          "me": "Uticaj",
+          "ru": "Влияние",
+          "ua": "Вплив"
+        },
+        "content": {
+          "en": "Real impact.",
+          "me": "Stvarni uticaj.",
+          "ru": "Реальный вклад.",
+          "ua": "Реальний внесок."
+        }
+      }
+    },
+    "openPositions": {
+      "title": {
+        "en": "Positions",
+        "me": "Pozicije",
+        "ru": "Вакансии",
+        "ua": "Вакансії"
+      },
+      "position1": {
+        "title": {
+          "en": "Technician",
+          "me": "Tehničar",
+          "ru": "Техник",
+          "ua": "Технік"
+        },
+        "type": {
+          "en": "Full-time",
+          "me": "Puno radno vrijeme",
+          "ru": "Полный день",
+          "ua": "Повний день"
+        },
+        "location": {
+          "en": "Herceg Novi",
+          "me": "Herceg Novi",
+          "ru": "Херцег-Нови",
+          "ua": "Херцег-Нові"
+        },
+        "description": {
+          "en": "3D printer farm management.",
+          "me": "Upravljanje farmom štampača.",
+          "ru": "Управление фермой принтеров.",
+          "ua": "Управління фермою принтерів."
+        }
+      },
+      "position2": {
+        "title": {
+          "en": "Support",
+          "me": "Podrška",
+          "ru": "Поддержка",
+          "ua": "Підтримка"
+        },
+        "type": {
+          "en": "Remote",
+          "me": "Daljinski",
+          "ru": "Удаленно",
+          "ua": "Віддалено"
+        },
+        "location": {
+          "en": "Montenegro",
+          "me": "Crna Gora",
+          "ru": "Черногория",
+          "ua": "Чорногорія"
+        },
+        "description": {
+          "en": "Customer help.",
+          "me": "Pomoć klijentima.",
+          "ru": "Помощь клиентам.",
+          "ua": "Допомога клієнтам."
+        }
+      }
+    },
+    "process": {
+      "title": {
+        "en": "Process",
+        "me": "Proces",
+        "ru": "Процесс",
+        "ua": "Процес"
+      },
+      "step1": {
+        "title": {
+          "en": "Apply",
+          "me": "Prijava",
+          "ru": "Заявка",
+          "ua": "Заявка"
+        },
+        "description": {
+          "en": "Send CV.",
+          "me": "Pošaljite CV.",
+          "ru": "Пришлите CV.",
+          "ua": "Надішліть CV."
+        }
+      },
+      "step2": {
+        "title": {
+          "en": "Review",
+          "me": "Pregled",
+          "ru": "Обзор",
+          "ua": "Огляд"
+        },
+        "description": {
+          "en": "We check.",
+          "me": "Pregledamo.",
+          "ru": "Мы проверяем.",
+          "ua": "Ми перевіряємо."
+        }
+      },
+      "step3": {
+        "title": {
+          "en": "Interview",
+          "me": "Intervju",
+          "ru": "Интервью",
+          "ua": "Інтерв'ю"
+        },
+        "description": {
+          "en": "Chat.",
+          "me": "Razgovor.",
+          "ru": "Беседа.",
+          "ua": "Бесіда."
+        }
+      },
+      "step4": {
+        "title": {
+          "en": "Offer",
+          "me": "Ponuda",
+          "ru": "Предложение",
+          "ua": "Пропозиція"
+        },
+        "description": {
+          "en": "Done.",
+          "me": "Gotovo.",
+          "ru": "Готово.",
+          "ua": "Готово."
+        }
+      }
+    },
+    "cta": {
+      "title": {
+        "en": "Other?",
+        "me": "Ostalo?",
+        "ru": "Другое?",
+        "ua": "Інше?"
+      },
+      "content": {
+        "en": "Send info.",
+        "me": "Pošaljite info.",
+        "ru": "Пришлите информацию.",
+        "ua": "Надішліть інформацію."
+      }
+    }
+  },
+  "blog": {
+    "subtitle": {
+      "en": "3D Printing News & Tips",
+      "me": "Vijesti i savjeti o 3D štampi",
+      "ru": "Новости и советы о 3D-печати",
+      "ua": "Новини та поради про 3D-друк"
+    },
+    "readMore": {
+      "en": "Read More",
+      "me": "Pročitaj više",
+      "ru": "Читать далее",
+      "ua": "Читати далі"
+    },
+    "featured": {
+      "en": "Featured",
+      "me": "Izdvojeno",
+      "ru": "Рекомендуемое",
+      "ua": "Рекомендоване"
+    },
+    "dateFormat": {
+      "en": "{date}",
+      "me": "{date}",
+      "ru": "{date}",
+      "ua": "{date}"
+    },
+    "latestPosts": {
+      "en": "Latest Posts",
+      "me": "Najnoviji članci",
+      "ru": "Последние записи",
+      "ua": "Останні записи"
+    },
+    "featuredPost": {
+      "title": {
+        "en": "The Future of 3D Printing in Montenegro",
+        "me": "Budućnost 3D štampe u Crnoj Gori",
+        "ru": "Будущее 3D-печати в Черногории",
+        "ua": "Майбутнє 3D-друку в Чорногорії"
+      },
+      "excerpt": {
+        "en": "How digital manufacturing is changing the local craft business.",
+        "me": "Kako digitalna proizvodnja mijenja lokalni zanat.",
+        "ru": "Как цифровое производство меняет местный ремесленный бизнес.",
+        "ua": "Як цифрове виробництво змінює місцевий ремісничий бізнес."
+      }
+    },
+    "post1": {
+      "title": {
+        "en": "FDM vs SLA",
+        "me": "FDM i SLA",
+        "ru": "FDM против SLA",
+        "ua": "FDM проти SLA"
+      },
+      "excerpt": {
+        "en": "Choosing the right tech.",
+        "me": "Odabir tehnologije.",
+        "ru": "Выбор технологии.",
+        "ua": "Вибір технології."
+      }
+    },
+    "post2": {
+      "title": {
+        "en": "Materials Guide",
+        "me": "Vodič materijala",
+        "ru": "Гайд по материалам",
+        "ua": "Гайд по матеріалах"
+      },
+      "excerpt": {
+        "en": "Which one to use?",
+        "me": "Koji koristiti?",
+        "ru": "Какой использовать?",
+        "ua": "Який використовувати?"
+      }
+    },
+    "post3": {
+      "title": {
+        "en": "Design Tips",
+        "me": "Savjeti za dizajn",
+        "ru": "Советы по дизайну",
+        "ua": "Поради з дизайну"
+      },
+      "excerpt": {
+        "en": "Optimize your STL.",
+        "me": "Optimizujte STL.",
+        "ru": "Оптимизация STL.",
+        "ua": "Оптимізація STL."
+      }
+    },
+    "categories": {
+      "title": {
+        "en": "Categories",
+        "me": "Kategorije",
+        "ru": "Категории",
+        "ua": "Категорії"
+      },
+      "technology": {
+        "en": "Technology",
+        "me": "Tehnologija",
+        "ru": "Технологии",
+        "ua": "Технології"
+      },
+      "materials": {
+        "en": "Materials",
+        "me": "Materijali",
+        "ru": "Материалы",
+        "ua": "Матеріали"
+      },
+      "tutorials": {
+        "en": "Tutorials",
+        "me": "Vodiči",
+        "ru": "Уроки",
+        "ua": "Уроки"
+      },
+      "caseStudies": {
+        "en": "Case Studies",
+        "me": "Кейсы",
+        "ru": "Кейсы",
+        "ua": "Кейси"
+      },
+      "industry": {
+        "en": "Industry",
+        "me": "Industrija",
+        "ru": "Индустрия",
+        "ua": "Індустрія"
+      }
+    },
+    "newsletter": {
+      "title": {
+        "en": "Newsletter",
+        "me": "Bilten",
+        "ru": "Рассылка",
+        "ua": "Розсилка"
+      },
+      "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": "Підписатися"
+      }
+    },
+    "back": {
+      "en": "Back to Blog",
+      "me": "Nazad na Blog",
+      "ru": "Назад в блог",
+      "ua": "Назад до блогу"
+    }
+  },
+  "help": {
+    "subtitle": {
+      "en": "How can we help?",
+      "me": "Kako možemo pomoći?",
+      "ru": "Как мы можем помочь?",
+      "ua": "Як ми можемо допомогти?"
+    },
+    "search": {
+      "placeholder": {
+        "en": "Search...",
+        "me": "Traži...",
+        "ru": "Поиск...",
+        "ua": "Пошук..."
+      }
+    },
+    "categories": {
+      "title": {
+        "en": "Categories",
+        "me": "Kategorije",
+        "ru": "Категории",
+        "ua": "Категорії"
+      },
+      "ordering": {
+        "title": {
+          "en": "Ordering",
+          "me": "Naručivanje",
+          "ru": "Заказы",
+          "ua": "Замовлення"
+        },
+        "description": {
+          "en": "How it works.",
+          "me": "Kako radi.",
+          "ru": "Как это работает.",
+          "ua": "Як це працює."
+        }
+      },
+      "pricing": {
+        "title": {
+          "en": "Pricing",
+          "me": "Cijene",
+          "ru": "Цены",
+          "ua": "Ціни"
+        },
+        "description": {
+          "en": "Trust model.",
+          "me": "Model povjerenja.",
+          "ru": "Модель доверия.",
+          "ua": "Модель довіри."
+        }
+      },
+      "shipping": {
+        "title": {
+          "en": "Shipping",
+          "me": "Dostava",
+          "ru": "Доставка",
+          "ua": "Доставка"
+        },
+        "description": {
+          "en": "Mail delivery.",
+          "me": "Dostava poštom.",
+          "ru": "Доставка почтой.",
+          "ua": "Доставка поштою."
+        }
+      },
+      "technical": {
+        "title": {
+          "en": "Technical",
+          "me": "Tehničko",
+          "ru": "Техническое",
+          "ua": "Технічне"
+        },
+        "description": {
+          "en": "Files & specs.",
+          "me": "Datoteke i specifikacije.",
+          "ru": "Файлы и характеристики.",
+          "ua": "Файли та характеристики."
+        }
+      }
+    },
+    "faq": {
+      "title": {
+        "en": "FAQ",
+        "me": "FAQ",
+        "ru": "Вопросы и ответы",
+        "ua": "Питання та відповіді"
+      },
+      "q1": {
+        "question": {
+          "en": "How much should I pay?",
+          "me": "Koliko da platim?",
+          "ru": "Сколько стоит печать?",
+          "ua": "Скільки коштує друк?"
+        },
+        "answer": {
+          "en": "You decide the value.",
+          "me": "Vi odlučujete o vrijednosti.",
+          "ru": "Вы сами оцениваете стоимость работы.",
+          "ua": "Ви самі оцінюєте вартість роботи."
+        }
+      },
+      "q2": {
+        "question": {
+          "en": "Delivery time?",
+          "me": "Vrijeme dostave?",
+          "ru": "Сроки доставки?",
+          "ua": "Терміни доставки?"
+        },
+        "answer": {
+          "en": "Usually 2-3 days.",
+          "me": "Obično 2-3 dana.",
+          "ru": "Обычно 2-3 рабочих дня.",
+          "ua": "Зазвичай 2-3 робочих дні."
+        }
+      },
+      "q3": {
+        "question": {
+          "en": "What files?",
+          "me": "Koje datoteke?",
+          "ru": "Какие форматы?",
+          "ua": "Які формати?"
+        },
+        "answer": {
+          "en": "STL, OBJ, STEP.",
+          "me": "STL, OBJ, STEP.",
+          "ru": "STL, OBJ, STEP.",
+          "ua": "STL, OBJ, STEP."
+        }
+      },
+      "q4": {
+        "question": {
+          "en": "Confidentiality?",
+          "me": "Povjerljivost?",
+          "ru": "Конфиденциальность?",
+          "ua": "Конфіденційність?"
+        },
+        "answer": {
+          "en": "Your models are safe.",
+          "me": "Vaši modeli su sigurni.",
+          "ru": "Ваши модели в безопасности.",
+          "ua": "Ваші моделі в безпеці."
+        }
+      },
+      "q5": {
+        "question": {
+          "en": "Support?",
+          "me": "Podrška?",
+          "ru": "Поддержка?",
+          "ua": "Підтримка?"
+        },
+        "answer": {
+          "en": "We help with design.",
+          "me": "Pomažemo oko dizajna.",
+          "ru": "Мы помогаем с доработкой моделей.",
+          "ua": "Ми допомагаємо з доопрацюванням моделей."
+        }
+      }
+    },
+    "contact": {
+      "title": {
+        "en": "Contact",
+        "me": "Kontakt",
+        "ru": "Контакт",
+        "ua": "Контакт"
+      },
+      "description": {
+        "en": "Email us.",
+        "me": "Pišite nam.",
+        "ru": "Напишите нам.",
+        "ua": "Напишіть нам."
+      },
+      "button": {
+        "en": "Support",
+        "me": "Podrška",
+        "ru": "Поддержка",
+        "ua": "Підтримка"
+      },
+      "email": {
+        "en": "Email",
+        "me": "Email",
+        "ru": "Email",
+        "ua": "Email"
+      }
+    }
+  },
+  "contact": {
+    "subtitle": {
+      "en": "Get in touch.",
+      "me": "Budimo u kontaktu.",
+      "ru": "Свяжитесь с нами.",
+      "ua": "Зв'яжіться з нами."
+    },
+    "form": {
+      "title": {
+        "en": "Email",
+        "me": "Email",
+        "ru": "Email",
+        "ua": "Email"
+      },
+      "name": {
+        "en": "Name",
+        "me": "Ime",
+        "ru": "Имя",
+        "ua": "Ім'я"
+      },
+      "subject": {
+        "en": "Subject",
+        "me": "Naslov",
+        "ru": "Тема",
+        "ua": "Тема"
+      },
+      "message": {
+        "en": "Message",
+        "me": "Poruka",
+        "ru": "Сообщение",
+        "ua": "Повідомлення"
+      },
+      "submit": {
+        "en": "Send",
+        "me": "Pošalji",
+        "ru": "Отправить",
+        "ua": "Надіслати"
+      }
+    },
+    "info": {
+      "title": {
+        "en": "Info",
+        "me": "Info",
+        "ru": "Инфо",
+        "ua": "Інфо"
+      },
+      "email": "hello@radionica3d.me",
+      "phone": "+382 68 888 777",
+      "location": "Herceg Novi"
+    }
+  },
+  "guidelines": {
+    "title": {
+      "en": "Guidelines",
+      "me": "Pravila",
+      "ru": "Правила",
+      "ua": "Правила"
+    },
+    "subtitle": {
+      "en": "Healthy environment.",
+      "me": "Zdravo okruženje.",
+      "ru": "Творческая атмосфера.",
+      "ua": "Творча атмосфера."
+    },
+    "filePreparation": {
+      "title": {
+        "en": "File Preparation",
+        "me": "Priprema fajla",
+        "ru": "Подготовка файлов",
+        "ua": "Підготовка файлів"
+      },
+      "formats": {
+        "title": {
+          "en": "Formats",
+          "me": "Formati",
+          "ru": "Форматы",
+          "ua": "Формати"
+        },
+        "stl": "STL",
+        "obj": "OBJ",
+        "step": "STEP",
+        "3mf": "3MF"
+      },
+      "requirements": {
+        "title": {
+          "en": "Requirements",
+          "me": "Zahtjevi",
+          "ru": "Требования",
+          "ua": "Вимоги"
+        },
+        "watertight": "Watertight",
+        "normals": "Correct Normals",
+        "scale": "Proper Scale",
+        "wallThickness": "Min Wall Thickness"
+      }
+    },
+    "designTips": {
+      "title": {
+        "en": "Design Tips",
+        "me": "Savjeti",
+        "ru": "Советы",
+        "ua": "Поради"
+      },
+      "fdm": {
+        "title": "FDM",
+        "overhangs": "Overhangs",
+        "bridging": "Bridging",
+        "layerHeight": "Layer Height",
+        "infill": "Infill"
+      },
+      "sla": {
+        "title": "SLA",
+        "supports": "Supports",
+        "orientation": "Orientation",
+        "drainage": "Drainage",
+        "postProcessing": "Post-processing"
+      }
+    },
+    "materialSelection": {
+      "title": {
+        "en": "Materials",
+        "me": "Materijali",
+        "ru": "Материалы",
+        "ua": "Матеріали"
+      },
+      "table": {
+        "material": "Material",
+        "bestFor": "Best For",
+        "considerations": "Notes"
+      },
+      "pla": {
+        "name": "PLA",
+        "bestFor": "Prototypes",
+        "considerations": "Bio-degradable"
+      },
+      "abs": {
+        "name": "ABS",
+        "bestFor": "Tech parts",
+        "considerations": "Heat resistant"
+      },
+      "petg": {
+        "name": "PETG",
+        "bestFor": "Durable",
+        "considerations": "Easy print"
+      },
+      "resin": {
+        "name": "Resin",
+        "bestFor": "Detail",
+        "considerations": "UV sensitive"
+      }
+    },
+    "orderingProcess": {
+      "title": "Process",
+      "step1": {
+        "title": "Upload",
+        "description": "Send file"
+      },
+      "step2": {
+        "title": "Print",
+        "description": "We craft"
+      },
+      "step3": {
+        "title": "Ship",
+        "description": "By mail"
+      },
+      "step4": {
+        "title": "Pay",
+        "description": "Trust model"
+      }
+    },
+    "help": {
+      "title": "Need Help?",
+      "description": "Ask us.",
+      "helpCenter": "Help Center",
+      "contact": "Contact"
+    }
+  },
+  "terms": {
+    "title": {
+      "en": "Terms",
+      "me": "Uslovi",
+      "ru": "Условия",
+      "ua": "Умови"
+    },
+    "subtitle": {
+      "en": "Legal stuff.",
+      "me": "Pravne stvari.",
+      "ru": "Юридические моменты.",
+      "ua": "Юридичні моменти."
+    },
+    "introduction": {
+      "title": {
+        "en": "Introduction",
+        "me": "Uvod",
+        "ru": "Введение",
+        "ua": "Вступ"
+      },
+      "content": {
+        "en": "Welcome to Radionica 3D.",
+        "me": "Dobrodošli u Radionica 3D.",
+        "ru": "Добро пожаловать в Radionica 3D.",
+        "ua": "Ласкаво просимо до Radionica 3D."
+      }
+    },
+    "services": {
+      "title": {
+        "en": "Services",
+        "me": "Usluge",
+        "ru": "Услуги",
+        "ua": "Послуги"
+      },
+      "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": "Довіра."
+      }
+    },
+    "userResponsibilities": {
+      "title": {
+        "en": "Responsibilities",
+        "me": "Odgovornosti",
+        "ru": "Обязанности",
+        "ua": "Обов'язки"
+      },
+      "description": {
+        "en": "Safe use.",
+        "me": "Sigurna upotreba.",
+        "ru": "Безопасное использование.",
+        "ua": "Безпечне використання."
+      },
+      "prohibited": {
+        "title": {
+          "en": "Prohibited",
+          "me": "Zabranjeno",
+          "ru": "Запрещено",
+          "ua": "Заборонено"
+        },
+        "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": "Зловживання."
+        }
+      }
+    },
+    "intellectualProperty": {
+      "title": {
+        "en": "IP",
+        "me": "IP",
+        "ru": "ИС",
+        "ua": "ІВ"
+      },
+      "description": {
+        "en": "Property rights.",
+        "me": "Vlasnička prava.",
+        "ru": "Права собственности.",
+        "ua": "Права власності."
+      },
+      "userRights": {
+        "title": {
+          "en": "Your Rights",
+          "me": "Vaša prava",
+          "ru": "Ваши права",
+          "ua": "Ваші права"
+        },
+        "content": {
+          "en": "You own your models.",
+          "me": "Vi posjedujete svoje modele.",
+          "ru": "Вы владеете своими моделями.",
+          "ua": "Ви володієте своїми моделями."
+        }
+      },
+      "companyRights": {
+        "title": {
+          "en": "Our Rights",
+          "me": "Naša prava",
+          "ru": "Наши права",
+          "ua": "Наші права"
+        },
+        "content": {
+          "en": "We own our tech.",
+          "me": "Mi posjedujemo našu tehnologiju.",
+          "ru": "Мы владеем нашей технологией.",
+          "ua": "Ми володіємо нашою технологією."
+        }
+      }
+    },
+    "payment": {
+      "title": {
+        "en": "Payment",
+        "me": "Plaćanje",
+        "ru": "Оплата",
+        "ua": "Оплата"
+      },
+      "description": {
+        "en": "Trust model.",
+        "me": "Model povjerenja.",
+        "ru": "Модель доверия.",
+        "ua": "Модель довіри."
+      },
+      "trustModel": {
+        "title": {
+          "en": "Details",
+          "me": "Detalji",
+          "ru": "Детали",
+          "ua": "Деталі"
+        },
+        "point1": {
+          "en": "Pay after delivery.",
+          "me": "Platite nakon dostave.",
+          "ru": "Оплата после доставки.",
+          "ua": "Оплата після доставки."
+        },
+        "point2": {
+          "en": "You value quality.",
+          "me": "Vi ocjenjujete kvalitet.",
+          "ru": "Вы оцениваете качество.",
+          "ua": "Ви оцінюєте якість."
+        },
+        "point3": {
+          "en": "Fair usage.",
+          "me": "Fer upotreba.",
+          "ru": "Честное использование.",
+          "ua": "Чесне використання."
+        },
+        "point4": {
+          "en": "Support provided.",
+          "me": "Podrška uključena.",
+          "ru": "Поддержка включена.",
+          "ua": "Підтримка включена."
+        }
+      }
+    },
+    "shipping": {
+      "title": {
+        "en": "Shipping",
+        "me": "Dostava",
+        "ru": "Доставка",
+        "ua": "Доставка"
+      },
+      "description": {
+        "en": "How we ship.",
+        "me": "Kako šaljemo.",
+        "ru": "Как мы отправляем.",
+        "ua": "Як ми відправляємо."
+      },
+      "delivery": {
+        "title": {
+          "en": "Methods",
+          "me": "Metode",
+          "ru": "Методы",
+          "ua": "Методи"
+        },
+        "content": {
+          "en": "Mail delivery.",
+          "me": "Dostava poštom.",
+          "ru": "Доставка почтой.",
+          "ua": "Доставка поштою."
+        }
+      },
+      "returns": {
+        "title": {
+          "en": "Returns",
+          "me": "Povrat",
+          "ru": "Возврат",
+          "ua": "Повернення"
+        },
+        "content": {
+          "en": "Reasonable returns.",
+          "me": "Razumni povrati.",
+          "ru": "Возможен возврат.",
+          "ua": "Можливе повернення."
+        }
+      }
+    },
+    "liability": {
+      "title": {
+        "en": "Liability",
+        "me": "Odgovornost",
+        "ru": "Ответственность",
+        "ua": "Відповідальність"
+      },
+      "description": {
+        "en": "Legal limits.",
+        "me": "Pravne granice.",
+        "ru": "Юридические границы.",
+        "ua": "Юридичні межі."
+      },
+      "limitations": {
+        "title": {
+          "en": "Limits",
+          "me": "Granice",
+          "ru": "Границы",
+          "ua": "Межі"
+        },
+        "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": "Без гарантій."
+        }
+      }
+    },
+    "changes": {
+      "title": {
+        "en": "Changes",
+        "me": "Izmjene",
+        "ru": "Изменения",
+        "ua": "Зміни"
+      },
+      "content": {
+        "en": "Subject to change.",
+        "me": "Podložno izmjenama.",
+        "ru": "Могут меняться.",
+        "ua": "Можуть змінюватися."
+      }
+    },
+    "contact": {
+      "title": {
+        "en": "Contact",
+        "me": "Kontakt",
+        "ru": "Контакт",
+        "ua": "Контакт"
+      },
+      "description": {
+        "en": "Legal questions.",
+        "me": "Pravna pitanja.",
+        "ru": "Юридические вопросы.",
+        "ua": "Юридичні питання."
+      },
+      "button": {
+        "en": "Legal",
+        "me": "Pravnik",
+        "ru": "Юрист",
+        "ua": "Юрист"
+      },
+      "email": {
+        "en": "Email",
+        "me": "Email",
+        "ru": "Email",
+        "ua": "Email"
+      }
+    }
   }
 }

+ 418 - 1
src/locales/ua.json

@@ -54,7 +54,7 @@
   "footer": {
     "about": "Про нас",
     "allRightsReserved": "Усі права захищені.",
-    "api": "Документація",
+    "api": "API",
     "blog": "Блог",
     "careers": "Вакансії",
     "company": "Компанія",
@@ -224,5 +224,422 @@
     "message": "Цей сайт використовує файли cookie для покращення досвіду користувача.",
     "accept": "Прийняти",
     "leave": "Піти"
+  },
+  "nuances": {
+    "title": "Нюанси 3D-друку",
+    "subtitle": "Чого очікувати",
+    "description": "Вироби, виготовлені методом FDM (пошарового наплавлення пластику), мають ряд візуальних і тактильних особливостей, які є нормою технології та не вважаються дефектами.",
+    "disclaimer": {
+      "title": "Гарантія якості",
+      "text": "Ці особливості обумовлені самою природою технології FDM-друку."
+    },
+    "items": {
+      "layerStructure": {
+        "title": "Пошарова структура",
+        "description": "Поверхня має помітні лінії шарів.",
+        "details": "Це природний результат пошарової побудови."
+      },
+      "surfaceImperfections": {
+        "title": "Нерівності та текстура",
+        "description": "Допускається легка шорсткість.",
+        "details": "Є нормою для даної технології."
+      },
+      "supportMarks": {
+        "title": "Сліди від підтримок",
+        "description": "Можуть залишатися сліди в місцях підтримок.",
+        "details": "Невеликі відмінності в текстурі поверхні."
+      },
+      "zSeam": {
+        "title": "Шви (Z-seam)",
+        "description": "Точка початку та кінця кожного шару.",
+        "details": "Може бути помітна на поверхні."
+      },
+      "overhangs": {
+        "title": "Особливості нависань",
+        "description": "Провисання на ділянках без опори.",
+        "details": "Обмеження технології."
+      },
+      "dimensionalTolerances": {
+        "title": "Допуски розмірів",
+        "description": "Можливі невеликі допуски.",
+        "details": "Обумовлено властивостями та охолодженням."
+      },
+      "colorVariations": {
+        "title": "Відмінності у відтінку",
+        "description": "Незначні варіації кольору.",
+        "details": "Навіть у межах одного кольору можливі варіації."
+      },
+      "stringing": {
+        "title": "Дрібні ниточки (stringing)",
+        "description": "Тонкі пластикові нитки.",
+        "details": "Легко видаляються."
+      }
+    }
+  },
+  "about": {
+    "subtitle": "Створюємо майбутнє шар за шаром.",
+    "mission": {
+      "title": "Наша місія",
+      "content": "Надійний 3D-друк для кожного."
+    },
+    "values": {
+      "title": "Цінності",
+      "trust": {
+        "title": "Довіра",
+        "content": "Оплата після результату."
+      }
+    },
+    "team": {
+      "title": "Команда",
+      "member1": {
+        "name": "Luka",
+        "role": "Засновник"
+      }
+    }
+  },
+  "careers": {
+    "subtitle": "Приєднуйтесь до команди.",
+    "apply": "Подати заявку",
+    "contact": "Контакт",
+    "whyWork": {
+      "title": "Чому ми?",
+      "innovation": {
+        "title": "Інновації",
+        "content": "Кращі технології."
+      },
+      "growth": {
+        "title": "Ріст",
+        "content": "Швидкий ріст."
+      },
+      "team": {
+        "title": "Команда",
+        "content": "Чудові люди."
+      },
+      "impact": {
+        "title": "Вплив",
+        "content": "Реальний внесок."
+      }
+    },
+    "openPositions": {
+      "title": "Вакансії",
+      "position1": {
+        "title": "Технік",
+        "type": "Повний день",
+        "location": "Херцег-Нові",
+        "description": "Управління фермою принтерів."
+      },
+      "position2": {
+        "title": "Підтримка",
+        "type": "Віддалено",
+        "location": "Чорногорія",
+        "description": "Допомога клієнтам."
+      }
+    },
+    "process": {
+      "title": "Процес",
+      "step1": {
+        "title": "Заявка",
+        "description": "Надішліть CV."
+      },
+      "step2": {
+        "title": "Огляд",
+        "description": "Ми перевіряємо."
+      },
+      "step3": {
+        "title": "Інтерв'ю",
+        "description": "Бесіда."
+      },
+      "step4": {
+        "title": "Пропозиція",
+        "description": "Готово."
+      }
+    },
+    "cta": {
+      "title": "Інше?",
+      "content": "Надішліть інформацію."
+    }
+  },
+  "blog": {
+    "subtitle": "Новини та поради про 3D-друк",
+    "readMore": "Читати далі",
+    "featured": "Рекомендоване",
+    "dateFormat": "{date}",
+    "latestPosts": "Останні записи",
+    "featuredPost": {
+      "title": "Майбутнє 3D-друку в Чорногорії",
+      "excerpt": "Як цифрове виробництво змінює місцевий ремісничий бізнес."
+    },
+    "post1": {
+      "title": "FDM проти SLA",
+      "excerpt": "Вибір технології."
+    },
+    "post2": {
+      "title": "Гайд по матеріалах",
+      "excerpt": "Який використовувати?"
+    },
+    "post3": {
+      "title": "Поради з дизайну",
+      "excerpt": "Оптимізація STL."
+    },
+    "categories": {
+      "title": "Категорії",
+      "technology": "Технології",
+      "materials": "Матеріали",
+      "tutorials": "Уроки",
+      "caseStudies": "Кейси",
+      "industry": "Індустрія"
+    },
+    "newsletter": {
+      "title": "Розсилка",
+      "content": "Будьте в курсі.",
+      "placeholder": "Email",
+      "subscribe": "Підписатися"
+    },
+    "back": "Назад до блогу"
+  },
+  "help": {
+    "subtitle": "Як ми можемо допомогти?",
+    "search": {
+      "placeholder": "Пошук..."
+    },
+    "categories": {
+      "title": "Категорії",
+      "ordering": {
+        "title": "Замовлення",
+        "description": "Як це працює."
+      },
+      "pricing": {
+        "title": "Ціни",
+        "description": "Модель довіри."
+      },
+      "shipping": {
+        "title": "Доставка",
+        "description": "Доставка поштою."
+      },
+      "technical": {
+        "title": "Технічне",
+        "description": "Файли та характеристики."
+      }
+    },
+    "faq": {
+      "title": "Питання та відповіді",
+      "q1": {
+        "question": "Скільки коштує друк?",
+        "answer": "Ви самі оцінюєте вартість роботи."
+      },
+      "q2": {
+        "question": "Терміни доставки?",
+        "answer": "Зазвичай 2-3 робочих дні."
+      },
+      "q3": {
+        "question": "Які формати?",
+        "answer": "STL, OBJ, STEP."
+      },
+      "q4": {
+        "question": "Конфіденційність?",
+        "answer": "Ваші моделі в безпеці."
+      },
+      "q5": {
+        "question": "Підтримка?",
+        "answer": "Ми допомагаємо з доопрацюванням моделей."
+      }
+    },
+    "contact": {
+      "title": "Контакт",
+      "description": "Напишіть нам.",
+      "button": "Підтримка",
+      "email": "Email"
+    }
+  },
+  "contact": {
+    "subtitle": "Зв'яжіться з нами.",
+    "form": {
+      "title": "Email",
+      "name": "Ім'я",
+      "subject": "Тема",
+      "message": "Повідомлення",
+      "submit": "Надіслати"
+    },
+    "info": {
+      "title": "Інфо",
+      "email": "hello@radionica3d.me",
+      "phone": "+382 68 888 777",
+      "location": "Herceg Novi"
+    }
+  },
+  "guidelines": {
+    "title": "Правила",
+    "subtitle": "Творча атмосфера.",
+    "filePreparation": {
+      "title": "Підготовка файлів",
+      "formats": {
+        "title": "Формати",
+        "stl": "STL",
+        "obj": "OBJ",
+        "step": "STEP",
+        "3mf": "3MF"
+      },
+      "requirements": {
+        "title": "Вимоги",
+        "watertight": "Watertight",
+        "normals": "Correct Normals",
+        "scale": "Proper Scale",
+        "wallThickness": "Min Wall Thickness"
+      }
+    },
+    "designTips": {
+      "title": "Поради",
+      "fdm": {
+        "title": "FDM",
+        "overhangs": "Overhangs",
+        "bridging": "Bridging",
+        "layerHeight": "Layer Height",
+        "infill": "Infill"
+      },
+      "sla": {
+        "title": "SLA",
+        "supports": "Supports",
+        "orientation": "Orientation",
+        "drainage": "Drainage",
+        "postProcessing": "Post-processing"
+      }
+    },
+    "materialSelection": {
+      "title": "Матеріали",
+      "table": {
+        "material": "Material",
+        "bestFor": "Best For",
+        "considerations": "Notes"
+      },
+      "pla": {
+        "name": "PLA",
+        "bestFor": "Prototypes",
+        "considerations": "Bio-degradable"
+      },
+      "abs": {
+        "name": "ABS",
+        "bestFor": "Tech parts",
+        "considerations": "Heat resistant"
+      },
+      "petg": {
+        "name": "PETG",
+        "bestFor": "Durable",
+        "considerations": "Easy print"
+      },
+      "resin": {
+        "name": "Resin",
+        "bestFor": "Detail",
+        "considerations": "UV sensitive"
+      }
+    },
+    "orderingProcess": {
+      "title": "Process",
+      "step1": {
+        "title": "Upload",
+        "description": "Send file"
+      },
+      "step2": {
+        "title": "Print",
+        "description": "We craft"
+      },
+      "step3": {
+        "title": "Ship",
+        "description": "By mail"
+      },
+      "step4": {
+        "title": "Pay",
+        "description": "Trust model"
+      }
+    },
+    "help": {
+      "title": "Need Help?",
+      "description": "Ask us.",
+      "helpCenter": "Help Center",
+      "contact": "Contact"
+    }
+  },
+  "terms": {
+    "title": "Умови",
+    "subtitle": "Юридичні моменти.",
+    "introduction": {
+      "title": "Вступ",
+      "content": "Ласкаво просимо до Radionica 3D."
+    },
+    "services": {
+      "title": "Послуги",
+      "description": "FDM та SLA друк.",
+      "point1": "Гарантія якості.",
+      "point2": "Швидка доставка.",
+      "point3": "Підтримка.",
+      "point4": "Довіра."
+    },
+    "userResponsibilities": {
+      "title": "Обов'язки",
+      "description": "Безпечне використання.",
+      "prohibited": {
+        "title": "Заборонено",
+        "point1": "Незаконні предмети.",
+        "point2": "Небезпечні матеріали.",
+        "point3": "Файли з авторським правом.",
+        "point4": "Спам.",
+        "point5": "Зловживання."
+      }
+    },
+    "intellectualProperty": {
+      "title": "ІВ",
+      "description": "Права власності.",
+      "userRights": {
+        "title": "Ваші права",
+        "content": "Ви володієте своїми моделями."
+      },
+      "companyRights": {
+        "title": "Наші права",
+        "content": "Ми володіємо нашою технологією."
+      }
+    },
+    "payment": {
+      "title": "Оплата",
+      "description": "Модель довіри.",
+      "trustModel": {
+        "title": "Деталі",
+        "point1": "Оплата після доставки.",
+        "point2": "Ви оцінюєте якість.",
+        "point3": "Чесне використання.",
+        "point4": "Підтримка включена."
+      }
+    },
+    "shipping": {
+      "title": "Доставка",
+      "description": "Як ми відправляємо.",
+      "delivery": {
+        "title": "Методи",
+        "content": "Доставка поштою."
+      },
+      "returns": {
+        "title": "Повернення",
+        "content": "Можливе повернення."
+      }
+    },
+    "liability": {
+      "title": "Відповідальність",
+      "description": "Юридичні межі.",
+      "limitations": {
+        "title": "Межі",
+        "point1": "Без зловживань.",
+        "point2": "Місцеві закони.",
+        "point3": "Безпечне поводження.",
+        "point4": "Без гарантій."
+      }
+    },
+    "changes": {
+      "title": "Зміни",
+      "content": "Можуть змінюватися."
+    },
+    "contact": {
+      "title": "Контакт",
+      "description": "Юридичні питання.",
+      "button": "Юрист",
+      "email": "Email"
+    }
   }
 }

+ 131 - 0
src/pages/About.vue

@@ -0,0 +1,131 @@
+<template>
+  <div class="min-h-screen bg-white">
+    <div class="container mx-auto px-4 py-12">
+      <div class="max-w-4xl mx-auto">
+        <!-- Header -->
+        <div class="mb-12">
+          <h1 class="text-4xl md:text-5xl font-display font-bold text-foreground mb-4">
+            {{ t("footer.about") }}
+          </h1>
+          <p class="text-lg text-foreground/60">
+            {{ t("about.subtitle") }}
+          </p>
+        </div>
+
+        <!-- Content -->
+        <div class="space-y-8">
+          <!-- Mission Section -->
+          <section>
+            <h2 class="text-2xl font-display font-bold text-foreground mb-4">
+              {{ t("about.mission.title") }}
+            </h2>
+            <div class="prose prose-lg max-w-none">
+              <p class="text-foreground/70">
+                {{ t("about.mission.content") }}
+              </p>
+            </div>
+          </section>
+
+          <!-- Values Section -->
+          <section>
+            <h2 class="text-2xl font-display font-bold text-foreground mb-6">
+              {{ t("about.values.title") }}
+            </h2>
+            <div class="grid md:grid-cols-2 gap-6">
+              <div class="bg-gray-50 rounded-xl p-6">
+                <h3 class="text-xl font-display font-bold text-foreground mb-3">
+                  {{ t("about.values.trust.title") }}
+                </h3>
+                <p class="text-foreground/70">
+                  {{ t("about.values.trust.content") }}
+                </p>
+              </div>
+              <div class="bg-gray-50 rounded-xl p-6">
+                <h3 class="text-xl font-display font-bold text-foreground mb-3">
+                  {{ t("about.values.quality.title") }}
+                </h3>
+                <p class="text-foreground/70">
+                  {{ t("about.values.quality.content") }}
+                </p>
+              </div>
+              <div class="bg-gray-50 rounded-xl p-6">
+                <h3 class="text-xl font-display font-bold text-foreground mb-3">
+                  {{ t("about.values.innovation.title") }}
+                </h3>
+                <p class="text-foreground/70">
+                  {{ t("about.values.innovation.content") }}
+                </p>
+              </div>
+              <div class="bg-gray-50 rounded-xl p-6">
+                <h3 class="text-xl font-display font-bold text-foreground mb-3">
+                  {{ t("about.values.community.title") }}
+                </h3>
+                <p class="text-foreground/70">
+                  {{ t("about.values.community.content") }}
+                </p>
+              </div>
+            </div>
+          </section>
+
+          <!-- Team Section -->
+          <section>
+            <h2 class="text-2xl font-display font-bold text-foreground mb-6">
+              {{ t("about.team.title") }}
+            </h2>
+            <div class="grid md:grid-cols-3 gap-6">
+              <div class="text-center">
+                <div class="w-32 h-32 bg-gray-200 rounded-full mx-auto mb-4"></div>
+                <h3 class="text-lg font-display font-bold text-foreground mb-1">
+                  {{ t("about.team.member1.name") }}
+                </h3>
+                <p class="text-foreground/60 text-sm">
+                  {{ t("about.team.member1.role") }}
+                </p>
+              </div>
+              <div class="text-center">
+                <div class="w-32 h-32 bg-gray-200 rounded-full mx-auto mb-4"></div>
+                <h3 class="text-lg font-display font-bold text-foreground mb-1">
+                  {{ t("about.team.member2.name") }}
+                </h3>
+                <p class="text-foreground/60 text-sm">
+                  {{ t("about.team.member2.role") }}
+                </p>
+              </div>
+              <div class="text-center">
+                <div class="w-32 h-32 bg-gray-200 rounded-full mx-auto mb-4"></div>
+                <h3 class="text-lg font-display font-bold text-foreground mb-1">
+                  {{ t("about.team.member3.name") }}
+                </h3>
+                <p class="text-foreground/60 text-sm">
+                  {{ t("about.team.member3.role") }}
+                </p>
+              </div>
+            </div>
+          </section>
+
+          <!-- Contact CTA -->
+          <section class="bg-primary/5 rounded-2xl p-8 text-center">
+            <h2 class="text-2xl font-display font-bold text-foreground mb-4">
+              {{ t("about.cta.title") }}
+            </h2>
+            <p class="text-foreground/70 mb-6 max-w-2xl mx-auto">
+              {{ t("about.cta.content") }}
+            </p>
+            <router-link 
+              to="/contact" 
+              class="inline-flex items-center justify-center px-6 py-3 bg-primary text-white font-bold rounded-lg hover:bg-primary/90 transition-colors"
+            >
+              {{ t("footer.contact") }}
+            </router-link>
+          </section>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script setup lang="ts">
+import { useI18n } from "vue-i18n";
+
+const { t } = useI18n();
+</script>

+ 209 - 0
src/pages/Blog.vue

@@ -0,0 +1,209 @@
+<template>
+  <div class="min-h-screen bg-white">
+    <div class="container mx-auto px-4 py-12">
+      <div class="max-w-6xl mx-auto">
+        <!-- Header -->
+        <div class="mb-12">
+          <h1 class="text-4xl md:text-5xl font-display font-bold text-foreground mb-4">
+            {{ t("footer.blog") }}
+          </h1>
+          <p class="text-lg text-foreground/60">
+            {{ t("blog.subtitle") }}
+          </p>
+        </div>
+
+        <!-- Featured Post -->
+        <section class="mb-12">
+          <div class="bg-gray-50 rounded-2xl overflow-hidden">
+            <div class="md:flex">
+              <div class="md:w-1/2">
+                <div class="h-64 md:h-full bg-gray-200"></div>
+              </div>
+              <div class="md:w-1/2 p-8 md:p-12">
+                <div class="flex items-center gap-2 mb-4">
+                  <span class="px-3 py-1 bg-primary/10 text-primary text-xs font-bold rounded-full">
+                    {{ t("blog.featured") }}
+                  </span>
+                  <span class="text-sm text-foreground/60">
+                    {{ t("blog.dateFormat", { date: "2024-03-15" }) }}
+                  </span>
+                </div>
+                <h2 class="text-2xl md:text-3xl font-display font-bold text-foreground mb-4">
+                  {{ t("blog.featuredPost.title") }}
+                </h2>
+                <p class="text-foreground/70 mb-6">
+                  {{ t("blog.featuredPost.excerpt") }}
+                </p>
+                <router-link 
+                  to="/blog/the-future-of-3d-printing"
+                  class="inline-flex items-center text-primary font-bold hover:text-primary/80 transition-colors"
+                >
+                  {{ t("blog.readMore") }}
+                  <svg class="w-4 h-4 ml-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
+                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14 5l7 7m0 0l-7 7m7-7H3" />
+                  </svg>
+                </router-link>
+              </div>
+            </div>
+          </div>
+        </section>
+
+        <!-- Blog Posts Grid -->
+        <section>
+          <h2 class="text-2xl font-display font-bold text-foreground mb-8">
+            {{ t("blog.latestPosts") }}
+          </h2>
+          <div class="grid md:grid-cols-2 lg:grid-cols-3 gap-8">
+            <!-- Post 1 -->
+            <article class="border border-gray-200 rounded-xl overflow-hidden hover:border-primary/30 transition-colors">
+              <div class="h-48 bg-gray-200"></div>
+              <div class="p-6">
+                <div class="flex items-center justify-between mb-4">
+                  <span class="text-sm text-foreground/60">
+                    {{ t("blog.dateFormat", { date: "2024-03-10" }) }}
+                  </span>
+                  <span class="px-3 py-1 bg-gray-100 text-foreground/70 text-xs font-bold rounded-full">
+                    {{ t("blog.categories.technology") }}
+                  </span>
+                </div>
+                <h3 class="text-xl font-display font-bold text-foreground mb-3">
+                  {{ t("blog.post1.title") }}
+                </h3>
+                <p class="text-foreground/70 mb-4">
+                  {{ t("blog.post1.excerpt") }}
+                </p>
+                <router-link 
+                  to="/blog/fdm-vs-sla"
+                  class="inline-flex items-center text-primary font-bold hover:text-primary/80 transition-colors text-sm"
+                >
+                  {{ t("blog.readMore") }}
+                </router-link>
+              </div>
+            </article>
+
+            <!-- Post 2 -->
+            <article class="border border-gray-200 rounded-xl overflow-hidden hover:border-primary/30 transition-colors">
+              <div class="h-48 bg-gray-200"></div>
+              <div class="p-6">
+                <div class="flex items-center justify-between mb-4">
+                  <span class="text-sm text-foreground/60">
+                    {{ t("blog.dateFormat", { date: "2024-03-05" }) }}
+                  </span>
+                  <span class="px-3 py-1 bg-gray-100 text-foreground/70 text-xs font-bold rounded-full">
+                    {{ t("blog.categories.materials") }}
+                  </span>
+                </div>
+                <h3 class="text-xl font-display font-bold text-foreground mb-3">
+                  {{ t("blog.post2.title") }}
+                </h3>
+                <p class="text-foreground/70 mb-4">
+                  {{ t("blog.post2.excerpt") }}
+                </p>
+                <router-link 
+                  to="/blog/choosing-materials"
+                  class="inline-flex items-center text-primary font-bold hover:text-primary/80 transition-colors text-sm"
+                >
+                  {{ t("blog.readMore") }}
+                </router-link>
+              </div>
+            </article>
+
+            <!-- Post 3 -->
+            <article class="border border-gray-200 rounded-xl overflow-hidden hover:border-primary/30 transition-colors">
+              <div class="h-48 bg-gray-200"></div>
+              <div class="p-6">
+                <div class="flex items-center justify-between mb-4">
+                  <span class="text-sm text-foreground/60">
+                    {{ t("blog.dateFormat", { date: "2024-02-28" }) }}
+                  </span>
+                  <span class="px-3 py-1 bg-gray-100 text-foreground/70 text-xs font-bold rounded-full">
+                    {{ t("blog.categories.tutorials") }}
+                  </span>
+                </div>
+                <h3 class="text-xl font-display font-bold text-foreground mb-3">
+                  {{ t("blog.post3.title") }}
+                </h3>
+                <p class="text-foreground/70 mb-4">
+                  {{ t("blog.post3.excerpt") }}
+                </p>
+                <router-link 
+                  to="/blog/design-tips"
+                  class="inline-flex items-center text-primary font-bold hover:text-primary/80 transition-colors text-sm"
+                >
+                  {{ t("blog.readMore") }}
+                </router-link>
+              </div>
+            </article>
+          </div>
+        </section>
+
+        <!-- Categories -->
+        <section class="mt-12">
+          <h2 class="text-2xl font-display font-bold text-foreground mb-8">
+            {{ t("blog.categories.title") }}
+          </h2>
+          <div class="flex flex-wrap gap-3">
+            <router-link 
+              to="/blog/category/technology"
+              class="px-4 py-2 bg-gray-100 text-foreground/70 font-bold rounded-lg hover:bg-primary/10 hover:text-primary transition-colors"
+            >
+              {{ t("blog.categories.technology") }}
+            </router-link>
+            <router-link 
+              to="/blog/category/materials"
+              class="px-4 py-2 bg-gray-100 text-foreground/70 font-bold rounded-lg hover:bg-primary/10 hover:text-primary transition-colors"
+            >
+              {{ t("blog.categories.materials") }}
+            </router-link>
+            <router-link 
+              to="/blog/category/tutorials"
+              class="px-4 py-2 bg-gray-100 text-foreground/70 font-bold rounded-lg hover:bg-primary/10 hover:text-primary transition-colors"
+            >
+              {{ t("blog.categories.tutorials") }}
+            </router-link>
+            <router-link 
+              to="/blog/category/case-studies"
+              class="px-4 py-2 bg-gray-100 text-foreground/70 font-bold rounded-lg hover:bg-primary/10 hover:text-primary transition-colors"
+            >
+              {{ t("blog.categories.caseStudies") }}
+            </router-link>
+            <router-link 
+              to="/blog/category/industry"
+              class="px-4 py-2 bg-gray-100 text-foreground/70 font-bold rounded-lg hover:bg-primary/10 hover:text-primary transition-colors"
+            >
+              {{ t("blog.categories.industry") }}
+            </router-link>
+          </div>
+        </section>
+
+        <!-- Newsletter CTA -->
+        <section class="mt-12 bg-primary/5 rounded-2xl p-8 text-center">
+          <h2 class="text-2xl font-display font-bold text-foreground mb-4">
+            {{ t("blog.newsletter.title") }}
+          </h2>
+          <p class="text-foreground/70 mb-6 max-w-2xl mx-auto">
+            {{ t("blog.newsletter.content") }}
+          </p>
+          <div class="max-w-md mx-auto">
+            <div class="flex flex-col sm:flex-row gap-3">
+              <input 
+                type="email" 
+                :placeholder="t('blog.newsletter.placeholder')"
+                class="flex-1 px-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:border-primary"
+              />
+              <button class="px-6 py-3 bg-primary text-white font-bold rounded-lg hover:bg-primary/90 transition-colors whitespace-nowrap">
+                {{ t("blog.newsletter.subscribe") }}
+              </button>
+            </div>
+          </div>
+        </section>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script setup lang="ts">
+import { useI18n } from "vue-i18n";
+
+const { t } = useI18n();
+</script>

+ 76 - 0
src/pages/BlogPost.vue

@@ -0,0 +1,76 @@
+<template>
+  <div class="min-h-screen bg-white">
+    <div class="container mx-auto px-4 py-12">
+      <div class="max-w-4xl mx-auto">
+        <router-link to="/blog" class="inline-flex items-center text-primary font-bold mb-8 hover:opacity-80">
+          <svg class="w-4 h-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
+            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 19l-7-7m0 0l7-7m-7 7h18" />
+          </svg>
+          {{ t("blog.back") }}
+        </router-link>
+
+        <article v-if="post">
+          <div class="flex items-center gap-4 mb-6">
+            <span class="px-3 py-1 bg-primary/10 text-primary text-xs font-bold rounded-full">
+              {{ post.category }}
+            </span>
+            <span class="text-sm text-foreground/60">
+              {{ t("blog.dateFormat", { date: post.date }) }}
+            </span>
+          </div>
+
+          <h1 class="text-4xl md:text-5xl font-display font-bold text-foreground mb-8">
+            {{ post.title }}
+          </h1>
+
+          <div class="aspect-video bg-gray-100 rounded-3xl mb-12 flex items-center justify-center">
+             <span class="text-foreground/20 font-display text-2xl">Illustration Placeholder</span>
+          </div>
+
+          <div class="prose prose-lg max-w-none text-foreground/80 leading-relaxed space-y-6">
+            <p v-for="(p, i) in post.content" :key="i">{{ p }}</p>
+          </div>
+        </article>
+
+        <div v-else class="py-24 text-center">
+          <h2 class="text-2xl font-display font-bold text-foreground mb-4">Post not found</h2>
+          <router-link to="/blog" class="text-primary font-bold">Back to blog</router-link>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script setup lang="ts">
+import { computed } from "vue";
+import { useRoute } from "vue-router";
+import { useI18n } from "vue-i18n";
+
+const { t } = useI18n();
+const route = useRoute();
+
+const posts: Record<string, any> = {
+  "the-future-of-3d-printing": {
+    title: t("blog.featuredPost.title"),
+    date: "2024-03-15",
+    category: t("blog.categories.technology"),
+    content: [
+      "3D printing is no longer just a hobbyist's toy. It's becoming a cornerstone of local manufacturing and decentralized production.",
+      "In Montenegro, we are seeing a surge in demand for custom parts that were previously impossible or too expensive to source locally.",
+      "From drone parts to architectural models, the technology allows for rapid iteration and trust-based service delivery."
+    ]
+  },
+  "fdm-vs-sla": {
+    title: t("blog.post1.title"),
+    date: "2024-03-10",
+    category: t("blog.categories.technology"),
+    content: [
+      "Choosing between FDM and SLA depends on your project goals. FDM is best for functional, durable parts.",
+      "SLA, on the other hand, offers unmatched detail and surface finish, making it ideal for miniatures and prototypes.",
+      "In this article, we'll dive deep into the pros and cons of each method."
+    ]
+  }
+};
+
+const post = computed(() => posts[route.params.id as string]);
+</script>

+ 198 - 0
src/pages/Careers.vue

@@ -0,0 +1,198 @@
+<template>
+  <div class="min-h-screen bg-white">
+    <div class="container mx-auto px-4 py-12">
+      <div class="max-w-4xl mx-auto">
+        <!-- Header -->
+        <div class="mb-12">
+          <h1 class="text-4xl md:text-5xl font-display font-bold text-foreground mb-4">
+            {{ t("footer.careers") }}
+          </h1>
+          <p class="text-lg text-foreground/60">
+            {{ t("careers.subtitle") }}
+          </p>
+        </div>
+
+        <!-- Content -->
+        <div class="space-y-8">
+          <!-- Why Work With Us -->
+          <section>
+            <h2 class="text-2xl font-display font-bold text-foreground mb-6">
+              {{ t("careers.whyWork.title") }}
+            </h2>
+            <div class="grid md:grid-cols-2 gap-6">
+              <div class="bg-gray-50 rounded-xl p-6">
+                <h3 class="text-xl font-display font-bold text-foreground mb-3">
+                  {{ t("careers.whyWork.innovation.title") }}
+                </h3>
+                <p class="text-foreground/70">
+                  {{ t("careers.whyWork.innovation.content") }}
+                </p>
+              </div>
+              <div class="bg-gray-50 rounded-xl p-6">
+                <h3 class="text-xl font-display font-bold text-foreground mb-3">
+                  {{ t("careers.whyWork.growth.title") }}
+                </h3>
+                <p class="text-foreground/70">
+                  {{ t("careers.whyWork.growth.content") }}
+                </p>
+              </div>
+              <div class="bg-gray-50 rounded-xl p-6">
+                <h3 class="text-xl font-display font-bold text-foreground mb-3">
+                  {{ t("careers.whyWork.team.title") }}
+                </h3>
+                <p class="text-foreground/70">
+                  {{ t("careers.whyWork.team.content") }}
+                </p>
+              </div>
+              <div class="bg-gray-50 rounded-xl p-6">
+                <h3 class="text-xl font-display font-bold text-foreground mb-3">
+                  {{ t("careers.whyWork.impact.title") }}
+                </h3>
+                <p class="text-foreground/70">
+                  {{ t("careers.whyWork.impact.content") }}
+                </p>
+              </div>
+            </div>
+          </section>
+
+          <!-- Open Positions -->
+          <section>
+            <h2 class="text-2xl font-display font-bold text-foreground mb-6">
+              {{ t("careers.openPositions.title") }}
+            </h2>
+            <div class="space-y-4">
+              <div class="border border-gray-200 rounded-xl p-6 hover:border-primary/30 transition-colors">
+                <div class="flex flex-col md:flex-row md:items-center justify-between gap-4">
+                  <div>
+                    <h3 class="text-xl font-display font-bold text-foreground mb-2">
+                      {{ t("careers.openPositions.position1.title") }}
+                    </h3>
+                    <div class="flex flex-wrap gap-2 mb-3">
+                      <span class="px-3 py-1 bg-gray-100 text-foreground/70 text-xs font-bold rounded-full">
+                        {{ t("careers.openPositions.position1.type") }}
+                      </span>
+                      <span class="px-3 py-1 bg-gray-100 text-foreground/70 text-xs font-bold rounded-full">
+                        {{ t("careers.openPositions.position1.location") }}
+                      </span>
+                    </div>
+                    <p class="text-foreground/70">
+                      {{ t("careers.openPositions.position1.description") }}
+                    </p>
+                  </div>
+                  <router-link 
+                    to="/contact?subject=3D%20Printing%20Technician%20Application"
+                    class="inline-flex items-center justify-center px-6 py-3 bg-primary text-white font-bold rounded-lg hover:bg-primary/90 transition-colors whitespace-nowrap"
+                  >
+                    {{ t("careers.apply") }}
+                  </router-link>
+                </div>
+              </div>
+
+              <div class="border border-gray-200 rounded-xl p-6 hover:border-primary/30 transition-colors">
+                <div class="flex flex-col md:flex-row md:items-center justify-between gap-4">
+                  <div>
+                    <h3 class="text-xl font-display font-bold text-foreground mb-2">
+                      {{ t("careers.openPositions.position2.title") }}
+                    </h3>
+                    <div class="flex flex-wrap gap-2 mb-3">
+                      <span class="px-3 py-1 bg-gray-100 text-foreground/70 text-xs font-bold rounded-full">
+                        {{ t("careers.openPositions.position2.type") }}
+                      </span>
+                      <span class="px-3 py-1 bg-gray-100 text-foreground/70 text-xs font-bold rounded-full">
+                        {{ t("careers.openPositions.position2.location") }}
+                      </span>
+                    </div>
+                    <p class="text-foreground/70">
+                      {{ t("careers.openPositions.position2.description") }}
+                    </p>
+                  </div>
+                  <router-link 
+                    to="/contact?subject=Customer%20Support%20Specialist%20Application"
+                    class="inline-flex items-center justify-center px-6 py-3 bg-primary text-white font-bold rounded-lg hover:bg-primary/90 transition-colors whitespace-nowrap"
+                  >
+                    {{ t("careers.apply") }}
+                  </router-link>
+                </div>
+              </div>
+            </div>
+          </section>
+
+          <!-- Application Process -->
+          <section>
+            <h2 class="text-2xl font-display font-bold text-foreground mb-6">
+              {{ t("careers.process.title") }}
+            </h2>
+            <div class="grid md:grid-cols-4 gap-6">
+              <div class="text-center">
+                <div class="w-12 h-12 bg-primary/10 text-primary rounded-full flex items-center justify-center text-xl font-bold mx-auto mb-4">
+                  1
+                </div>
+                <h3 class="font-display font-bold text-foreground mb-2">
+                  {{ t("careers.process.step1.title") }}
+                </h3>
+                <p class="text-sm text-foreground/70">
+                  {{ t("careers.process.step1.description") }}
+                </p>
+              </div>
+              <div class="text-center">
+                <div class="w-12 h-12 bg-primary/10 text-primary rounded-full flex items-center justify-center text-xl font-bold mx-auto mb-4">
+                  2
+                </div>
+                <h3 class="font-display font-bold text-foreground mb-2">
+                  {{ t("careers.process.step2.title") }}
+                </h3>
+                <p class="text-sm text-foreground/70">
+                  {{ t("careers.process.step2.description") }}
+                </p>
+              </div>
+              <div class="text-center">
+                <div class="w-12 h-12 bg-primary/10 text-primary rounded-full flex items-center justify-center text-xl font-bold mx-auto mb-4">
+                  3
+                </div>
+                <h3 class="font-display font-bold text-foreground mb-2">
+                  {{ t("careers.process.step3.title") }}
+                </h3>
+                <p class="text-sm text-foreground/70">
+                  {{ t("careers.process.step3.description") }}
+                </p>
+              </div>
+              <div class="text-center">
+                <div class="w-12 h-12 bg-primary/10 text-primary rounded-full flex items-center justify-center text-xl font-bold mx-auto mb-4">
+                  4
+                </div>
+                <h3 class="font-display font-bold text-foreground mb-2">
+                  {{ t("careers.process.step4.title") }}
+                </h3>
+                <p class="text-sm text-foreground/70">
+                  {{ t("careers.process.step4.description") }}
+                </p>
+              </div>
+            </div>
+          </section>
+
+          <!-- Contact CTA -->
+          <section class="bg-primary/5 rounded-2xl p-8 text-center">
+            <h2 class="text-2xl font-display font-bold text-foreground mb-4">
+              {{ t("careers.cta.title") }}
+            </h2>
+            <p class="text-foreground/70 mb-6 max-w-2xl mx-auto">
+              {{ t("careers.cta.content") }}
+            </p>
+            <router-link 
+              to="/contact?subject=General%20Career%20Inquiry"
+              class="inline-flex items-center justify-center px-6 py-3 bg-primary text-white font-bold rounded-lg hover:bg-primary/90 transition-colors"
+            >
+              {{ t("careers.contact") }}
+            </router-link>
+          </section>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script setup lang="ts">
+import { useI18n } from "vue-i18n";
+
+const { t } = useI18n();
+</script>

+ 269 - 0
src/pages/Contact.vue

@@ -0,0 +1,269 @@
+<template>
+  <div class="min-h-screen bg-white">
+    <div class="container mx-auto px-4 py-12">
+      <div class="max-w-6xl mx-auto">
+        <!-- Header -->
+        <div class="mb-12">
+          <h1 class="text-4xl md:text-5xl font-display font-bold text-foreground mb-4">
+            {{ t("footer.contact") }}
+          </h1>
+          <p class="text-lg text-foreground/60">
+            {{ t("contact.subtitle") }}
+          </p>
+        </div>
+
+        <div class="grid lg:grid-cols-2 gap-12">
+          <!-- Contact Information -->
+          <div>
+            <h2 class="text-2xl font-display font-bold text-foreground mb-8">
+              {{ t("contact.info.title") }}
+            </h2>
+            
+            <div class="space-y-6">
+              <!-- Email -->
+              <div class="flex items-start gap-4">
+                <div class="w-10 h-10 bg-primary/10 rounded-lg flex items-center justify-center flex-shrink-0">
+                  <svg class="w-5 h-5 text-primary" fill="none" stroke="currentColor" viewBox="0 0 24 24">
+                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" />
+                  </svg>
+                </div>
+                <div>
+                  <h3 class="font-display font-bold text-foreground mb-1">
+                    {{ t("contact.info.email.title") }}
+                  </h3>
+                  <a href="mailto:hello@radionica3d.com" class="text-foreground/70 hover:text-primary transition-colors">
+                    hello@radionica3d.com
+                  </a>
+                  <p class="text-sm text-foreground/60 mt-1">
+                    {{ t("contact.info.email.description") }}
+                  </p>
+                </div>
+              </div>
+
+              <!-- Location -->
+              <div class="flex items-start gap-4">
+                <div class="w-10 h-10 bg-primary/10 rounded-lg flex items-center justify-center flex-shrink-0">
+                  <svg class="w-5 h-5 text-primary" fill="none" stroke="currentColor" viewBox="0 0 24 24">
+                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z" />
+                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 11a3 3 0 11-6 0 3 3 0 016 0z" />
+                  </svg>
+                </div>
+                <div>
+                  <h3 class="font-display font-bold text-foreground mb-1">
+                    {{ t("contact.info.location.title") }}
+                  </h3>
+                  <p class="text-foreground/70">
+                    Herceg Novi, Montenegro
+                  </p>
+                  <p class="text-sm text-foreground/60 mt-1">
+                    {{ t("contact.info.location.description") }}
+                  </p>
+                </div>
+              </div>
+
+              <!-- Hours -->
+              <div class="flex items-start gap-4">
+                <div class="w-10 h-10 bg-primary/10 rounded-lg flex items-center justify-center flex-shrink-0">
+                  <svg class="w-5 h-5 text-primary" fill="none" stroke="currentColor" viewBox="0 0 24 24">
+                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" />
+                  </svg>
+                </div>
+                <div>
+                  <h3 class="font-display font-bold text-foreground mb-1">
+                    {{ t("contact.info.hours.title") }}
+                  </h3>
+                  <p class="text-foreground/70">
+                    {{ t("contact.info.hours.schedule") }}
+                  </p>
+                  <p class="text-sm text-foreground/60 mt-1">
+                    {{ t("contact.info.hours.description") }}
+                  </p>
+                </div>
+              </div>
+
+              <!-- Social Media -->
+              <div class="flex items-start gap-4">
+                <div class="w-10 h-10 bg-primary/10 rounded-lg flex items-center justify-center flex-shrink-0">
+                  <svg class="w-5 h-5 text-primary" fill="none" stroke="currentColor" viewBox="0 0 24 24">
+                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 13.255A23.931 23.931 0 0112 15c-3.183 0-6.22-.62-9-1.745M16 6V4a2 2 0 00-2-2h-4a2 2 0 00-2 2v2m4 6h.01M5 20h14a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" />
+                  </svg>
+                </div>
+                <div>
+                  <h3 class="font-display font-bold text-foreground mb-1">
+                    {{ t("contact.info.social.title") }}
+                  </h3>
+                  <div class="flex gap-4 mt-2">
+                    <a href="#" class="text-foreground/70 hover:text-primary transition-colors">
+                      {{ t("contact.info.social.linkedin") }}
+                    </a>
+                    <a href="#" class="text-foreground/70 hover:text-primary transition-colors">
+                      {{ t("contact.info.social.instagram") }}
+                    </a>
+                    <a href="#" class="text-foreground/70 hover:text-primary transition-colors">
+                      {{ t("contact.info.social.facebook") }}
+                    </a>
+                  </div>
+                </div>
+              </div>
+            </div>
+
+            <!-- Map Placeholder -->
+            <div class="mt-8 bg-gray-100 rounded-xl h-64 flex items-center justify-center">
+              <p class="text-foreground/60">
+                {{ t("contact.map.placeholder") }}
+              </p>
+            </div>
+          </div>
+
+          <!-- Contact Form -->
+          <div>
+            <h2 class="text-2xl font-display font-bold text-foreground mb-8">
+              {{ t("contact.form.title") }}
+            </h2>
+            
+            <form @submit.prevent="handleSubmit" class="space-y-6">
+              <!-- Name -->
+              <div>
+                <label class="block text-sm font-bold text-foreground mb-2">
+                  {{ t("contact.form.name.label") }}
+                </label>
+                <input 
+                  type="text" 
+                  v-model="form.name"
+                  :placeholder="t('contact.form.name.placeholder')"
+                  class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:border-primary"
+                  required
+                />
+              </div>
+
+              <!-- Email -->
+              <div>
+                <label class="block text-sm font-bold text-foreground mb-2">
+                  {{ t("contact.form.email.label") }}
+                </label>
+                <input 
+                  type="email" 
+                  v-model="form.email"
+                  :placeholder="t('contact.form.email.placeholder')"
+                  class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:border-primary"
+                  required
+                />
+              </div>
+
+              <!-- Subject -->
+              <div>
+                <label class="block text-sm font-bold text-foreground mb-2">
+                  {{ t("contact.form.subject.label") }}
+                </label>
+                <select 
+                  v-model="form.subject"
+                  class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:border-primary"
+                  required
+                >
+                  <option value="">{{ t("contact.form.subject.placeholder") }}</option>
+                  <option value="general">{{ t("contact.form.subject.options.general") }}</option>
+                  <option value="quote">{{ t("contact.form.subject.options.quote") }}</option>
+                  <option value="support">{{ t("contact.form.subject.options.support") }}</option>
+                  <option value="careers">{{ t("contact.form.subject.options.careers") }}</option>
+                  <option value="other">{{ t("contact.form.subject.options.other") }}</option>
+                </select>
+              </div>
+
+              <!-- Message -->
+              <div>
+                <label class="block text-sm font-bold text-foreground mb-2">
+                  {{ t("contact.form.message.label") }}
+                </label>
+                <textarea 
+                  v-model="form.message"
+                  :placeholder="t('contact.form.message.placeholder')"
+                  rows="6"
+                  class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:border-primary resize-none"
+                  required
+                ></textarea>
+              </div>
+
+              <!-- File Upload -->
+              <div>
+                <label class="block text-sm font-bold text-foreground mb-2">
+                  {{ t("contact.form.file.label") }}
+                </label>
+                <div class="border-2 border-dashed border-gray-300 rounded-lg p-6 text-center hover:border-primary/50 transition-colors">
+                  <input 
+                    type="file" 
+                    ref="fileInput"
+                    @change="handleFileUpload"
+                    class="hidden"
+                    accept=".stl,.obj,.step,.3mf"
+                  />
+                  <div class="mb-3">
+                    <svg class="w-12 h-12 text-gray-400 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24">
+                      <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12" />
+                    </svg>
+                  </div>
+                  <p class="text-foreground/70 mb-2">
+                    {{ t("contact.form.file.description") }}
+                  </p>
+                  <button 
+                    type="button"
+                    @click="$refs.fileInput.click()"
+                    class="px-4 py-2 bg-gray-100 text-foreground font-bold rounded-lg hover:bg-gray-200 transition-colors"
+                  >
+                    {{ t("contact.form.file.button") }}
+                  </button>
+                  <p v-if="form.file" class="text-sm text-foreground/60 mt-3">
+                    {{ t("contact.form.file.selected", { fileName: form.file.name }) }}
+                  </p>
+                </div>
+              </div>
+
+              <!-- Submit Button -->
+              <button 
+                type="submit"
+                :disabled="isSubmitting"
+                class="w-full px-6 py-4 bg-primary text-white font-bold rounded-lg hover:bg-primary/90 transition-colors disabled:opacity-50 disabled:cursor-not-allowed"
+              >
+                {{ isSubmitting ? t("contact.form.submitting") : t("contact.form.submit") }}
+              </button>
+            </form>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script setup lang="ts">
+import { ref } from "vue";
+import { useI18n } from "vue-i18n";
+
+const { t } = useI18n();
+
+const form = ref({
+  name: "",
+  email: "",
+  subject: "",
+  message: "",
+  file: null as File | null,
+});
+
+const isSubmitting = ref(false);
+
+const handleFileUpload = (event: Event) => {
+  const input = event.target as HTMLInputElement;
+  if (input.files && input.files[0]) {
+    form.value.file = input.files[0];
+  }
+};
+
+const handleSubmit = async () => {
+  isSubmitting.value = true;
+  
+  // Simulate API call
+  await new Promise(resolve => setTimeout(resolve, 1500));
+  
+  alert(t("contact.form.success"));
+  form.value = { name: "", email: "", subject: "", message: "", file: null };
+  isSubmitting.value = false;
+};
+</script>

+ 285 - 0
src/pages/Guidelines.vue

@@ -0,0 +1,285 @@
+<template>
+  <div class="min-h-screen bg-white">
+    <div class="container mx-auto px-4 py-12">
+      <div class="max-w-4xl mx-auto">
+        <!-- Header -->
+        <div class="mb-12">
+          <h1 class="text-4xl md:text-5xl font-display font-bold text-foreground mb-4">
+            {{ t("footer.guidelines") }}
+          </h1>
+          <p class="text-lg text-foreground/60">
+            {{ t("guidelines.subtitle") }}
+          </p>
+        </div>
+
+        <!-- Content -->
+        <div class="space-y-12">
+          <!-- File Preparation -->
+          <section>
+            <h2 class="text-2xl font-display font-bold text-foreground mb-6">
+              {{ t("guidelines.filePreparation.title") }}
+            </h2>
+            <div class="space-y-6">
+              <div class="bg-gray-50 rounded-xl p-6">
+                <h3 class="text-xl font-display font-bold text-foreground mb-3">
+                  {{ t("guidelines.filePreparation.formats.title") }}
+                </h3>
+                <ul class="space-y-2 text-foreground/70">
+                  <li class="flex items-start gap-2">
+                    <span class="text-primary font-bold">•</span>
+                    {{ t("guidelines.filePreparation.formats.stl") }}
+                  </li>
+                  <li class="flex items-start gap-2">
+                    <span class="text-primary font-bold">•</span>
+                    {{ t("guidelines.filePreparation.formats.obj") }}
+                  </li>
+                  <li class="flex items-start gap-2">
+                    <span class="text-primary font-bold">•</span>
+                    {{ t("guidelines.filePreparation.formats.step") }}
+                  </li>
+                  <li class="flex items-start gap-2">
+                    <span class="text-primary font-bold">•</span>
+                    {{ t("guidelines.filePreparation.formats.3mf") }}
+                  </li>
+                </ul>
+              </div>
+
+              <div class="bg-gray-50 rounded-xl p-6">
+                <h3 class="text-xl font-display font-bold text-foreground mb-3">
+                  {{ t("guidelines.filePreparation.requirements.title") }}
+                </h3>
+                <ul class="space-y-2 text-foreground/70">
+                  <li class="flex items-start gap-2">
+                    <span class="text-primary font-bold">•</span>
+                    {{ t("guidelines.filePreparation.requirements.watertight") }}
+                  </li>
+                  <li class="flex items-start gap-2">
+                    <span class="text-primary font-bold">•</span>
+                    {{ t("guidelines.filePreparation.requirements.normals") }}
+                  </li>
+                  <li class="flex items-start gap-2">
+                    <span class="text-primary font-bold">•</span>
+                    {{ t("guidelines.filePreparation.requirements.scale") }}
+                  </li>
+                  <li class="flex items-start gap-2">
+                    <span class="text-primary font-bold">•</span>
+                    {{ t("guidelines.filePreparation.requirements.wallThickness") }}
+                  </li>
+                </ul>
+              </div>
+            </div>
+          </section>
+
+          <!-- Design Tips -->
+          <section>
+            <h2 class="text-2xl font-display font-bold text-foreground mb-6">
+              {{ t("guidelines.designTips.title") }}
+            </h2>
+            <div class="grid md:grid-cols-2 gap-6">
+              <div class="bg-gray-50 rounded-xl p-6">
+                <h3 class="text-xl font-display font-bold text-foreground mb-3">
+                  {{ t("guidelines.designTips.fdm.title") }}
+                </h3>
+                <ul class="space-y-2 text-foreground/70">
+                  <li class="flex items-start gap-2">
+                    <span class="text-primary font-bold">•</span>
+                    {{ t("guidelines.designTips.fdm.overhangs") }}
+                  </li>
+                  <li class="flex items-start gap-2">
+                    <span class="text-primary font-bold">•</span>
+                    {{ t("guidelines.designTips.fdm.bridging") }}
+                  </li>
+                  <li class="flex items-start gap-2">
+                    <span class="text-primary font-bold">•</span>
+                    {{ t("guidelines.designTips.fdm.layerHeight") }}
+                  </li>
+                  <li class="flex items-start gap-2">
+                    <span class="text-primary font-bold">•</span>
+                    {{ t("guidelines.designTips.fdm.infill") }}
+                  </li>
+                </ul>
+              </div>
+
+              <div class="bg-gray-50 rounded-xl p-6">
+                <h3 class="text-xl font-display font-bold text-foreground mb-3">
+                  {{ t("guidelines.designTips.sla.title") }}
+                </h3>
+                <ul class="space-y-2 text-foreground/70">
+                  <li class="flex items-start gap-2">
+                    <span class="text-primary font-bold">•</span>
+                    {{ t("guidelines.designTips.sla.supports") }}
+                  </li>
+                  <li class="flex items-start gap-2">
+                    <span class="text-primary font-bold">•</span>
+                    {{ t("guidelines.designTips.sla.orientation") }}
+                  </li>
+                  <li class="flex items-start gap-2">
+                    <span class="text-primary font-bold">•</span>
+                    {{ t("guidelines.designTips.sla.drainage") }}
+                  </li>
+                  <li class="flex items-start gap-2">
+                    <span class="text-primary font-bold">•</span>
+                    {{ t("guidelines.designTips.sla.postProcessing") }}
+                  </li>
+                </ul>
+              </div>
+            </div>
+          </section>
+
+          <!-- Material Selection -->
+          <section>
+            <h2 class="text-2xl font-display font-bold text-foreground mb-6">
+              {{ t("guidelines.materialSelection.title") }}
+            </h2>
+            <div class="overflow-x-auto">
+              <table class="w-full border-collapse">
+                <thead>
+                  <tr class="bg-gray-50">
+                    <th class="text-left p-4 font-display font-bold text-foreground">
+                      {{ t("guidelines.materialSelection.table.material") }}
+                    </th>
+                    <th class="text-left p-4 font-display font-bold text-foreground">
+                      {{ t("guidelines.materialSelection.table.bestFor") }}
+                    </th>
+                    <th class="text-left p-4 font-display font-bold text-foreground">
+                      {{ t("guidelines.materialSelection.table.considerations") }}
+                    </th>
+                  </tr>
+                </thead>
+                <tbody class="divide-y divide-gray-200">
+                  <tr>
+                    <td class="p-4 font-bold text-foreground">
+                      {{ t("guidelines.materialSelection.pla.name") }}
+                    </td>
+                    <td class="p-4 text-foreground/70">
+                      {{ t("guidelines.materialSelection.pla.bestFor") }}
+                    </td>
+                    <td class="p-4 text-foreground/70">
+                      {{ t("guidelines.materialSelection.pla.considerations") }}
+                    </td>
+                  </tr>
+                  <tr>
+                    <td class="p-4 font-bold text-foreground">
+                      {{ t("guidelines.materialSelection.abs.name") }}
+                    </td>
+                    <td class="p-4 text-foreground/70">
+                      {{ t("guidelines.materialSelection.abs.bestFor") }}
+                    </td>
+                    <td class="p-4 text-foreground/70">
+                      {{ t("guidelines.materialSelection.abs.considerations") }}
+                    </td>
+                  </tr>
+                  <tr>
+                    <td class="p-4 font-bold text-foreground">
+                      {{ t("guidelines.materialSelection.petg.name") }}
+                    </td>
+                    <td class="p-4 text-foreground/70">
+                      {{ t("guidelines.materialSelection.petg.bestFor") }}
+                    </td>
+                    <td class="p-4 text-foreground/70">
+                      {{ t("guidelines.materialSelection.petg.considerations") }}
+                    </td>
+                  </tr>
+                  <tr>
+                    <td class="p-4 font-bold text-foreground">
+                      {{ t("guidelines.materialSelection.resin.name") }}
+                    </td>
+                    <td class="p-4 text-foreground/70">
+                      {{ t("guidelines.materialSelection.resin.bestFor") }}
+                    </td>
+                    <td class="p-4 text-foreground/70">
+                      {{ t("guidelines.materialSelection.resin.considerations") }}
+                    </td>
+                  </tr>
+                </tbody>
+              </table>
+            </div>
+          </section>
+
+          <!-- Ordering Process -->
+          <section>
+            <h2 class="text-2xl font-display font-bold text-foreground mb-6">
+              {{ t("guidelines.orderingProcess.title") }}
+            </h2>
+            <div class="grid md:grid-cols-4 gap-6">
+              <div class="text-center">
+                <div class="w-12 h-12 bg-primary/10 text-primary rounded-full flex items-center justify-center text-xl font-bold mx-auto mb-4">
+                  1
+                </div>
+                <h3 class="font-display font-bold text-foreground mb-2">
+                  {{ t("guidelines.orderingProcess.step1.title") }}
+                </h3>
+                <p class="text-sm text-foreground/70">
+                  {{ t("guidelines.orderingProcess.step1.description") }}
+                </p>
+              </div>
+              <div class="text-center">
+                <div class="w-12 h-12 bg-primary/10 text-primary rounded-full flex items-center justify-center text-xl font-bold mx-auto mb-4">
+                  2
+                </div>
+                <h3 class="font-display font-bold text-foreground mb-2">
+                  {{ t("guidelines.orderingProcess.step2.title") }}
+                </h3>
+                <p class="text-sm text-foreground/70">
+                  {{ t("guidelines.orderingProcess.step2.description") }}
+                </p>
+              </div>
+              <div class="text-center">
+                <div class="w-12 h-12 bg-primary/10 text-primary rounded-full flex items-center justify-center text-xl font-bold mx-auto mb-4">
+                  3
+                </div>
+                <h3 class="font-display font-bold text-foreground mb-2">
+                  {{ t("guidelines.orderingProcess.step3.title") }}
+                </h3>
+                <p class="text-sm text-foreground/70">
+                  {{ t("guidelines.orderingProcess.step3.description") }}
+                </p>
+              </div>
+              <div class="text-center">
+                <div class="w-12 h-12 bg-primary/10 text-primary rounded-full flex items-center justify-center text-xl font-bold mx-auto mb-4">
+                  4
+                </div>
+                <h3 class="font-display font-bold text-foreground mb-2">
+                  {{ t("guidelines.orderingProcess.step4.title") }}
+                </h3>
+                <p class="text-sm text-foreground/70">
+                  {{ t("guidelines.orderingProcess.step4.description") }}
+                </p>
+              </div>
+            </div>
+          </section>
+
+          <!-- Help Section -->
+          <section class="bg-primary/5 rounded-2xl p-8 text-center">
+            <h2 class="text-2xl font-display font-bold text-foreground mb-4">
+              {{ t("guidelines.help.title") }}
+            </h2>
+            <p class="text-foreground/70 mb-6 max-w-2xl mx-auto">
+              {{ t("guidelines.help.description") }}
+            </p>
+            <div class="flex flex-col sm:flex-row gap-4 justify-center">
+              <router-link 
+                to="/help"
+                class="inline-flex items-center justify-center px-6 py-3 bg-primary text-white font-bold rounded-lg hover:bg-primary/90 transition-colors"
+              >
+                {{ t("guidelines.help.helpCenter") }}
+              </router-link>
+              <router-link 
+                to="/contact"
+                class="inline-flex items-center justify-center px-6 py-3 border border-gray-300 text-foreground font-bold rounded-lg hover:bg-gray-50 transition-colors"
+              >
+                {{ t("guidelines.help.contact") }}
+              </router-link>
+            </div>
+          </section>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script setup lang="ts">
+import { useI18n } from "vue-i18n";
+
+const { t } = useI18n();
+</script>

+ 219 - 0
src/pages/HelpCenter.vue

@@ -0,0 +1,219 @@
+<template>
+  <div class="min-h-screen bg-white">
+    <div class="container mx-auto px-4 py-12">
+      <div class="max-w-6xl mx-auto">
+        <!-- Header -->
+        <div class="mb-12">
+          <h1 class="text-4xl md:text-5xl font-display font-bold text-foreground mb-4">
+            {{ t("footer.help") }}
+          </h1>
+          <p class="text-lg text-foreground/60">
+            {{ t("help.subtitle") }}
+          </p>
+        </div>
+
+        <!-- Search -->
+        <div class="mb-12">
+          <div class="relative max-w-2xl mx-auto">
+            <input 
+              type="text" 
+              v-model="searchQuery"
+              :placeholder="t('help.search.placeholder')"
+              class="w-full px-6 py-4 pl-12 border border-gray-300 rounded-xl focus:outline-none focus:border-primary"
+            />
+            <svg class="absolute left-4 top-1/2 transform -translate-y-1/2 w-5 h-5 text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
+              <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" />
+            </svg>
+          </div>
+        </div>
+
+        <!-- Categories -->
+        <div class="mb-12">
+          <h2 class="text-2xl font-display font-bold text-foreground mb-8">
+            {{ t("help.categories.title") }}
+          </h2>
+          <div class="grid md:grid-cols-2 lg:grid-cols-4 gap-6">
+            <router-link 
+              to="/help/ordering"
+              class="bg-gray-50 rounded-xl p-6 hover:bg-primary/5 hover:border-primary/30 border border-transparent transition-all"
+            >
+              <div class="w-12 h-12 bg-primary/10 rounded-lg flex items-center justify-center mb-4">
+                <svg class="w-6 h-6 text-primary" fill="none" stroke="currentColor" viewBox="0 0 24 24">
+                  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2" />
+                </svg>
+              </div>
+              <h3 class="text-lg font-display font-bold text-foreground mb-2">
+                {{ t("help.categories.ordering.title") }}
+              </h3>
+              <p class="text-sm text-foreground/70">
+                {{ t("help.categories.ordering.description") }}
+              </p>
+            </router-link>
+
+            <router-link 
+              to="/help/pricing"
+              class="bg-gray-50 rounded-xl p-6 hover:bg-primary/5 hover:border-primary/30 border border-transparent transition-all"
+            >
+              <div class="w-12 h-12 bg-primary/10 rounded-lg flex items-center justify-center mb-4">
+                <svg class="w-6 h-6 text-primary" fill="none" stroke="currentColor" viewBox="0 0 24 24">
+                  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
+                </svg>
+              </div>
+              <h3 class="text-lg font-display font-bold text-foreground mb-2">
+                {{ t("help.categories.pricing.title") }}
+              </h3>
+              <p class="text-sm text-foreground/70">
+                {{ t("help.categories.pricing.description") }}
+              </p>
+            </router-link>
+
+            <router-link 
+              to="/help/shipping"
+              class="bg-gray-50 rounded-xl p-6 hover:bg-primary/5 hover:border-primary/30 border border-transparent transition-all"
+            >
+              <div class="w-12 h-12 bg-primary/10 rounded-lg flex items-center justify-center mb-4">
+                <svg class="w-6 h-6 text-primary" fill="none" stroke="currentColor" viewBox="0 0 24 24">
+                  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 8h14M5 8a2 2 0 110-4h14a2 2 0 110 4M5 8v10a2 2 0 002 2h10a2 2 0 002-2V8m-9 4h4" />
+                </svg>
+              </div>
+              <h3 class="text-lg font-display font-bold text-foreground mb-2">
+                {{ t("help.categories.shipping.title") }}
+              </h3>
+              <p class="text-sm text-foreground/70">
+                {{ t("help.categories.shipping.description") }}
+              </p>
+            </router-link>
+
+            <router-link 
+              to="/help/technical"
+              class="bg-gray-50 rounded-xl p-6 hover:bg-primary/5 hover:border-primary/30 border border-transparent transition-all"
+            >
+              <div class="w-12 h-12 bg-primary/10 rounded-lg flex items-center justify-center mb-4">
+                <svg class="w-6 h-6 text-primary" fill="none" stroke="currentColor" viewBox="0 0 24 24">
+                  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4" />
+                </svg>
+              </div>
+              <h3 class="text-lg font-display font-bold text-foreground mb-2">
+                {{ t("help.categories.technical.title") }}
+              </h3>
+              <p class="text-sm text-foreground/70">
+                {{ t("help.categories.technical.description") }}
+              </p>
+            </router-link>
+          </div>
+        </div>
+
+        <!-- FAQ -->
+        <div class="mb-12">
+          <h2 class="text-2xl font-display font-bold text-foreground mb-8">
+            {{ t("help.faq.title") }}
+          </h2>
+          <div class="space-y-4">
+            <div 
+              v-for="(faq, index) in filteredFaqs" 
+              :key="index"
+              class="border border-gray-200 rounded-xl overflow-hidden"
+            >
+              <button 
+                @click="toggleFaq(index)"
+                class="w-full px-6 py-4 text-left flex items-center justify-between hover:bg-gray-50 transition-colors"
+              >
+                <span class="font-display font-bold text-foreground">
+                  {{ faq.question }}
+                </span>
+                <svg 
+                  class="w-5 h-5 text-gray-400 transition-transform duration-200"
+                  :class="{ 'rotate-180': openFaqs[index] }"
+                  fill="none" 
+                  stroke="currentColor" 
+                  viewBox="0 0 24 24"
+                >
+                  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" />
+                </svg>
+              </button>
+              <div 
+                v-if="openFaqs[index]"
+                class="px-6 py-4 border-t border-gray-200 bg-gray-50"
+              >
+                <p class="text-foreground/70">
+                  {{ faq.answer }}
+                </p>
+              </div>
+            </div>
+          </div>
+        </div>
+
+        <!-- Contact Support -->
+        <div class="bg-primary/5 rounded-2xl p-8 text-center">
+          <h2 class="text-2xl font-display font-bold text-foreground mb-4">
+            {{ t("help.contact.title") }}
+          </h2>
+          <p class="text-foreground/70 mb-6 max-w-2xl mx-auto">
+            {{ t("help.contact.description") }}
+          </p>
+          <div class="flex flex-col sm:flex-row gap-4 justify-center">
+            <router-link 
+              to="/contact"
+              class="inline-flex items-center justify-center px-6 py-3 bg-primary text-white font-bold rounded-lg hover:bg-primary/90 transition-colors"
+            >
+              {{ t("help.contact.button") }}
+            </router-link>
+            <a 
+              href="mailto:support@radionica3d.com"
+              class="inline-flex items-center justify-center px-6 py-3 border border-gray-300 text-foreground font-bold rounded-lg hover:bg-gray-50 transition-colors"
+            >
+              {{ t("help.contact.email") }}
+            </a>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script setup lang="ts">
+import { ref, computed } from "vue";
+import { useI18n } from "vue-i18n";
+
+const { t } = useI18n();
+
+const searchQuery = ref("");
+const openFaqs = ref<boolean[]>([]);
+
+const faqs = [
+  {
+    question: t("help.faq.q1.question"),
+    answer: t("help.faq.q1.answer"),
+  },
+  {
+    question: t("help.faq.q2.question"),
+    answer: t("help.faq.q2.answer"),
+  },
+  {
+    question: t("help.faq.q3.question"),
+    answer: t("help.faq.q3.answer"),
+  },
+  {
+    question: t("help.faq.q4.question"),
+    answer: t("help.faq.q4.answer"),
+  },
+  {
+    question: t("help.faq.q5.question"),
+    answer: t("help.faq.q5.answer"),
+  },
+];
+
+const filteredFaqs = computed(() => {
+  if (!searchQuery.value.trim()) return faqs;
+  
+  const query = searchQuery.value.toLowerCase();
+  return faqs.filter(faq => 
+    faq.question.toLowerCase().includes(query) || 
+    faq.answer.toLowerCase().includes(query)
+  );
+});
+
+const toggleFaq = (index: number) => {
+  openFaqs.value[index] = !openFaqs.value[index];
+};
+</script>

+ 269 - 0
src/pages/Terms.vue

@@ -0,0 +1,269 @@
+<template>
+  <div class="min-h-screen bg-white">
+    <div class="container mx-auto px-4 py-12">
+      <div class="max-w-4xl mx-auto">
+        <!-- Header -->
+        <div class="mb-12">
+          <h1 class="text-4xl md:text-5xl font-display font-bold text-foreground mb-4">
+            {{ t("footer.terms") }}
+          </h1>
+          <p class="text-lg text-foreground/60">
+            {{ t("terms.subtitle") }}
+          </p>
+        </div>
+
+        <!-- Content -->
+        <div class="space-y-12">
+          <!-- Introduction -->
+          <section>
+            <h2 class="text-2xl font-display font-bold text-foreground mb-6">
+              {{ t("terms.introduction.title") }}
+            </h2>
+            <div class="prose prose-lg max-w-none text-foreground/70">
+              <p>
+                {{ t("terms.introduction.content") }}
+              </p>
+            </div>
+          </section>
+
+          <!-- Services -->
+          <section>
+            <h2 class="text-2xl font-display font-bold text-foreground mb-6">
+              {{ t("terms.services.title") }}
+            </h2>
+            <div class="space-y-4 text-foreground/70">
+              <p>
+                {{ t("terms.services.description") }}
+              </p>
+              <ul class="space-y-2 pl-5">
+                <li class="list-disc">
+                  {{ t("terms.services.point1") }}
+                </li>
+                <li class="list-disc">
+                  {{ t("terms.services.point2") }}
+                </li>
+                <li class="list-disc">
+                  {{ t("terms.services.point3") }}
+                </li>
+                <li class="list-disc">
+                  {{ t("terms.services.point4") }}
+                </li>
+              </ul>
+            </div>
+          </section>
+
+          <!-- User Responsibilities -->
+          <section>
+            <h2 class="text-2xl font-display font-bold text-foreground mb-6">
+              {{ t("terms.userResponsibilities.title") }}
+            </h2>
+            <div class="space-y-4 text-foreground/70">
+              <p>
+                {{ t("terms.userResponsibilities.description") }}
+              </p>
+              <div class="bg-gray-50 rounded-xl p-6">
+                <h3 class="font-display font-bold text-foreground mb-3">
+                  {{ t("terms.userResponsibilities.prohibited.title") }}
+                </h3>
+                <ul class="space-y-2">
+                  <li class="flex items-start gap-2">
+                    <span class="text-primary font-bold">•</span>
+                    {{ t("terms.userResponsibilities.prohibited.point1") }}
+                  </li>
+                  <li class="flex items-start gap-2">
+                    <span class="text-primary font-bold">•</span>
+                    {{ t("terms.userResponsibilities.prohibited.point2") }}
+                  </li>
+                  <li class="flex items-start gap-2">
+                    <span class="text-primary font-bold">•</span>
+                    {{ t("terms.userResponsibilities.prohibited.point3") }}
+                  </li>
+                  <li class="flex items-start gap-2">
+                    <span class="text-primary font-bold">•</span>
+                    {{ t("terms.userResponsibilities.prohibited.point4") }}
+                  </li>
+                  <li class="flex items-start gap-2">
+                    <span class="text-primary font-bold">•</span>
+                    {{ t("terms.userResponsibilities.prohibited.point5") }}
+                  </li>
+                </ul>
+              </div>
+            </div>
+          </section>
+
+          <!-- Intellectual Property -->
+          <section>
+            <h2 class="text-2xl font-display font-bold text-foreground mb-6">
+              {{ t("terms.intellectualProperty.title") }}
+            </h2>
+            <div class="space-y-4 text-foreground/70">
+              <p>
+                {{ t("terms.intellectualProperty.description") }}
+              </p>
+              <div class="grid md:grid-cols-2 gap-6">
+                <div class="bg-gray-50 rounded-xl p-6">
+                  <h3 class="font-display font-bold text-foreground mb-3">
+                    {{ t("terms.intellectualProperty.userRights.title") }}
+                  </h3>
+                  <p>
+                    {{ t("terms.intellectualProperty.userRights.content") }}
+                  </p>
+                </div>
+                <div class="bg-gray-50 rounded-xl p-6">
+                  <h3 class="font-display font-bold text-foreground mb-3">
+                    {{ t("terms.intellectualProperty.companyRights.title") }}
+                  </h3>
+                  <p>
+                    {{ t("terms.intellectualProperty.companyRights.content") }}
+                  </p>
+                </div>
+              </div>
+            </div>
+          </section>
+
+          <!-- Payment & Pricing -->
+          <section>
+            <h2 class="text-2xl font-display font-bold text-foreground mb-6">
+              {{ t("terms.payment.title") }}
+            </h2>
+            <div class="space-y-4 text-foreground/70">
+              <p>
+                {{ t("terms.payment.description") }}
+              </p>
+              <div class="bg-gray-50 rounded-xl p-6">
+                <h3 class="font-display font-bold text-foreground mb-3">
+                  {{ t("terms.payment.trustModel.title") }}
+                </h3>
+                <ul class="space-y-2">
+                  <li class="flex items-start gap-2">
+                    <span class="text-primary font-bold">•</span>
+                    {{ t("terms.payment.trustModel.point1") }}
+                  </li>
+                  <li class="flex items-start gap-2">
+                    <span class="text-primary font-bold">•</span>
+                    {{ t("terms.payment.trustModel.point2") }}
+                  </li>
+                  <li class="flex items-start gap-2">
+                    <span class="text-primary font-bold">•</span>
+                    {{ t("terms.payment.trustModel.point3") }}
+                  </li>
+                  <li class="flex items-start gap-2">
+                    <span class="text-primary font-bold">•</span>
+                    {{ t("terms.payment.trustModel.point4") }}
+                  </li>
+                </ul>
+              </div>
+            </div>
+          </section>
+
+          <!-- Shipping & Delivery -->
+          <section>
+            <h2 class="text-2xl font-display font-bold text-foreground mb-6">
+              {{ t("terms.shipping.title") }}
+            </h2>
+            <div class="space-y-4 text-foreground/70">
+              <p>
+                {{ t("terms.shipping.description") }}
+              </p>
+              <div class="grid md:grid-cols-2 gap-6">
+                <div class="bg-gray-50 rounded-xl p-6">
+                  <h3 class="font-display font-bold text-foreground mb-3">
+                    {{ t("terms.shipping.delivery.title") }}
+                  </h3>
+                  <p>
+                    {{ t("terms.shipping.delivery.content") }}
+                  </p>
+                </div>
+                <div class="bg-gray-50 rounded-xl p-6">
+                  <h3 class="font-display font-bold text-foreground mb-3">
+                    {{ t("terms.shipping.returns.title") }}
+                  </h3>
+                  <p>
+                    {{ t("terms.shipping.returns.content") }}
+                  </p>
+                </div>
+              </div>
+            </div>
+          </section>
+
+          <!-- Liability -->
+          <section>
+            <h2 class="text-2xl font-display font-bold text-foreground mb-6">
+              {{ t("terms.liability.title") }}
+            </h2>
+            <div class="space-y-4 text-foreground/70">
+              <p>
+                {{ t("terms.liability.description") }}
+              </p>
+              <div class="bg-gray-50 rounded-xl p-6">
+                <h3 class="font-display font-bold text-foreground mb-3">
+                  {{ t("terms.liability.limitations.title") }}
+                </h3>
+                <ul class="space-y-2">
+                  <li class="flex items-start gap-2">
+                    <span class="text-primary font-bold">•</span>
+                    {{ t("terms.liability.limitations.point1") }}
+                  </li>
+                  <li class="flex items-start gap-2">
+                    <span class="text-primary font-bold">•</span>
+                    {{ t("terms.liability.limitations.point2") }}
+                  </li>
+                  <li class="flex items-start gap-2">
+                    <span class="text-primary font-bold">•</span>
+                    {{ t("terms.liability.limitations.point3") }}
+                  </li>
+                  <li class="flex items-start gap-2">
+                    <span class="text-primary font-bold">•</span>
+                    {{ t("terms.liability.limitations.point4") }}
+                  </li>
+                </ul>
+              </div>
+            </div>
+          </section>
+
+          <!-- Changes to Terms -->
+          <section>
+            <h2 class="text-2xl font-display font-bold text-foreground mb-6">
+              {{ t("terms.changes.title") }}
+            </h2>
+            <div class="prose prose-lg max-w-none text-foreground/70">
+              <p>
+                {{ t("terms.changes.content") }}
+              </p>
+            </div>
+          </section>
+
+          <!-- Contact -->
+          <section class="bg-primary/5 rounded-2xl p-8 text-center">
+            <h2 class="text-2xl font-display font-bold text-foreground mb-4">
+              {{ t("terms.contact.title") }}
+            </h2>
+            <p class="text-foreground/70 mb-6 max-w-2xl mx-auto">
+              {{ t("terms.contact.description") }}
+            </p>
+            <div class="flex flex-col sm:flex-row gap-4 justify-center">
+              <router-link 
+                to="/contact"
+                class="inline-flex items-center justify-center px-6 py-3 bg-primary text-white font-bold rounded-lg hover:bg-primary/90 transition-colors"
+              >
+                {{ t("terms.contact.button") }}
+              </router-link>
+              <a 
+                href="mailto:legal@radionica3d.com"
+                class="inline-flex items-center justify-center px-6 py-3 border border-gray-300 text-foreground font-bold rounded-lg hover:bg-gray-50 transition-colors"
+              >
+                {{ t("terms.contact.email") }}
+              </a>
+            </div>
+          </section>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script setup lang="ts">
+import { useI18n } from "vue-i18n";
+
+const { t } = useI18n();
+</script>

+ 8 - 0
src/router/index.ts

@@ -9,6 +9,14 @@ const router = createRouter({
     { path: "/portfolio", component: () => import("@/pages/Portfolio.vue") },
     { path: "/admin",     component: () => import("@/pages/Admin.vue") },
     { path: "/privacy",   component: () => import("@/pages/Privacy.vue") },
+    { path: "/about",     component: () => import("@/pages/About.vue") },
+    { path: "/careers",   component: () => import("@/pages/Careers.vue") },
+    { path: "/blog",      component: () => import("@/pages/Blog.vue") },
+    { path: "/blog/:id",  component: () => import("@/pages/BlogPost.vue") },
+    { path: "/contact",   component: () => import("@/pages/Contact.vue") },
+    { path: "/help",      component: () => import("@/pages/HelpCenter.vue") },
+    { path: "/guidelines", component: () => import("@/pages/Guidelines.vue") },
+    { path: "/terms",     component: () => import("@/pages/Terms.vue") },
     { path: "/:pathMatch(.*)*", component: () => import("@/pages/NotFound.vue") },
   ],
   scrollBehavior(to) {