diff --git a/Dockerfile b/Dockerfile index adcfdb7df..6623a8cc2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ ARG NODE_IMAGE_VERSION="22-alpine" ARG PNPM_VERSION="11.21.0" # Keep in sync with the prisma/@prisma/* versions in package.json -ARG PRISMA_VERSION="7.9.1" +ARG PRISMA_VERSION="7.10.0" # Install dependencies only when needed FROM node:${NODE_IMAGE_VERSION} AS deps diff --git a/public/intl/messages/ka-GE.json b/public/intl/messages/ka-GE.json new file mode 100644 index 000000000..6c8f81e1c --- /dev/null +++ b/public/intl/messages/ka-GE.json @@ -0,0 +1,515 @@ +{ + "label": { + "access-code": "წვდომის კოდი", + "account": "ანგარიში", + "action": "მოქმედება", + "actions": "მოქმედებები", + "activity": "აქტივობა", + "add": "დამატება", + "add-board": "დაფის დამატება", + "add-description": "აღწერის დამატება", + "add-link": "ბმულის დამატება", + "add-member": "წევრის დამატება", + "add-pixel": "პიქსელის დამატება", + "add-step": "ნაბიჯის დამატება", + "add-website": "ვებსაიტის დამატება", + "admin": "ადმინისტრატორი", + "affiliate": "პარტნიორი", + "after": "შემდეგ", + "all": "ყველა", + "all-time": "მთელი პერიოდი", + "analysis": "ანალიზი", + "analytics": "ანალიტიკა", + "application": "აპლიკაცია", + "apply": "გამოყენება", + "attribution": "ატრიბუცია", + "attribution-description": "იხილეთ, როგორ ურთიერთობენ მომხმარებლები თქვენს მარკეტინგთან და რა განაპირობებს კონვერტაციებს.", + "audience": "აუდიტორია", + "average": "საშუალო", + "back": "უკან", + "before": "მანამდე", + "behavior": "ქცევა", + "block-selector": "ბლოკის ამრჩევი", + "boards": "დაფები", + "board-type": "დაფის ტიპი", + "bounce-rate": "უარის მაჩვენებელი", + "breakdown": "დაშლა", + "browser": "ბრაუზერი", + "browsers": "ბრაუზერები", + "campaign": "კამპანია", + "campaigns": "კამპანიები", + "cancel": "გაუქმება", + "close": "დახურვა", + "change-password": "პაროლის შეცვლა", + "channel": "არხი", + "channels": "არხები", + "chart": "დიაგრამა", + "cities": "ქალაქები", + "city": "ქალაქი", + "clear-all": "ყველას გასუფთავება", + "cls": "CLS", + "cohort": "კოჰორტა", + "cohorts": "კოჰორტები", + "compare": "შედარება", + "compare-dates": "თარიღების შედარება", + "confirm": "დადასტურება", + "confirm-password": "პაროლის დადასტურება", + "contains": "შეიცავს", + "regex-match": "ემთხვევა რეგულარულ გამოსახულებას", + "regex-not-match": "არ ემთხვევა რეგულარულ გამოსახულებას", + "content": "კონტენტი", + "continue": "გაგრძელება", + "conversion": "კონვერტაცია", + "conversion-rate": "კონვერტაციის მაჩვენებელი", + "conversion-step": "კონვერტაციის ნაბიჯი", + "count": "რაოდენობა", + "countries": "ქვეყნები", + "country": "ქვეყანა", + "create": "შექმნა", + "create-report": "ანგარიშის შექმნა", + "create-team": "გუნდის შექმნა", + "create-user": "მომხმარებლის შექმნა", + "created": "შექმნილია", + "created-by": "შემქმნელი", + "criteria": "კრიტერიუმები", + "cumulative": "კუმულაციური", + "currency": "ვალუტა", + "current": "მიმდინარე", + "current-password": "მიმდინარე პაროლი", + "custom-range": "მორგებული დიაპაზონი", + "dashboard": "დაფა", + "data": "მონაცემები", + "date": "თარიღი", + "date-range": "თარიღის დიაპაზონი", + "day": "დღე", + "default-date-range": "თარიღის ნაგულისხმევი დიაპაზონი", + "delete": "წაშლა", + "delete-report": "ანგარიშის წაშლა", + "delete-team": "გუნდის წაშლა", + "delete-user": "მომხმარებლის წაშლა", + "delete-website": "ვებსაიტის წაშლა", + "description": "აღწერა", + "desktop": "დესკტოპი", + "destination-url": "დანიშნულების URL", + "details": "დეტალები", + "device": "მოწყობილობა", + "devices": "მოწყობილობები", + "direct": "პირდაპირი", + "dismiss": "დახურვა", + "distinct-id": "უნიკალური ID", + "documentation": "დოკუმენტაცია", + "does-not-contain": "არ შეიცავს", + "does-not-include": "არ მოიცავს", + "doest-not-exist": "არ არსებობს", + "domain": "დომენი", + "download": "ჩამოტვირთვა", + "dropoff": "დანაკარგი", + "duration": "ხანგრძლივობა", + "min-duration-seconds": "მინიმალური ხანგრძლივობა (წამი)", + "edit": "რედაქტირება", + "design": "დიზაინი", + "edit-member": "წევრის რედაქტირება", + "email": "ელფოსტა", + "enable-share-url": "გაზიარების URL-ის ჩართვა", + "end-step": "დასრულების ნაბიჯი", + "entry": "შესვლის გვერდი", + "environment": "გარემო", + "event": "მოვლენა", + "event-data": "მოვლენის მონაცემები", + "event-properties": "მოვლენის თვისებები", + "event-name": "მოვლენის სახელი", + "events": "მოვლენები", + "exclude-bounce": "უარის გამორიცხვა", + "exists": "არსებობს", + "exit": "გასვლის გვერდი", + "false": "მცდარი", + "fcp": "FCP", + "field": "ველი", + "fields": "ველები", + "filter": "ფილტრი", + "filter-combined": "კომბინირებული", + "filter-raw": "ნედლი", + "filters": "ფილტრები", + "filters-enabled": "ფილტრები ჩართულია", + "property-filter": "თვისების ფილტრი", + "activity-by-property": "აქტივობა თვისების მიხედვით", + "add-note": "შენიშვნის დამატება", + "first-click": "პირველი დაწკაპუნება", + "first-seen": "პირველად ნანახი", + "funnel": "ძაბრი", + "funnel-description": "გაეცანით მომხმარებლების კონვერტაციისა და დანაკარგის მაჩვენებელს.", + "funnels": "ძაბრები", + "goal": "მიზანი", + "goals": "მიზნები", + "good": "კარგი", + "goals-description": "აკონტროლეთ თქვენი მიზნები გვერდების ნახვებისა და მოვლენებისთვის.", + "greater-than": "მეტია, ვიდრე", + "greater-than-equals": "მეტია ან ტოლია", + "grouped": "დაჯგუფებული", + "growth": "ზრდა", + "heatmap": "სითბური რუკა", + "heatmap-description": "იხილეთ, სად აკლიკებენ ვიზიტორები და რამდენად შორს ჩამოსქროლავენ თქვენს გვერდებზე.", + "heatmaps": "სითბური რუკები", + "hostname": "ჰოსტის სახელი", + "hour": "საათი", + "includes": "მოიცავს", + "insight": "მიგნება", + "insights": "მიგნებები", + "insights-description": "სეგმენტებისა და ფილტრების გამოყენებით უფრო ღრმად შეისწავლეთ თქვენი მონაცემები.", + "inp": "INP", + "invalid-url": "არასწორი URL", + "is": "არის", + "is-false": "მცდარია", + "is-not": "არ არის", + "is-not-set": "დაყენებული არ არის", + "is-set": "დაყენებულია", + "is-true": "ჭეშმარიტია", + "join": "შეერთება", + "join-team": "გუნდში გაწევრიანება", + "journey": "მომხმარებლის გზა", + "journey-description": "გაეცანით, როგორ გადაადგილდებიან მომხმარებლები თქვენს ვებსაიტზე.", + "journeys": "მომხმარებლის გზები", + "language": "ენა", + "languages": "ენები", + "laptop": "ლეპტოპი", + "last-click": "ბოლო დაწკაპუნება", + "last-days": "ბოლო {x} დღე", + "last-hours": "ბოლო {x} საათი", + "last-months": "ბოლო {x} თვე", + "last-seen": "ბოლოს ნანახი", + "lcp": "LCP", + "leave": "გასვლა", + "leave-team": "გუნდიდან გასვლა", + "less-than": "ნაკლებია, ვიდრე", + "less-than-equals": "ნაკლებია ან ტოლია", + "link": "ბმული", + "links": "ბმულები", + "location": "მდებარეობა", + "login": "შესვლა", + "llm": "LLM", + "logout": "გასვლა", + "manage": "მართვა", + "manager": "მმართველი", + "mask-level": "ნიღბვის დონე", + "max": "მაქსიმალური", + "max-duration": "მაქსიმალური ხანგრძლივობა", + "match": "დამთხვევა", + "match-all": "ყველას დამთხვევა", + "match-any": "რომელიმეს დამთხვევა", + "maximize": "მაქსიმიზაცია", + "medium": "საშუალო", + "member": "წევრი", + "members": "წევრები", + "min": "მინიმალური", + "minute": "წუთი", + "mobile": "მობილური", + "model": "მოდელი", + "month": "თვე", + "more": "მეტი", + "my-account": "ჩემი ანგარიში", + "my-websites": "ჩემი ვებსაიტები", + "name": "სახელი", + "needs-improvement": "გასაუმჯობესებელია", + "new-password": "ახალი პაროლი", + "none": "არცერთი", + "number-of-records": "{x} {x, plural, one {ჩანაწერი} other {ჩანაწერი}}", + "ok": "კარგი", + "online": "ონლაინ", + "open": "შერეული", + "organic-search": "ორგანული ძიება", + "organic-shopping": "ორგანული შოპინგი", + "organic-social": "ორგანული სოციალური", + "organic-video": "ორგანული ვიდეო", + "os": "OS", + "other": "სხვა", + "overview": "მიმოხილვა", + "owner": "მფლობელი", + "page": "გვერდი", + "page-of": "გვერდი {current} / {total}-დან", + "page-views": "გვერდების ნახვები", + "pageTitle": "გვერდის სათაური", + "period": "პერიოდი", + "pages": "გვერდები", + "paid-ads": "ფასიანი რეკლამა", + "paid-search": "ფასიანი ძიება", + "paid-shopping": "ფასიანი შოპინგი", + "paid-social": "ფასიანი სოციალური", + "paid-video": "ფასიანი ვიდეო", + "password": "პაროლი", + "path": "ბილიკი", + "paths": "ბილიკები", + "performance": "წარმადობა", + "pixel": "პიქსელი", + "pixels": "პიქსელები", + "poor": "ცუდი", + "powered-by": "მუშაობს {name}-ზე", + "preferences": "პარამეტრები", + "previous": "წინა", + "previous-period": "წინა პერიოდი", + "previous-year": "წინა წელი", + "profile": "პროფილი", + "profiles": "პროფილები", + "properties": "თვისებები", + "property": "თვისება", + "queries": "მოთხოვნები", + "query": "მოთხოვნა", + "query-parameters": "მოთხოვნის პარამეტრები", + "realtime": "რეალურ დროში", + "recorded": "ჩაწერილი", + "referral": "რეფერალი", + "referrer": "რეფერერი", + "referrers": "რეფერები", + "refresh": "განახლება", + "regenerate": "ხელახლა გენერირება", + "region": "რეგიონი", + "regions": "რეგიონები", + "remaining": "დარჩენილი", + "remove": "წაშლა", + "remove-member": "წევრის წაშლა", + "play": "დაკვრა", + "replay": "სესსის ჩანაწერი", + "replay-id": "სესსის ჩანაწერის ID", + "recorder-code": "ჩამწერის კოდი", + "replay-enabled": "სესსის ჩანაწერი ჩართულია", + "replays": "სესიის ჩანაწერები", + "reports": "ანგარიშები", + "required": "სავალდებულო", + "reset": "განულება", + "reset-website": "ვებსაიტის განულება", + "retention": "შენარჩუნება", + "retention-days": "შენარჩუნების დღეები", + "retention-description": "გაზომეთ, რამდენად ხშირად ბრუნდებიან მომხმარებლები თქვენს ვებსაიტზე.", + "revenue": "შემოსავალი", + "revenue-description": "შეისწავლეთ თქვენი შემოსავლის მონაცემები და მომხმარებლების ხარჯვა.", + "role": "როლი", + "run-query": "მოთხოვნის გაშვება", + "save": "შენახვა", + "save-cohort": "კოჰორტის შენახვა", + "save-replay": "სესიის ჩანაწერის შენახვა", + "save-segment": "სეგმენტის შენახვა", + "sample-rate": "ნიმუშის სიხშირე", + "sample-size": "ნიმუშის ზომა", + "screen": "ეკრანი", + "screens": "ეკრანები", + "search": "ძიება", + "segment": "სეგმენტი", + "segments": "სეგმენტები", + "select": "არჩევა", + "select-link": "ბმულის არჩევა", + "select-pixel": "პიქსელის არჩევა", + "select-date": "თარიღის არჩევა", + "select-filter": "ფილტრის არჩევა", + "select-role": "როლის არჩევა", + "select-component": "კომპონენტის არჩევა", + "select-event": "მოვლენის არჩევა", + "select-website": "ვებსაიტის არჩევა", + "session": "სესია", + "session-data": "სესიის თვისებები", + "sessions": "სესიები", + "settings": "პარამეტრები", + "share": "გაზიარება", + "share-url": "გაზიარების URL", + "single-day": "ერთი დღე", + "slug": "სლაგი", + "sms": "SMS", + "source": "წყარო", + "sources": "წყაროები", + "start-step": "დაწყების ნაბიჯი", + "steps": "ნაბიჯები", + "sum": "ჯამი", + "support": "მხარდაჭერა", + "switch-account": "ანგარიშის გადართვა", + "switch-to-card-view": "ბარათების ხედზე გადართვა", + "switch-to-table-view": "ცხრილის ხედზე გადართვა", + "table": "ცხრილი", + "tablet": "ტაბლეტი", + "tag": "ტეგი", + "tags": "ტეგები", + "team": "გუნდი", + "team-id": "გუნდის ID", + "team-manager": "გუნდის მმართველი", + "team-member": "გუნდის წევრი", + "team-name": "გუნდის სახელი", + "team-owner": "გუნდის მფლობელი", + "team-settings": "გუნდის პარამეტრები", + "team-view-only": "გუნდის მხოლოდ ნახვა", + "team-websites": "გუნდის ვებსაიტები", + "teams": "გუნდები", + "term": "ტერმინი", + "terms": "ტერმინები", + "theme": "თემა", + "this-month": "ეს თვე", + "this-week": "ეს კვირა", + "this-year": "ეს წელი", + "timezone": "დროის სარტყელი", + "title": "სათაური", + "today": "დღეს", + "toggle-charts": "დიაგრამების გადართვა", + "total": "სულ", + "total-records": "ჩანაწერების ჯამი", + "tracking-code": "თრექინგის კოდი", + "traffic": "ტრაფიკი", + "transactions": "ტრანზაქციები", + "transfer": "გადაცემა", + "transfer-website": "ვებსაიტის გადაცემა", + "true": "ჭეშმარიტი", + "ttfb": "TTFB", + "type": "ტიპი", + "unique": "უნიკალური", + "unique-events": "უნიკალური მოვლენები", + "unique-visitors": "უნიკალური ვიზიტორები", + "aov": "AOV", + "arpu": "ARPU", + "uniqueCustomers": "უნიკალური მომხმარებლები", + "customers": "მომხმარებლები", + "note": "შენიშვნა", + "notes": "შენიშვნები", + "orders": "შეკვეთები", + "saved": "შენახული", + "unknown": "უცნობი", + "untitled": "უსათაურო", + "upgrade": "გეგმის გაუმჯობესება", + "update": "განახლება", + "url": "URL", + "user": "მომხმარებელი", + "username": "მომხმარებლის სახელი", + "users": "მომხმარებლები", + "utm": "UTM", + "utm-campaign": "UTM კამპანია", + "utm-content": "UTM კონტენტი", + "utm-description": "თვალყური ადევნეთ თქვენს კამპანიებს UTM პარამეტრების საშუალებით.", + "utm-medium": "UTM მედიუმი", + "utm-source": "UTM წყარო", + "utm-term": "UTM ტერმინი", + "value": "მნიშვნელობა", + "version": "ვერსია", + "view": "ხედი", + "view-details": "დეტალების ნახვა", + "view-only": "მხოლოდ ნახვა", + "views": "ნახვები", + "views-per-visit": "ნახვები ვიზიტზე", + "visit-duration": "ვიზიტის ხანგრძლივობა", + "visitors": "ვიზიტორები", + "visits": "ვიზიტები", + "website": "ვებსაიტი", + "website-id": "ვებსაიტის ID", + "websites": "ვებსაიტები", + "window": "ფანჯარა", + "yesterday": "გუშინ", + "security": "უსაფრთხოება", + "two-factor-auth": "ორფაქტორიანი ავთენტიფიკაცია", + "two-factor-setup-title": "ორფაქტორიანი ავთენტიფიკაციის დაყენება", + "two-factor-step1": "ნაბიჯი 1", + "two-factor-step2": "ნაბიჯი 2", + "two-factor-scan-qr": "QR კოდის სკანირება", + "two-factor-cant-scan": "QR კოდის სკანირება ვერ ხერხდება?", + "two-factor-manual-entry": "ამის ნაცვლად შეიყვანეთ ეს საიდუმლო:", + "two-factor-copy-code": "კოდის კოპირება", + "two-factor-code-copied": "კოპირებულია!", + "two-factor-get-code": "დადასტურების კოდის მიღება", + "two-factor-enter-code": "შეიყვანეთ დადასტურების კოდი", + "two-factor-use-backup": "ამის ნაცვლად გამოიყენეთ სარეზერვო კოდი", + "two-factor-save-backup-codes": "შეინახეთ თქვენი სარეზერვო კოდები", + "two-factor-download-codes": "კოდების ჩამოტვირთვა", + "two-factor-saved-codes": "ჩემი სარეზერვო კოდები შენახულია", + "two-factor-backup-file-title": "Umami - ორფაქტორიანი ავთენტიფიკაციის სარეზერვო კოდები", + "two-factor-success-title": "ორფაქტორიანი ავთენტიფიკაცია ჩართულია", + "two-factor-enable": "2FA-ის ჩართვა", + "two-factor-disable": "2FA-ის გამორთვა", + "two-factor-disable-title": "ორფაქტორიანი ავთენტიფიკაციის გამორთვა", + "two-factor-status-not-configured": "კონფიგურირებული არ არის", + "two-factor-active": "აქტიური", + "two-factor-require-global": "2FA-ის მოთხოვნა ყველა მომხმარებლისთვის", + "two-factor-require-user": "2FA-ის მოთხოვნა ამ მომხმარებლისთვის", + "two-factor-require-team": "2FA-ის მოთხოვნა ამ გუნდის ყველა წევრისთვის", + "two-factor-reset": "2FA-ის საწყის მდგომარეობაში დაბრუნება", + "two-factor-global-active-tooltip": "გლობალური 2FA ჩართულია", + "two-factor-verify": "დადასტურება", + "two-factor-login": "ორფაქტორიანი ავთენტიფიკაცია" + }, + "message": { + "action-confirmation": "დასადასტურებლად ქვემოთ მოცემულ ველში ჩაწერეთ {confirmation}.", + "active-users": "მიმდინარე {x} {x, plural, one {სტუმარი} other {სტუმარი}}", + "bad-request": "არასწორი მოთხოვნა", + "collected-data": "შეგროვებული მონაცემები", + "confirm-delete": "ნამდვილად გსურთ {target}-ის წაშლა?", + "confirm-leave": "ნამდვილად გსურთ {target}-ის დატოვება?", + "confirm-remove": "ნამდვილად გსურთ {target}-ის წაშლა?", + "confirm-reset": "ნამდვილად გსურთ {target}-ის საწყის მდგომარეობაში დაბრუნება?", + "delete-team-warning": "გუნდის წაშლა გუნდის ყველა ვებსაიტსაც წაშლის.", + "delete-website-warning": "ვებსაიტის ყველა მონაცემი წაიშლება.", + "error": "დაფიქსირდა შეცდომა.", + "empty-dashboard": "თქვენი დაფა ცარიელია. პირველი კომპონენტის დასამატებლად დააწკაპუნეთ „დიზაინზე“.", + "event-log": "{event} — {url}", + "forbidden": "აკრძალულია", + "go-to-settings": "პარამეტრებზე გადასვლა", + "incorrect-username-password": "მომხმარებლის სახელი ან პაროლი არასწორია.", + "invalid-domain": "არასწორი დომენი. არ მიუთითოთ http/https.", + "invalid-value": "არასწორი მნიშვნელობა", + "min-password-length": "მინიმალური სიგრძეა {n} სიმბოლო", + "new-version-available": "Umami-ის ახალი ვერსია {version} ხელმისაწვდომია!", + "no-data-available": "მონაცემები ხელმისაწვდომი არ არის.", + "no-event-data": "მოვლენის მონაცემები ხელმისაწვდომი არ არის.", + "no-match-password": "პაროლები არ ემთხვევა.", + "no-results-found": "შედეგები ვერ მოიძებნა.", + "no-team-websites": "ამ გუნდს ვებსაიტები არ აქვს.", + "no-teams": "არცერთი გუნდი არ შეგიქმნიათ.", + "no-users": "მომხმარებლები არ არიან.", + "no-websites-configured": "კონფიგურირებული ვებსაიტები არ გაქვთ.", + "not-found": "ვერ მოიძებნა", + "nothing-selected": "არაფერია არჩეული.", + "page-not-found": "გვერდი ვერ მოიძებნა", + "reset-website": "ვებსაიტის საწყის მდგომარეობაში დასაბრუნებლად ქვემოთ მოცემულ ველში დასადასტურებლად ჩაწერეთ {confirmation}.", + "reset-website-warning": "ამ ვებსაიტის ყველა სტატისტიკა წაიშლება, თუმცა პარამეტრები უცვლელი დარჩება.", + "saved": "შენახულია.", + "select-board-entity-first": "ჯერ აირჩიეთ ვებსაიტი, პიქსელი ან ბმული.", + "select-component-preview": "წინასწარ სანახავად აირჩიეთ კომპონენტი", + "select-website-first": "ჯერ აირჩიეთ ვებსაიტი", + "sever-error": "სერვერის შეცდომა", + "share-url": "თქვენი ვებსაიტის სტატისტიკა საჯაროდ ხელმისაწვდომია შემდეგ URL-ზე:", + "team-already-member": "თქვენ უკვე ხართ გუნდის წევრი.", + "team-not-found": "გუნდი ვერ მოიძებნა.", + "team-websites-info": "გუნდის ვებსაიტების ნახვა გუნდის ნებისმიერ წევრს შეუძლია.", + "tracking-code": "ამ ვებსაიტის სტატისტიკის სათვალთვალოდ ჩასვით შემდეგი კოდი თქვენი HTML-ის „
...“ სექციაში.", + "transfer-team-website-to-user": "გსურთ ამ ვებსაიტის თქვენს ანგარიშზე გადმოცემა?", + "transfer-user-website-to-team": "აირჩიეთ გუნდი, რომელსაც ეს ვებსაიტი გადაეცემა.", + "transfer-website": "გადაეცით ვებსაიტის მფლობელობა თქვენს ანგარიშს ან სხვა გუნდს.", + "triggered-event": "გააქტიურებული მოვლენა", + "unauthorized": "ავტორიზაცია არ არის გავლილი", + "user-deleted": "მომხმარებელი წაიშალა.", + "replay-min-duration-description": "აჩვენეთ მხოლოდ ამ ხანგრძლივობის ან უფრო ხანგრძლივი სესიის ჩანაწერები.", + "viewed-page": "ნანახი გვერდი", + "upgrade-required": "ამ ფუნქციისთვის საჭიროა {plan} გეგმის გამოწერა.", + "visitor-log": "სტუმარი {country}-დან, იყენებს {browser}-ს {os} {device}-ზე", + "two-factor-setup-description": "ყოველი შესვლისას, პაროლთან ერთად, ერთჯერადი კოდის გენერირებისა და გამოყენებისთვის ავტენტიფიკატორის აპს გამოიყენებთ.", + "two-factor-setup-required-description": "Umami-ზე წვდომისთვის საჭიროა ორფაქტორიანი ავთენტიფიკაცია (2FA).", + "two-factor-step1-description": "დაასკანერეთ ქვემოთ მოცემული QR კოდი ან ხელით შეიყვანეთ საიდუმლო გასაღები თქვენს ავტენტიფიკატორის აპში.", + "two-factor-step2-description": "შეიყვანეთ 6-ნიშნა კოდი, რომელსაც თქვენს ავტენტიფიკატორის აპში ხედავთ.", + "two-factor-enabled-description": "თქვენი ანგარიში ახლა დაცულია ორფაქტორიანი ავთენტიფიკაციით. ამიერიდან ყოველი შესვლისას ავტენტიფიკატორის აპიდან კოდის შეყვანა დაგჭირდებათ.", + "two-factor-backup-description": "თუ ავტენტიფიკატორის აპზე წვდომას დაკარგავთ, შესასვლელად შეგიძლიათ გამოიყენოთ ერთ-ერთი ერთჯერადი სარეზერვო კოდი. შეინახეთ ისინი უსაფრთხო ადგილას — ისინი ხელახლა აღარ გამოჩნდება.", + "two-factor-backup-codes-once": "კოდები უსაფრთხოდ შეინახეთ. თითოეული კოდის გამოყენება მხოლოდ ერთხელ შეიძლება.", + "two-factor-login-description": "შეიყვანეთ თქვენი ავტენტიფიკატორის აპიდან მიღებული 6-ნიშნა კოდი.", + "two-factor-disable-description": "დასადასტურებლად შეიყვანეთ თქვენი პაროლი და ავტენტიფიკატორის აპიდან მიღებული დადასტურების კოდი.", + "two-factor-required-message": "თქვენი ანგარიშისთვის საჭიროა ორფაქტორიანი ავთენტიფიკაცია და მისი გამორთვა შეუძლებელია. დახმარებისთვის დაუკავშირდით ადმინისტრატორს.", + "two-factor-override-note": "გლობალური 2FA-ის ჩართვისას მომხმარებლისა და გუნდის მიხედვით განსაზღვრული 2FA-ის პარამეტრები უგულებელყოფილია.", + "two-factor-admin-global-description": "მოითხოვეთ ყველა მომხმარებლისგან ორფაქტორიანი ავთენტიფიკაციის დაყენება შემდეგი შესვლისას. მომხმარებლებს, რომლებსაც 2FA ჯერ არ აქვთ კონფიგურირებული, მის დაყენებას Umami-ზე წვდომამდე მოსთხოვენ.", + "two-factor-require-user-description": "ჩართვის შემთხვევაში, ამ მომხმარებელს შემდეგი შესვლისას 2FA-ის დაყენებას მოსთხოვენ, თუ ეს ჯერ არ გაუკეთებია.", + "two-factor-require-team-description": "ჩართვის შემთხვევაში, ამ გუნდის ყველა წევრს შემდეგი შესვლისას 2FA-ის დაყენებას მოსთხოვენ, თუ ეს ჯერ არ გაუკეთებიათ.", + "two-factor-user-description": "დაამატეთ უსაფრთხოების დამატებითი ფენა თქვენს ანგარიშს. ყოველი შესვლისას დაგჭირდებათ თქვენი პაროლი და ავტენტიფიკატორის აპიდან მიღებული კოდი.", + "two-factor-reset-description": "წაშალეთ ამ მომხმარებლის ორფაქტორიანი ავთენტიფიკაციის მიმდინარე კონფიგურაცია. თუ პოლიტიკა კვლავ მოითხოვს 2FA-ს, შემდეგი შესვლისას მას ახალი QR კოდის დასკანერება მოუწევს.", + "two-factor-error-invalid-code": "დადასტურების კოდი არასწორია. გთხოვთ, სცადოთ ხელახლა.", + "two-factor-error-missing-token": "ავთენტიფიკაციის ტოკენი აკლია.", + "two-factor-error-invalid-partial-token": "ავთენტიფიკაციის ტოკენი არასწორია ან ვადა გაუვიდა.", + "two-factor-error-invalid-backup-code": "სარეზერვო კოდი არასწორია.", + "two-factor-error-code-used": "ეს კოდი უკვე გამოყენებულია. დაელოდეთ შემდეგ კოდს.", + "two-factor-error-too-many-attempts": "წარუმატებელი მცდელობები მეტისმეტად ბევრია. თქვენი ანგარიში დროებით დაიბლოკა.", + "two-factor-error-disable-not-allowed": "ორფაქტორიანი ავთენტიფიკაცია საჭიროა და მისი გამორთვა შეუძლებელია.", + "two-factor-error-incorrect-password": "პაროლი არასწორია.", + "two-factor-error-already-enabled": "ორფაქტორიანი ავთენტიფიკაცია უკვე ჩართულია.", + "two-factor-error-not-enabled": "ორფაქტორიანი ავთენტიფიკაცია ჩართული არ არის.", + "two-factor-error-no-pending-setup": "ორფაქტორიანი ავთენტიფიკაციის დაუსრულებელი დაყენება ვერ მოიძებნა.", + "two-factor-error-not-configured": "ორფაქტორიანი ავთენტიფიკაცია ხელმისაწვდომი არ არის, რადგან სერვერს სწორი TWO_FACTOR_ENCRYPTION_KEY აკლია. დახმარებისთვის დაუკავშირდით ადმინისტრატორს.", + "two-factor-locked-message": "წარუმატებელი მცდელობები მეტისმეტად ბევრია. სცადეთ ხელახლა {time}-ზე.", + "two-factor-active-description": "თქვენი ანგარიში დაცულია ორფაქტორიანი ავთენტიფიკაციით. ყოველი შესვლისას საჭიროა კოდი თქვენი ავტენტიფიკატორის აპიდან." + } +} diff --git a/src/app/api/boards/route.ts b/src/app/api/boards/route.ts index 252b6d697..86e4e246a 100644 --- a/src/app/api/boards/route.ts +++ b/src/app/api/boards/route.ts @@ -75,6 +75,9 @@ export async function POST(request: Request) { ...body, type: normalizeBoardType(body.type), id: uuid(), + // The column is NOT NULL with no default, so an omitted description — + // which the request schema allows — reaches Prisma as undefined and throws. + description: body.description ?? '', parameters: body.parameters ?? {}, userId: !teamId ? auth.user.id : undefined, }; diff --git a/src/app/login/LoginForm.tsx b/src/app/login/LoginForm.tsx index d529e6f8c..f7d33e8a0 100644 --- a/src/app/login/LoginForm.tsx +++ b/src/app/login/LoginForm.tsx @@ -42,7 +42,12 @@ export function LoginForm() {