Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
124 changes: 124 additions & 0 deletions v5/messages/ar.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
{
"nav": {
"tools": "الأدوات",
"projects": "المشاريع",
"about": "حول",
"brandTagline": "// CORNELL TECH",
"primaryNavLabel": "التنقّل الرئيسي",
"utilityControlsLabel": "عناصر التحكم المساعدة",
"themeToggleAria": "تبديل سمة الألوان (النظام ← فاتح ← داكن)",
"themeToggleTitle": "تبديل سمة الألوان",
"languageLabel": "اللغة",
"languageSelectorAria": "اختيار اللغة"
},
"status": {
"labStatusLabel": "حالة المختبر",
"toolsInInventory": "{count} أداة في المخزون"
},
"gallery": {
"title": "الأدوات // الآلات",
"searchPlaceholder": "ابحث في المخزون...",
"searchAria": "البحث في المخزون",
"category": "الفئة:",
"training": "التدريب:",
"viewModeLabel": "وضع العرض",
"grid": "[ شبكة ]",
"table": "[ جدول ]",
"toolGalleryLabel": "معرض الأدوات",
"empty": "لم يتم العثور على أدوات مطابقة.",
"loading": "جارٍ تحميل المخزون",
"columnTool": "الأداة",
"columnCategory": "الفئة",
"columnZone": "المنطقة",
"columnTraining": "التدريب",
"trainingBeginner": "مبتدئ",
"trainingIntermediate": "متوسط",
"trainingAdvanced": "متقدم"
},
"detail": {
"breadcrumbTools": "الأدوات",
"breadcrumbInventory": "المخزون",
"toolStatusLabel": "حالة الأداة",
"trainingChip": "تدريب {level}",
"ppeRequired": "معدات الوقاية الشخصية مطلوبة",
"viewSafetyDoc": "عرض وثيقة السلامة",
"viewSop": "عرض إجراء التشغيل (SOP)",
"atAGlanceLabel": "نظرة سريعة",
"materials": "المواد",
"contactStaff": "تواصل مع فريق MakerLab",
"safetyAccess": "السلامة والوصول",
"ppeNotice": "يجب ارتداء معدات الوقاية الشخصية قبل الاستخدام. راجع الإرشادات المعلَّقة.",
"emergencyStop": "إيقاف الطوارئ",
"emergencyStopFallback": "اتبع إرشادات المختبر المعلَّقة وأبلغ الفريق في حالات الطوارئ.",
"useRestrictions": "قيود الاستخدام",
"useRestrictionsFallback": "متاح لجميع مستخدمي MakerLab المدرَّبين خلال ساعات عمل المختبر.",
"documentsResources": "المستندات والموارد",
"openResource": "فتح المورد",
"resourceFallback": "مورد",
"noDocuments": "لا توجد مستندات مرتبطة بعد.",
"details": "التفاصيل",
"category": "الفئة",
"location": "الموقع",
"trainingRow": "التدريب",
"mapId": "معرّف الخريطة",
"tags": "الوسوم",
"notes": "ملاحظات",
"physicalMachines": "الآلات الفعلية",
"unit": "الوحدة",
"status": "الحالة",
"condition": "الوضع",
"serial": "الرقم التسلسلي",
"acquired": "تاريخ الاقتناء",
"notesTips": "ملاحظات ونصائح",
"backToTools": "‹ العودة إلى جميع الأدوات"
},
"projects": {
"eyebrow": "المشاريع",
"title": "قريبًا",
"body": "يجري إعداد معرض لمشاريع MakerLab — أعمال الطلاب ونتائج المقررات ومعروضات منتقاة من الفريق. في الوقت الحالي، تصفّح كتالوج الأدوات لمعرفة ما هو متاح في المختبر.",
"browseTools": "تصفّح الأدوات"
},
"about": {
"eyebrow": "حول",
"title": "كتالوج بقيادة الطلاب لمختبر Cornell Tech MakerLab.",
"intro": "MakerLab Tools هو نظام رقمي للمخزون والاستكشاف لمختبر Cornell Tech MakerLab. يساعد الطلاب على تصفّح المعدات والعثور على وثائق السلامة ومعرفة الآلات الفعلية المتاحة في المختبر قبل الذهاب إليه.",
"origin": "بدأ المشروع كنموذج أولي في عطلة نهاية الأسبوع ثم تطوّر إلى الكتالوج الحالي المعتمد على Notion. تُخزَّن الأدوات والوحدات والمواقع والموارد جميعها في Notion وتُغذّي الموقع عبر طبقة API للقراءة فقط مع تخزين مؤقت — بحيث يمكن للفريق والطلاب المتطوعين إدارة المحتوى دون لمس الكود.",
"builtByHeading": "من قام بإنشائه",
"builtByBody": "Isaac Steinberg، Johnson Cornell Tech MBA '26. تم إنشاؤه كمشروع بقيادة الطلاب لتسهيل عثور مجتمع MakerLab على معدات المختبر واستخدامها بأمان.",
"howItWorksHeading": "كيف يعمل",
"howItWorksBody": "الواجهة الأمامية هي تطبيق Next.js 16 مُنشَر على Vercel. تعمل واجهة Notion API كمصدر للحقيقة بالنسبة للكتالوج، مع طبقة تخزين مؤقت لكل طلب لإبقاء الصفحة سريعة تحت الضغط. تُنسَخ صور الأدوات محليًا لتظهر بشكل موثوق حتى عند انتهاء صلاحية روابط URL الموقّعة من المصدر.",
"feedbackBody": "إذا لاحظت خطأ أو كان لديك اقتراح، تحدّث مع فريق MakerLab — تتم مراجعة التصحيحات المُعلَّمة وتحديثها في Notion.",
"browseTools": "تصفّح الأدوات"
},
"chat": {
"openAria": "فتح مساعد MakerLab",
"title": "مساعد MAKERLAB",
"newChatAria": "بدء محادثة جديدة",
"newChatTitle": "بدء محادثة جديدة",
"closeAria": "إغلاق المساعد",
"closeTitle": "إغلاق (يحتفظ بالمحادثة)",
"closeScrimAria": "إغلاق مساعد MakerLab",
"greetingTool": "اسأل عن هذه الأداة — لديّ مواصفاتها وموادها وروابط مواردها.",
"greetingGeneral": "كيف يمكنني مساعدتك اليوم؟",
"suggestionFindMachine": "العثور على آلة مناسبة لمشروع",
"suggestionTraining": "التحقق من متطلبات التدريب",
"suggestionSafety": "السؤال عن السلامة أو السياسات",
"composerPlaceholder": "اسأل وحدة تحكّم المختبر...",
"composerAria": "اسأل وحدة تحكّم المختبر",
"sendAria": "إرسال",
"attachAria": "إرفاق صور",
"attachTitle": "إرفاق صور",
"removePhotoAria": "إزالة {name}",
"uploadingAria": "جارٍ رفع الصورة",
"onlyImages": "يُسمح بملفات الصور فقط.",
"uploadFailed": "فشل رفع الصورة",
"toolRunningAria": "الأداة قيد التشغيل",
"typingAria": "المساعد يكتب",
"readingManualsAria": "جارٍ قراءة الأدلة",
"reading": "جارٍ القراءة: {titles}…",
"error": "حدث خطأ ما. حاول مرة أخرى.",
"lookingUpUnit": "🔍 جارٍ البحث عن تفاصيل الوحدة…",
"filingTicket": "📝 جارٍ تسجيل تذكرة الصيانة…",
"working": "جارٍ العمل على ذلك…"
}
}
124 changes: 124 additions & 0 deletions v5/messages/en.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
{
"nav": {
"tools": "TOOLS",
"projects": "PROJECTS",
"about": "ABOUT",
"brandTagline": "// CORNELL TECH",
"primaryNavLabel": "Primary navigation",
"utilityControlsLabel": "Utility controls",
"themeToggleAria": "Cycle color theme (system → light → dark)",
"themeToggleTitle": "Cycle color theme",
"languageLabel": "Language",
"languageSelectorAria": "Select language"
},
"status": {
"labStatusLabel": "Lab status",
"toolsInInventory": "{count} TOOLS IN INVENTORY"
},
"gallery": {
"title": "TOOLS // MACHINES",
"searchPlaceholder": "search inventory...",
"searchAria": "Search inventory",
"category": "CATEGORY:",
"training": "TRAINING:",
"viewModeLabel": "View mode",
"grid": "[ GRID ]",
"table": "[ TABLE ]",
"toolGalleryLabel": "Tool gallery",
"empty": "No matching tools found.",
"loading": "loading inventory",
"columnTool": "Tool",
"columnCategory": "Category",
"columnZone": "Zone",
"columnTraining": "Training",
"trainingBeginner": "Beginner",
"trainingIntermediate": "Intermediate",
"trainingAdvanced": "Advanced"
},
"detail": {
"breadcrumbTools": "Tools",
"breadcrumbInventory": "Inventory",
"toolStatusLabel": "Tool status",
"trainingChip": "{level} training",
"ppeRequired": "PPE Required",
"viewSafetyDoc": "View Safety Doc",
"viewSop": "View SOP",
"atAGlanceLabel": "At a glance",
"materials": "Materials",
"contactStaff": "Contact MakerLab staff",
"safetyAccess": "Safety & Access",
"ppeNotice": "PPE must be worn before use. Review posted guidelines.",
"emergencyStop": "Emergency Stop",
"emergencyStopFallback": "Follow posted lab guidance and notify staff in an emergency.",
"useRestrictions": "Use Restrictions",
"useRestrictionsFallback": "Open to all trained MakerLab users during lab hours.",
"documentsResources": "Documents & Resources",
"openResource": "Open resource",
"resourceFallback": "Resource",
"noDocuments": "No documents linked yet.",
"details": "Details",
"category": "Category",
"location": "Location",
"trainingRow": "Training",
"mapId": "Map ID",
"tags": "Tags",
"notes": "Notes",
"physicalMachines": "Physical Machines",
"unit": "Unit",
"status": "Status",
"condition": "Condition",
"serial": "Serial",
"acquired": "Acquired",
"notesTips": "Notes & Tips",
"backToTools": "‹ Back to all tools"
},
"projects": {
"eyebrow": "Projects",
"title": "Coming soon",
"body": "A gallery of MakerLab projects is in the works — student builds, course outcomes, and staff-curated showcases. For now, browse the tool catalog to see what's available in the lab.",
"browseTools": "Browse tools"
},
"about": {
"eyebrow": "About",
"title": "A student-led catalog for the Cornell Tech MakerLab.",
"intro": "MakerLab Tools is a digital inventory and discovery system for the Cornell Tech MakerLab. It helps students browse equipment, find safety documentation, and identify which physical machines are available in the lab before they walk over.",
"origin": "The project began as a weekend prototype and grew into the current Notion-backed catalog. Tools, units, locations, and resources all live in Notion and feed the site through a cached read-only API layer — so staff and student volunteers can curate content without touching code.",
"builtByHeading": "Built by",
"builtByBody": "Isaac Steinberg, Johnson Cornell Tech MBA '26. Built as a student-led project to make it easier for the MakerLab community to find and safely use the lab's equipment.",
"howItWorksHeading": "How it works",
"howItWorksBody": "The front end is a Next.js 16 app deployed on Vercel. The Notion API serves as the source of truth for the catalog, with a per-request cache layer so the page stays fast under load. Tool images are mirrored locally so they render reliably even when upstream signed URLs expire.",
"feedbackBody": "If you spot a mistake or have a suggestion, talk to the MakerLab staff — flagged corrections are reviewed and updated in Notion.",
"browseTools": "Browse tools"
},
"chat": {
"openAria": "Open MakerLab assistant",
"title": "MAKERLAB ASSISTANT",
"newChatAria": "Start new chat",
"newChatTitle": "Start new chat",
"closeAria": "Close assistant",
"closeTitle": "Close (keeps conversation)",
"closeScrimAria": "Close MakerLab assistant",
"greetingTool": "Ask about this tool — I have its specs, materials, and resource links.",
"greetingGeneral": "How can I help you today?",
"suggestionFindMachine": "Find a machine for a project",
"suggestionTraining": "Check training requirements",
"suggestionSafety": "Ask about safety or policy",
"composerPlaceholder": "Ask the lab console...",
"composerAria": "Ask the lab console",
"sendAria": "Send",
"attachAria": "Attach photos",
"attachTitle": "Attach photos",
"removePhotoAria": "Remove {name}",
"uploadingAria": "Uploading photo",
"onlyImages": "Only image files are supported.",
"uploadFailed": "Photo upload failed",
"toolRunningAria": "Tool running",
"typingAria": "Assistant is typing",
"readingManualsAria": "Reading manuals",
"reading": "Reading: {titles}…",
"error": "Something went wrong. Try again.",
"lookingUpUnit": "🔍 Looking up unit details…",
"filingTicket": "📝 Filing maintenance ticket…",
"working": "Working on it…"
}
}
124 changes: 124 additions & 0 deletions v5/messages/es.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
{
"nav": {
"tools": "HERRAMIENTAS",
"projects": "PROYECTOS",
"about": "ACERCA DE",
"brandTagline": "// CORNELL TECH",
"primaryNavLabel": "Navegación principal",
"utilityControlsLabel": "Controles de utilidad",
"themeToggleAria": "Alternar tema de color (sistema → claro → oscuro)",
"themeToggleTitle": "Alternar tema de color",
"languageLabel": "Idioma",
"languageSelectorAria": "Seleccionar idioma"
},
"status": {
"labStatusLabel": "Estado del laboratorio",
"toolsInInventory": "{count} HERRAMIENTAS EN INVENTARIO"
},
"gallery": {
"title": "HERRAMIENTAS // MÁQUINAS",
"searchPlaceholder": "buscar en el inventario...",
"searchAria": "Buscar en el inventario",
"category": "CATEGORÍA:",
"training": "FORMACIÓN:",
"viewModeLabel": "Modo de vista",
"grid": "[ CUADRÍCULA ]",
"table": "[ TABLA ]",
"toolGalleryLabel": "Galería de herramientas",
"empty": "No se encontraron herramientas coincidentes.",
"loading": "cargando inventario",
"columnTool": "Herramienta",
"columnCategory": "Categoría",
"columnZone": "Zona",
"columnTraining": "Formación",
"trainingBeginner": "Principiante",
"trainingIntermediate": "Intermedio",
"trainingAdvanced": "Avanzado"
},
"detail": {
"breadcrumbTools": "Herramientas",
"breadcrumbInventory": "Inventario",
"toolStatusLabel": "Estado de la herramienta",
"trainingChip": "formación {level}",
"ppeRequired": "EPP obligatorio",
"viewSafetyDoc": "Ver documento de seguridad",
"viewSop": "Ver procedimiento (SOP)",
"atAGlanceLabel": "De un vistazo",
"materials": "Materiales",
"contactStaff": "Contactar al personal del MakerLab",
"safetyAccess": "Seguridad y acceso",
"ppeNotice": "Se debe usar el EPP antes de utilizar el equipo. Consulta las pautas publicadas.",
"emergencyStop": "Parada de emergencia",
"emergencyStopFallback": "Sigue las indicaciones del laboratorio y avisa al personal en caso de emergencia.",
"useRestrictions": "Restricciones de uso",
"useRestrictionsFallback": "Abierto a todos los usuarios capacitados del MakerLab durante el horario del laboratorio.",
"documentsResources": "Documentos y recursos",
"openResource": "Abrir recurso",
"resourceFallback": "Recurso",
"noDocuments": "Aún no hay documentos vinculados.",
"details": "Detalles",
"category": "Categoría",
"location": "Ubicación",
"trainingRow": "Formación",
"mapId": "ID de mapa",
"tags": "Etiquetas",
"notes": "Notas",
"physicalMachines": "Máquinas físicas",
"unit": "Unidad",
"status": "Estado",
"condition": "Condición",
"serial": "Número de serie",
"acquired": "Adquirido",
"notesTips": "Notas y consejos",
"backToTools": "‹ Volver a todas las herramientas"
},
"projects": {
"eyebrow": "Proyectos",
"title": "Próximamente",
"body": "Una galería de proyectos del MakerLab está en marcha: creaciones de estudiantes, resultados de cursos y muestras seleccionadas por el personal. Por ahora, explora el catálogo de herramientas para ver lo que hay disponible en el laboratorio.",
"browseTools": "Explorar herramientas"
},
"about": {
"eyebrow": "Acerca de",
"title": "Un catálogo dirigido por estudiantes para el Cornell Tech MakerLab.",
"intro": "MakerLab Tools es un sistema digital de inventario y descubrimiento para el Cornell Tech MakerLab. Ayuda a los estudiantes a explorar el equipo, encontrar documentación de seguridad e identificar qué máquinas físicas están disponibles en el laboratorio antes de acudir.",
"origin": "El proyecto comenzó como un prototipo de fin de semana y creció hasta convertirse en el catálogo actual respaldado por Notion. Las herramientas, unidades, ubicaciones y recursos viven en Notion y alimentan el sitio a través de una capa de API de solo lectura con caché, de modo que el personal y los estudiantes voluntarios pueden gestionar el contenido sin tocar el código.",
"builtByHeading": "Creado por",
"builtByBody": "Isaac Steinberg, Johnson Cornell Tech MBA '26. Construido como un proyecto dirigido por estudiantes para facilitar que la comunidad del MakerLab encuentre y use de forma segura el equipo del laboratorio.",
"howItWorksHeading": "Cómo funciona",
"howItWorksBody": "El front end es una aplicación Next.js 16 desplegada en Vercel. La API de Notion sirve como fuente de verdad para el catálogo, con una capa de caché por solicitud para que la página se mantenga rápida bajo carga. Las imágenes de las herramientas se replican localmente para que se muestren de forma fiable incluso cuando expiran las URL firmadas de origen.",
"feedbackBody": "Si detectas un error o tienes una sugerencia, habla con el personal del MakerLab: las correcciones marcadas se revisan y se actualizan en Notion.",
"browseTools": "Explorar herramientas"
},
"chat": {
"openAria": "Abrir el asistente del MakerLab",
"title": "ASISTENTE MAKERLAB",
"newChatAria": "Iniciar nuevo chat",
"newChatTitle": "Iniciar nuevo chat",
"closeAria": "Cerrar asistente",
"closeTitle": "Cerrar (conserva la conversación)",
"closeScrimAria": "Cerrar el asistente del MakerLab",
"greetingTool": "Pregúntame sobre esta herramienta: tengo sus especificaciones, materiales y enlaces a recursos.",
"greetingGeneral": "¿En qué puedo ayudarte hoy?",
"suggestionFindMachine": "Encontrar una máquina para un proyecto",
"suggestionTraining": "Consultar requisitos de formación",
"suggestionSafety": "Preguntar sobre seguridad o normas",
"composerPlaceholder": "Pregunta a la consola del laboratorio...",
"composerAria": "Pregunta a la consola del laboratorio",
"sendAria": "Enviar",
"attachAria": "Adjuntar fotos",
"attachTitle": "Adjuntar fotos",
"removePhotoAria": "Quitar {name}",
"uploadingAria": "Subiendo foto",
"onlyImages": "Solo se admiten archivos de imagen.",
"uploadFailed": "Error al subir la foto",
"toolRunningAria": "Herramienta en ejecución",
"typingAria": "El asistente está escribiendo",
"readingManualsAria": "Leyendo manuales",
"reading": "Leyendo: {titles}…",
"error": "Algo salió mal. Inténtalo de nuevo.",
"lookingUpUnit": "🔍 Buscando detalles de la unidad…",
"filingTicket": "📝 Registrando ticket de mantenimiento…",
"working": "Trabajando en ello…"
}
}
Loading