{ "common": { "error": "Σφάλμα: {message}", "serverOffline": "Ο διακομιστής OmniRoute είναι εκτός σύνδεσης. Εκκινήστε τον με: omniroute serve", "authRequired": "Απαιτείται έλεγχος ταυτότητας. Ορίστε το OMNIROUTE_API_KEY ή εκτελέστε: omniroute setup", "rateLimited": "Υπέρβαση ορίου αιτημάτων. Δοκιμάστε ξανά μετά από {seconds}δ.", "timeout": "Το αίτημα έληξε μετά από {ms}ms.", "success": "Ολοκληρώθηκε.", "yes": "ναι", "no": "όχι", "confirm": "Είστε σίγουροι; (ναι/όχι)", "dryRun": "[δοκιμαστική εκτέλεση] θα {action}", "cancelled": "Ακυρώθηκε.", "jsonOpt": "Έξοδος ως JSON", "yesOpt": "Παράλειψη προτροπής επιβεβαίωσης" }, "setup": { "title": "Εγκατάσταση OmniRoute", "passwordPrompt": "Κωδικός διαχειριστή", "providerPrompt": "Προεπιλεγμένος πάροχος (αφήστε κενό για παράλειψη)", "done": "Η εγκατάσταση ολοκληρώθηκε", "passwordSet": "Ο κωδικός διαχειριστή ρυθμίστηκε", "providerSet": "Ο πάροχος ρυθμίστηκε: {name}", "testingProvider": "Δοκιμή σύνδεσης παρόχου: {name}", "testPassed": "Η δοκιμή παρόχου πέρασε", "testFailed": "Η δοκιμή παρόχου απέτυχε: {error}", "loginEnabled": "Σύνδεση: ενεργοποιημένη (ο κωδικός ενημερώθηκε)", "loginDisabled": "Σύνδεση: απενεργοποιημένη", "providerInfo": "Πάροχος: {info}", "opencode": "Εγκατάσταση και ρύθμιση του ενσωματωμένου @omniroute/opencode-plugin για το OpenCode" }, "doctor": { "title": "OmniRoute Doctor", "dbOk": "Βάση δεδομένων: ΟΚ ({path})", "dbMissing": "Βάση δεδομένων: μη αρχικοποιημένη — εκτελέστε `omniroute setup`", "portOk": "Θύρα {port}: διαθέσιμη", "portConflict": "Θύρα {port}: χρησιμοποιείται από άλλη διεργασία", "encryptionOk": "Κλειδί κρυπτογράφησης: ρυθμισμένο", "encryptionMissing": "Λείπει το κλειδί κρυπτογράφησης — εκτελέστε `omniroute setup`", "allGood": "Όλοι οι έλεγχοι πέρασαν.", "warnings": "{count} προειδοποίηση(-εις) — δείτε παραπάνω." }, "providers": { "title": "Πάροχοι", "noProviders": "Δεν έχουν ρυθμιστεί πάροχοι. Εκτελέστε: omniroute setup", "testing": "Δοκιμή {name}...", "available": "{count} διαθέσιμος(-οι) πάροχος(-οι)", "connected": "Συνδέθηκε", "disconnected": "Αποσυνδέθηκε", "validationFailed": "Η επικύρωση απέτυχε: {error}", "metrics": { "description": "Εμφάνιση μετρικών απόδοσης παρόχου (καθυστέρηση, ποσοστό επιτυχίας, κόστος)", "provider": "Φιλτράρισμα κατά αναγνωριστικό παρόχου", "connection_id": "Φιλτράρισμα κατά αναγνωριστικό σύνδεσης", "period": "Χρονική περίοδος: 1h|6h|24h|7d|30d (προεπιλογή: 24h)", "metric": "Εστίαση σε συγκεκριμένο πεδίο μετρικής", "sort": "Ταξινόμηση κατά πεδίο (φθίνουσα σειρά)", "limit": "Μέγιστος αριθμός γραμμών (προεπιλογή: 50)", "watch": "Ανανέωση κάθε 5s (live λειτουργία)", "compare": "Αναγνωριστικά παρόχων διαχωρισμένα με κόμμα για σύγκριση δίπλα-δίπλα" }, "metric_single": { "description": "Λήψη μιας μεμονωμένης τιμής μετρικής για συγκεκριμένη σύνδεση" }, "rotate": { "description": "Εναλλαγή του upstream κλειδιού API για μια σύνδεση παρόχου", "newKeyOpt": "Νέα τιμή κλειδιού API (αποφύγετε: προτιμήστε --from-env)", "fromEnvOpt": "Ανάγνωση νέου κλειδιού από τη μεταβλητή περιβάλλοντος VAR", "oauthOpt": "Εκκίνηση ροής επαναπιστοποίησης OAuth", "skipTestOpt": "Παράλειψη ελέγχου συνδεσιμότητας μετά την εναλλαγή", "dryRunOpt": "Εκτύπωση των αλλαγών που θα γίνονταν χωρίς εγγραφή", "confirmPrompt": "Αντικατάσταση κλειδιού API για τη σύνδεση \"{name}\" ({id}); [y/N]", "dryRunResult": "[dry-run] Θα εναλλασσόταν το κλειδί για το \"{name}\" ({id}). Δεν έγιναν αλλαγές.", "oauthHint": "Σύνδεση OAuth — εκτελέστε: omniroute oauth {provider}", "envVarEmpty": "Η μεταβλητή περιβάλλοντος {var} δεν έχει οριστεί ή είναι κενή.", "success": "Το κλειδί εναλλάχθηκε για το \"{name}\". Εκτελέστε `providers test {id}` για επαλήθευση.", "testPassed": "Ο έλεγχος μετά την εναλλαγή ολοκληρώθηκε επιτυχώς.", "testFailed": "Ο έλεγχος μετά την εναλλαγή απέτυχε: {error}" }, "status": { "description": "Εμφάνιση κατάστασης υγείας κλειδιών για όλες τις συνδέσεις παρόχων (ηλικία, λήξη, χρόνος αναμονής)", "providerOpt": "Φιλτράρισμα κατά όνομα παρόχου", "header": "ID Πάροχος Όνομα Κατάσταση Λήξης Κατάσταση Ελέγχου Αναμονή Έως", "noData": "Δεν υπάρχουν διαθέσιμα δεδομένα σύνδεσης παρόχου.", "requiresServer": "Το providers status απαιτεί να εκτελείται ο διακομιστής OmniRoute." } }, "keys": { "title": "Κλειδιά API", "addDescription": "Προσθήκη ή ενημέρωση κλειδιού API για έναν πάροχο", "listDescription": "Εμφάνιση όλων των διαμορφωμένων κλειδιών API", "removeDescription": "Αφαίρεση κλειδιού API για έναν πάροχο", "regenerateDescription": "Αναδημιουργία κλειδιού API του OmniRoute", "revokeDescription": "Ανάκληση κλειδιού API του OmniRoute", "revealDescription": "Αποκάλυψη της μη συγκαλυμμένης τιμής κλειδιού API", "usageDescription": "Εμφάνιση πρόσφατης χρήσης για ένα κλειδί API", "usageLimitOpt": "Αριθμός πρόσφατων αιτημάτων", "rotateDescription": "Δημιουργία νέου κλειδιού και ακύρωση του παλαιού", "graceOpt": "Περίοδος χάριτος (ms) πριν ακυρωθεί το παλιό κλειδί", "stdinOpt": "Ανάγνωση κλειδιού API από stdin αντί για όρισμα", "added": "Το κλειδί προστέθηκε για τον {provider}.", "removed": "Το κλειδί αφαιρέθηκε.", "listed": "{count} κλειδί(ά).", "noKeys": "Δεν έχουν ρυθμιστεί κλειδιά.", "noUsage": "Δεν βρέθηκαν δεδομένα χρήσης.", "confirmRemove": "Αφαίρεση κλειδιού {id};", "confirmRegenerate": "Αναγέννηση κλειδιού {id};", "confirmRevoke": "Ανάκληση κλειδιού {id};", "confirmRotate": "Εναλλαγή κλειδιού {id}; (το παλιό κλειδί θα ακυρωθεί μετά την περίοδο χάριτος)", "regenerated": "Αναγεννήθηκε. Νέο κλειδί: {key}", "revoked": "Το κλειδί {id} ανακλήθηκε.", "rotated": "Το κλειδί {id} εναλλάχθηκε. Νέο αναγνωριστικό κλειδιού: {newId}", "revealWarning": "⚠ Αυτό θα εμφανίσει το πλήρες κλειδί χωρίς απόκρυψη. Βεβαιωθείτε ότι η οθόνη σας είναι ιδιωτική.", "providerRequired": "Ο πάροχος είναι υποχρεωτικός.", "keyRequired": "Το κλειδί API είναι υποχρεωτικό.", "stdinEmpty": "Δεν παρασχέθηκε κλειδί API μέσω stdin.", "unknownProvider": "Άγνωστος πάροχος: {provider}", "policy": { "title": "Πολιτική Κλειδιού", "showDescription": "Εμφάνιση πολιτικής ρυθμού/κόστους για ένα κλειδί", "setDescription": "Ορισμός πολιτικής ρυθμού/κόστους για ένα κλειδί", "rateLimitOpt": "Μέγιστος αριθμός αιτημάτων ανά λεπτό", "maxCostOpt": "Μέγιστο κόστος ανά ημέρα (USD)", "allowedModelsOpt": "Λίστα επιτρεπόμενων μοντέλων διαχωρισμένη με κόμμα", "nothingToSet": "Δεν παρασχέθηκαν πεδία πολιτικής. Χρησιμοποιήστε --rate-limit, --max-cost ή --allowed-models.", "updated": "Η πολιτική ενημερώθηκε." }, "expiration": { "title": "Λήξη Κλειδιού", "listDescription": "Εμφάνιση κλειδιών που λήγουν σύντομα", "daysOpt": "Εμφάνιση κλειδιών που λήγουν εντός N ημερών", "none": "Δεν υπάρχουν κλειδιά που λήγουν εντός {days} ημερών.", "listTitle": "Κλειδιά που λήγουν εντός {days} ημερών:" } }, "authExport": { "description": "Εξαγωγή ΑΠΟΚΡΥΠΤΟΓΡΑΦΗΜΈΝΩΝ διαπιστευτηρίων παρόχου (μόνο τοπικά, έξοδος απλού κειμένου)", "idOpt": "Εξαγωγή μόνο της σύνδεσης που αντιστοιχεί σε αυτό το id/όνομα/πάροχο", "formatOpt": "Μορφή εξόδου: json ή env", "outOpt": "Εγγραφή εξόδου σε αρχείο αντί για stdout (εγγραφή με δικαιώματα 0600)", "forceOpt": "Επιβεβαιώστε ότι κατανοείτε ότι αυτό εκτυπώνει/γράφει μυστικά απλού κειμένου", "warning": "⚠ Αυτό εκτυπώνει/γράφει ΑΠΟΚΡΥΠΤΟΓΡΑΦΗΜΈΝΑ κλειδιά API και διακριτικά OAuth σε απλό κείμενο. Βεβαιωθείτε ότι η οθόνη σας, το ιστορικό του κελύφους και τυχόν αρχεία εξόδου παραμένουν ιδιωτικά.", "confirmHeading": "⚠ ΠΡΟΕΙΔΟΠΟΙΗΣΗ: αυτό εξάγει ΑΠΟΚΡΥΠΤΟΓΡΑΦΗΜΕΝΑ διαπιστευτήρια παρόχου σε απλό κείμενο", "confirmBody": "Αυτή η εντολή αποκρυπτογραφεί και εκτυπώνει/γράφει τα apiKey, accessToken, refreshToken και\nidToken για τις επιλεγμένες συνδέσεις. Αντιμετωπίστε την έξοδο ως μυστικό.", "confirmFooter": "Για επιβεβαίωση, εκτελέστε:\n omniroute auth export --force", "missingKey": "Το STORAGE_ENCRYPTION_KEY απαιτείται για την εξαγωγή διαπιστευτηρίων.", "notFound": "Η σύνδεση δεν βρέθηκε: {id}", "invalidFormat": "Μη έγκυρη μορφή: {format}. Χρησιμοποιήστε json ή env." }, "stream": { "description": "Μεταδώστε μια απόκριση συνομιλίας με λειτουργίες επιθεώρησης SSE", "file": "Ανάγνωση προτροπής από αρχείο", "stdin": "Ανάγνωση προτροπής από stdin", "model": "Αναγνωριστικό μοντέλου (προεπιλογή: αυτόματο)", "system": "Προτροπή συστήματος", "combo": "Εξαναγκασμός συγκεκριμένου combo με όνομα", "max_tokens": "Μέγιστα token στην απόκριση", "responses_api": "Χρήση /v1/responses αντί για /v1/chat/completions", "raw": "Εκτύπωση ακατέργαστων γραμμών SSE όπως λαμβάνονται", "debug": "Εκτύπωση πληροφοριών χρονισμού ανά τμήμα στο stderr", "save": "Αποθήκευση όλων των συμβάντων SSE σε αρχείο .jsonl", "error": { "empty_prompt": "Σφάλμα: απαιτείται προτροπή (θέση ορίσματος, --file ή --stdin)" } }, "usage": { "description": "Αναλυτικά στοιχεία χρήσης, προϋπολογισμοί, ποσοστώσεις και αρχεία καταγραφής", "analytics": { "description": "Εμφάνιση συγκεντρωτικών αναλυτικών στοιχείων χρήσης", "period": "Χρονικό εύρος: 1d|7d|30d|90d|ytd|all (προεπιλογή: 30d)", "provider": "Φιλτράρισμα κατά αναγνωριστικό παρόχου" }, "budget": { "description": "Διαχείριση προϋπολογισμών κόστους", "set": { "scope": "Εμβέλεια προϋπολογισμού (προεπιλογή: global)", "period": "Περίοδος προϋπολογισμού: daily|weekly|monthly (προεπιλογή: monthly)" } }, "quota": { "description": "Εμφάνιση χρήσης ποσοστώσεων παρόχου", "provider": "Φιλτράρισμα κατά αναγνωριστικό παρόχου", "check": "Εμφάνιση διαθεσιμότητας ποσοστώσεων για νέο αίτημα" }, "logs": { "description": "Εμφάνιση αρχείων καταγραφής κλήσεων αιτημάτων", "limit": "Αριθμός εγγραφών αρχείου καταγραφής προς επιστροφή (προεπιλογή: 100)", "search": "Ερώτημα αναζήτησης για φιλτράρισμα αρχείων καταγραφής", "since": "Επιστροφή αρχείων καταγραφής από αυτή τη χρονική σήμανση", "follow": "Συνεχής παρακολούθηση νέων εγγραφών αρχείου καταγραφής", "api_key": "Φιλτράρισμα αρχείων καταγραφής κατά κλειδί API" }, "utilization": { "description": "Εμφάνιση μετρικών χρήσης κλειδιών API", "api_key": "Φιλτράρισμα κατά κλειδί API" }, "history": { "description": "Εμφάνιση ιστορικού αιτημάτων", "limit": "Αριθμός εγγραφών ιστορικού (προεπιλογή: 100)" }, "proxy_logs": { "description": "Εμφάνιση αρχείων καταγραφής αιτημάτων επιπέδου διακομιστή μεσολάβησης", "limit": "Αριθμός εγγραφών αρχείου καταγραφής διακομιστή μεσολάβησης (προεπιλογή: 100)" } }, "cost": { "description": "Εμφάνιση αναφοράς κόστους με ανάλυση κατά πάροχο, μοντέλο, combo ή κλειδί API", "period": "Χρονικό εύρος: 1d|7d|30d|90d|ytd|all (προεπιλογή: 30d)", "since": "Ημερομηνία έναρξης (μορφή ISO, π.χ. 2026-01-01) — παρακάμπτει την --period", "until": "Ημερομηνία λήξης (μορφή ISO)", "group_by": "Ομαδοποίηση αποτελεσμάτων κατά: provider|model|api-key|combo|day (προεπιλογή: provider)", "api_key_filter": "Φιλτράρισμα με βάση συγκεκριμένο κλειδί API", "limit": "Μέγιστος αριθμός γραμμών προς εμφάνιση (προεπιλογή: 100)" }, "simulate": { "description": "Προσομοίωση δρομολόγησης χωρίς εκτέλεση — εμφάνιση των παρόχων που θα επιλέγονταν χωρίς κλήση στο upstream", "file": "Φόρτωση πλήρους σώματος αιτήματος από αρχείο JSON", "model": "Αναγνωριστικό μοντέλου (προεπιλογή: auto)", "combo": "Επιβολή συγκεκριμένου combo με βάση το όνομά του", "reasoning": "Επίπεδο προσπάθειας συλλογισμού (low|medium|high)", "thinking": "Προϋπολογισμός token για εκτεταμένη σκέψη", "explain": "Εκτύπωση δέντρου εναλλακτικής δρομολόγησης και εύρους κόστους στο stderr", "noCombo": "Δεν βρέθηκε αντίστοιχο combo. Δημιουργήστε ένα με: omniroute combo create" }, "chat": { "description": "Αποστολή ενός μεμονωμένου μηνύματος chat στο OmniRoute", "file": "Ανάγνωση προτροπής από αρχείο", "stdin": "Ανάγνωση προτροπής από το stdin", "system": "Προτροπή συστήματος", "model": "Αναγνωριστικό μοντέλου (προεπιλογή: auto)", "max_tokens": "Μέγιστος αριθμός token στην απόκριση", "temperature": "Θερμοκρασία δειγματοληψίας (0–2)", "top_p": "Δειγματοληψία πυρήνα top-p", "reasoning_effort": "Επίπεδο προσπάθειας συλλογισμού (low|medium|high)", "thinking_budget": "Προϋπολογισμός token για εκτεταμένη σκέψη", "combo": "Επιβολή συγκεκριμένου combo με βάση το όνομά του", "responses_api": "Χρήση του /v1/responses αντί για /v1/chat/completions", "stream": "Ροή απόκρισης σταδιακά", "no_history": "Να μην αποθηκευτεί στο ~/.omniroute/cli-history.jsonl", "error": { "empty_prompt": "Σφάλμα: η προτροπή είναι υποχρεωτική (θέση ορίσματος, --file ή --stdin)" } }, "serve": { "description": "Εκκίνηση του διακομιστή OmniRoute (προεπιλεγμένη ενέργεια)", "starting": "Εκκίνηση διακομιστή OmniRoute στη θύρα {port}...", "ready": "Έτοιμος στο http://localhost:{port}", "stopping": "Διακοπή διακομιστή (PID {pid})...", "stopped": "Ο διακομιστής διακόπηκε.", "notRunning": "Ο διακομιστής δεν εκτελείται.", "port": "Θύρα για ακρόαση (προεπιλογή: 20128)", "no_open": "Να μην ανοίξει αυτόματα το πρόγραμμα περιήγησης", "daemon": "Εκτέλεση διακομιστή ως διεργασία παρασκηνίου", "log": "Εμφάνιση αρχείων καταγραφής διακομιστή ενσωματωμένα", "no_recovery": "Απενεργοποίηση αυτόματης επανεκκίνησης σε σφάλμα (λειτουργία αποσφαλμάτωσης)", "max_restarts": "Μέγιστος αριθμός επανεκκινήσεων λόγω σφάλματος εντός 30 δευτερολέπτων πριν την οριστική διακοπή (προεπιλογή: 2)", "tray": "Εκκίνηση στην περιοχή ειδοποιήσεων (μόνο για επιτραπέζιους υπολογιστές, προαιρετικό)", "no_tray": "Απενεργοποίηση εικονιδίου περιοχής ειδοποιήσεων", "tls_cert": "Διαδρομή προς πιστοποιητικό TLS (PEM) για εξυπηρέτηση HTTPS (επίσης OMNIROUTE_TLS_CERT)", "tls_key": "Διαδρομή προς το ιδιωτικό κλειδί TLS (PEM) για εξυπηρέτηση HTTPS (επίσης OMNIROUTE_TLS_KEY)" }, "backup": { "title": "Αντίγραφο ασφαλείας", "description": "Δημιουργία αντιγράφου ασφαλείας δεδομένων OmniRoute", "creating": "Δημιουργία αντιγράφου ασφαλείας...", "done": "Το αντίγραφο ασφαλείας αποθηκεύτηκε στο {path}", "noFiles": "Δεν υπάρχουν αρχεία για δημιουργία αντιγράφου ασφαλείας (η βάση δεδομένων δεν έχει αρχικοποιηθεί)", "failed": "Αποτυχία αντιγράφου ασφαλείας: {error}", "restoring": "Επαναφορά από το {path}...", "restored": "Η επαναφορά ολοκληρώθηκε.", "restoreDescription": "Επαναφορά από αντίγραφο ασφαλείας", "listTitle": "Διαθέσιμα αντίγραφα ασφαλείας", "noBackups": "Δεν βρέθηκαν αντίγραφα ασφαλείας.", "notFound": "Το αντίγραφο ασφαλείας δεν βρέθηκε: {name}", "confirmRestore": "Αντικατάσταση των τρεχόντων δεδομένων με το αντίγραφο ασφαλείας από {ts};", "createDescription": "Δημιουργία αντιγράφου ασφαλείας δεδομένων OmniRoute", "nameOpt": "Προσαρμοσμένο όνομα αντιγράφου ασφαλείας", "cloudOpt": "Αποστολή αντιγράφου ασφαλείας στο αποθηκευτικό χώρο cloud", "encryptOpt": "Κρυπτογράφηση αντιγράφου ασφαλείας με AES-256-GCM", "keyFileOpt": "Διαδρομή προς αρχείο που περιέχει τη φράση πρόσβασης κρυπτογράφησης", "excludeOpt": "Εξαίρεση αρχείου που ταιριάζει με το μοτίβο (επαναλαμβανόμενο)", "retentionOpt": "Διατήρηση μόνο των τελευταίων N αντιγράφων ασφαλείας", "passphrasePrompt": "Φράση πρόσβασης κρυπτογράφησης:", "noPassphrase": "Η φράση πρόσβασης είναι απαραίτητη για κρυπτογραφημένο αντίγραφο ασφαλείας.", "cloudFailed": "Προειδοποίηση: η αποστολή στο cloud απέτυχε. Το τοπικό αντίγραφο ασφαλείας αποθηκεύτηκε.", "cloudUploaded": "Το αντίγραφο ασφαλείας cloud αναρτήθηκε: {url}", "auto": { "title": "Χρονοδιάγραμμα αντιγράφων ασφαλείας", "enableDescription": "Ενεργοποίηση προγραμματισμένων αυτόματων αντιγράφων ασφαλείας", "disableDescription": "Απενεργοποίηση προγραμματισμένων αυτόματων αντιγράφων ασφαλείας", "statusDescription": "Εμφάνιση τρέχουσας κατάστασης χρονοδιαγράμματος αντιγράφων ασφαλείας", "cronOpt": "Έκφραση cron για το χρονοδιάγραμμα (προεπιλογή: καθημερινά στις 3 π.μ.)", "enabled": "Το αυτόματο αντίγραφο ασφαλείας είναι ενεργοποιημένο (cron: {cron}).", "hint": "Το χρονοδιάγραμμα διαβάζεται από το omniroute serve κατά την εκκίνηση.", "disabled": "Το αυτόματο αντίγραφο ασφαλείας είναι απενεργοποιημένο.", "notConfigured": "Δεν έχει ρυθμιστεί χρονοδιάγραμμα αντιγράφων ασφαλείας." } }, "health": { "description": "Έλεγχος υγείας διακομιστή και κατάστασης εξαρτημάτων", "noServer": "Ο διακομιστής δεν εκτελείται. Εκκινήστε με: omniroute serve", "title": "Υγεία", "status": "Κατάσταση: {status}", "uptime": "Χρόνος λειτουργίας: {uptime}", "requests": "Αιτήματα (24ω): {count}", "cost": "Κόστος (24ω): ${cost}" }, "quota": { "description": "Εμφάνιση χρήσης ορίου παρόχου", "noServer": "Ο διακομιστής δεν εκτελείται. Εκκινήστε με: omniroute serve", "noData": "Δεν υπάρχουν διαθέσιμες πληροφορίες ορίου." }, "cache": { "description": "Διαχείριση κρυφής μνήμης απαντήσεων", "noServer": "Ο διακομιστής δεν εκτελείται. Εκκινήστε με: omniroute serve", "cleared": "Η κρυφή μνήμη εκκαθαρίστηκε.", "clearFailed": "Αποτυχία εκκαθάρισης κρυφής μνήμης." }, "redis": { "description": "Εκκίνηση τοπικού container Redis με ένα κλικ (Podman ή Docker) για αποθήκευση στην κρυφή μνήμη και παρακολούθηση ορίων του OmniRoute" }, "test": { "description": "Δοκιμή σύνδεσης παρόχου", "noServer": "Ο διακομιστής δεν εκτελείται. Εκκινήστε με: omniroute serve", "testing": "Δοκιμή {provider} / {model}...", "passed": "Η σύνδεση ήταν επιτυχής!", "failed": "Αποτυχία σύνδεσης: {error}", "allProvidersOpt": "Δοκιμή όλων των ρυθμισμένων παρόχων", "latencyOpt": "Εμφάνιση μετρήσεων καθυστέρησης (μέσος/ελάχιστος/μέγιστος ms)", "repeatOpt": "Επανάληψη δοκιμής N φορές και συγκέντρωση αποτελεσμάτων", "compareOpt": "Μοντέλα προς σύγκριση διαχωρισμένα με κόμμα (π.χ. gpt-4o,claude-3-5-sonnet)", "saveOpt": "Αποθήκευση αποτελεσμάτων σε αρχείο JSON", "saved": "Τα αποτελέσματα αποθηκεύτηκαν στο {path}", "compareTitle": "Σύγκριση Μοντέλων", "compareMinTwo": "Απαιτούνται τουλάχιστον δύο μοντέλα για την επιλογή --compare (διαχωρισμένα με κόμμα)", "noProviders": "Δεν έχουν ρυθμιστεί πάροχοι. Προσθέστε έναν με: omniroute keys add" }, "update": { "checking": "Έλεγχος για ενημερώσεις...", "upToDate": "Είναι ήδη ενημερωμένο ({version}).", "available": "Διαθέσιμη ενημέρωση: {current} → {latest}", "installing": "Εγκατάσταση {latest}...", "done": "Ενημερώθηκε σε {latest}. Επανεκκινήστε τον διακομιστή για εφαρμογή." }, "mcp": { "title": "Διακομιστής MCP", "running": "Ο διακομιστής MCP εκτελείται ({transport})", "stopped": "Ο διακομιστής MCP διακόπηκε.", "restarted": "Ο διακομιστής MCP επανεκκινήθηκε.", "call": { "description": "Άμεση κλήση εργαλείου MCP", "args": "Αντικείμενο ορισμάτων JSON (ενσωματωμένο)", "args_file": "Διαδρομή προς αρχείο ορισμάτων JSON", "stream": "Χρήση τελικού σημείου ροής (/api/mcp/stream)", "scope": "Απαιτούμενο εύρος πρόσβασης (επαναλαμβανόμενο, π.χ. read:health)" }, "scopes": { "description": "Λίστα διαθέσιμων περιοχών MCP", "tool": "Εμφάνιση περιοχών που απαιτούνται από ένα συγκεκριμένο εργαλείο" }, "tools": { "description": "Επιθεώρηση εργαλείων MCP", "list": { "description": "Λίστα όλων των εργαλείων MCP", "scope": "Φιλτράρισμα κατά περιοχή" }, "info": { "description": "Εμφάνιση μεταδεδομένων για ένα εργαλείο MCP" }, "schema": { "description": "Εμφάνιση σχήματος JSON εισόδου/εξόδου για ένα εργαλείο MCP", "io": "Είδος σχήματος: input|output (προεπιλογή: input)" } }, "audit": { "description": "Αρχείο καταγραφής ελέγχου MCP (ψευδώνυμο για audit --source mcp)" } }, "a2a": { "skills": { "description": "Λίστα διαθέσιμων δεξιοτήτων A2A από την κάρτα πράκτορα" }, "invoke": { "description": "Κλήση δεξιότητας A2A και επιστροφή του αναγνωριστικού εργασίας", "input": "Αντικείμενο εισόδου JSON", "input_file": "Διαδρομή προς αρχείο εισόδου JSON", "wait": "Αναμονή ολοκλήρωσης εργασίας πριν από την επιστροφή", "timeout": "Χρονικό όριο αναμονής για ολοκλήρωση σε ms (προεπιλογή: 60000)" }, "tasks": { "description": "Διαχείριση εργασιών A2A", "list": { "status": "Φιλτράρισμα κατά κατάσταση", "skill": "Φιλτράρισμα κατά αναγνωριστικό δεξιότητας" }, "watch": { "description": "Περιοδική ανίχνευση κατάστασης εργασίας έως την ολοκλήρωση" }, "stream": { "description": "Ροή συμβάντων εκτέλεσης εργασίας μέσω SSE" }, "logs": { "description": "Εμφάνιση μηνυμάτων και αντικειμένων εργασίας" } } }, "policy": { "description": "Διαχείριση πολιτικών εξουσιοδότησης OmniRoute", "list": { "description": "Λίστα πολιτικών", "kind": "Φιλτράρισμα κατά είδος (allow|deny|rate-limit|cost-cap)", "scope": "Φιλτράρισμα κατά περιοχή (global|api-key|provider)" }, "get": { "description": "Λήψη λεπτομερειών πολιτικής βάσει αναγνωριστικού" }, "create": { "description": "Δημιουργία πολιτικής από αρχείο JSON", "file": "Διαδρομή προς αρχείο JSON πολιτικής" }, "update": { "description": "Ενημέρωση πολιτικής από αρχείο JSON", "file": "Διαδρομή προς αρχείο JSON πολιτικής" }, "delete": { "description": "Διαγραφή πολιτικής βάσει αναγνωριστικού", "yes": "Παράλειψη προτροπής επιβεβαίωσης" }, "evaluate": { "description": "Δοκιμαστική αξιολόγηση πολιτικής (έξοδος 0=επιτρέπεται, 4=απορρίπτεται)", "api_key": "Κλειδί API προς αξιολόγηση", "action": "Ενέργεια προς έλεγχο (π.χ. chat, embed, admin)", "resource": "Διαδρομή ή αναγνωριστικό πόρου", "context": "Πρόσθετο πλαίσιο ως αντικείμενο JSON" }, "export": { "description": "Εξαγωγή όλων των πολιτικών σε αρχείο JSON" }, "import": { "description": "Εισαγωγή πολιτικών από αρχείο JSON", "overwrite": "Αντικατάσταση υπαρχουσών πολιτικών με το ίδιο αναγνωριστικό" } }, "compression": { "description": "Ρυθμίστε και επιθεωρήστε τον αγωγό συμπίεσης OmniRoute", "status": { "description": "Εμφάνιση τρέχουσας κατάστασης και ρυθμίσεων συμπίεσης" }, "configure": { "description": "Ρύθμιση παραμέτρων συμπίεσης", "engine": "Μηχανή συμπίεσης (caveman|rtk|hybrid|none)", "caveman_agg": "Επιθετικότητα Caveman 0.0–1.0", "rtk_budget": "Προϋπολογισμός διακριτικών RTK", "language_pack": "Πακέτο γλώσσας για ενεργοποίηση" }, "engine": { "description": "Λήψη ή ορισμός της ενεργής μηχανής συμπίεσης" }, "combos": { "description": "Διαχείριση στατιστικών συνδυασμών συμπίεσης" }, "rules": { "description": "Διαχείριση κανόνων συμπίεσης", "add": { "pattern": "Μοτίβο αντιστοίχισης (regex ή field:pattern)", "action": "Ενέργεια: drop|shrink|replace" } }, "language_packs": { "description": "Λίστα διαθέσιμων πακέτων γλώσσας συμπίεσης" }, "preview": { "description": "Προεπισκόπηση επίδρασης συμπίεσης σε ένα αίτημα", "file": "Διαδρομή προς το αρχείο JSON αιτήματος" } }, "tunnel": { "title": "Τούνελ", "listDescription": "Λίστα ενεργών τούνελ", "createDescription": "Δημιουργία τούνελ", "created": "Το τούνελ δημιουργήθηκε: {url}", "stopped": "Το τούνελ διακόπηκε.", "confirmStop": "Διακοπή τούνελ {id};", "stopDescription": "Διακοπή τούνελ", "statusDescription": "Εμφάνιση λεπτομερούς κατάστασης τούνελ", "logsDescription": "Εμφάνιση αρχείων καταγραφής για ένα τούνελ", "infoDescription": "Εμφάνιση λεπτομερειών ρύθμισης παραμέτρων τούνελ", "rotateDescription": "Δημιουργία νέου URL τούνελ", "tailOpt": "Αριθμός γραμμών αρχείου καταγραφής για εμφάνιση", "typeRequired": "Ο τύπος τούνελ είναι υποχρεωτικός.", "noLogs": "Δεν υπάρχουν διαθέσιμα αρχεία καταγραφής.", "notAvailable": "Οι πληροφορίες τούνελ δεν είναι διαθέσιμες.", "noTunnels": "Δεν υπάρχουν ενεργά τούνελ.", "infoTitle": "Πληροφορίες τούνελ: {type}", "rotated": "Το URL τούνελ ανανεώθηκε: {url}", "confirmRotate": "Ανανέωση τούνελ {type}; (θα δημιουργηθεί νέο URL)" }, "stop": { "description": "Διακοπή του διακομιστή OmniRoute", "stopping": "Διακοπή διακομιστή (PID {pid})...", "stopped": "Ο διακομιστής διακόπηκε.", "notRunning": "Κανένας διακομιστής δεν εκτελείται.", "portFallback": "Δεν βρέθηκε αρχείο PID, απόπειρα διακοπής βάσει θύρας..." }, "restart": { "description": "Επανεκκίνηση του διακομιστή OmniRoute", "restarting": "Επανεκκίνηση διακομιστή OmniRoute..." }, "dashboard": { "description": "Άνοιγμα του πίνακα ελέγχου OmniRoute σε πρόγραμμα περιήγησης", "opening": "Άνοιγμα πίνακα ελέγχου στη διεύθυνση {url}", "urlOnly": "Εκτύπωση URL πίνακα ελέγχου χωρίς άνοιγμα προγράμματος περιήγησης", "tui": "Άνοιγμα διαδραστικού πίνακα ελέγχου TUI (διεπαφή τερματικού, 7 καρτέλες)" }, "models": { "description": "Εμφάνιση διαθέσιμων μοντέλων (απαιτείται διακομιστής)", "search": "Φιλτράρισμα μοντέλων βάσει αναγνωριστικού, ονόματος, παρόχου ή περιγραφής", "noServer": "Ο διακομιστής δεν εκτελείται. Εκκινήστε με: omniroute serve", "noModels": "Δεν βρέθηκαν μοντέλα." }, "audit": { "description": "Πρόσβαση σε αρχεία καταγραφής συμμόρφωσης και MCP", "source": "Πηγή καταγραφής: all|compliance|mcp (προεπιλογή: all)", "since": "Επιστροφή καταχωρίσεων από αυτή τη χρονική σήμανση (ISO 8601)", "until": "Επιστροφή καταχωρίσεων έως αυτή τη χρονική σήμανση (ISO 8601)", "tail": { "description": "Εμφάνιση πρόσφατων καταχωρίσεων αρχείου ελέγχου", "follow": "Συνεχής παρακολούθηση νέων καταχωρίσεων (ανανέωση κάθε 2 δευτερόλεπτα)", "limit": "Μέγιστος αριθμός καταχωρίσεων προς εμφάνιση (προεπιλογή: 100)" }, "search": { "description": "Αναζήτηση καταχωρίσεων αρχείου ελέγχου βάσει λέξης-κλειδιού", "limit": "Μέγιστος αριθμός αποτελεσμάτων (προεπιλογή: 200)", "actor": "Φιλτράρισμα βάσει αναγνωριστικού δράστη", "action": "Φιλτράρισμα βάσει ονόματος ενέργειας" }, "export": { "description": "Εξαγωγή αρχείου ελέγχου σε αρχείο", "format": "Μορφή εξόδου: jsonl|csv (προεπιλογή: jsonl)" }, "stats": { "description": "Εμφάνιση στατιστικών αρχείου ελέγχου", "period": "Χρονική περίοδος: 1d|7d|30d (προεπιλογή: 7d)" }, "get": { "description": "Ανάκτηση μεμονωμένης καταχώρισης αρχείου ελέγχου βάσει αναγνωριστικού" } }, "skills": { "description": "Διαχείριση δεξιοτήτων OmniRoute (sandbox, builtin, custom, hybrid, skillssh)", "list": { "description": "Εμφάνιση εγκατεστημένων δεξιοτήτων", "type": "Φιλτράρισμα βάσει τύπου (sandbox|custom|builtin|hybrid|skillssh)", "enabled": "Εμφάνιση μόνο ενεργοποιημένων δεξιοτήτων", "disabled": "Εμφάνιση μόνο απενεργοποιημένων δεξιοτήτων", "api_key": "Φιλτράρισμα βάσει κλειδιού API" }, "get": { "description": "Εμφάνιση λεπτομερειών δεξιότητας βάσει αναγνωριστικού" }, "install": { "description": "Εγκατάσταση δεξιότητας από αρχείο ή URL", "from_file": "Διαδρομή προς αρχείο ορισμού δεξιότητας JSON", "from_url": "URL απομακρυσμένου ορισμού δεξιότητας", "type": "Τύπος δεξιότητας (sandbox|custom|hybrid)", "enable": "Ενεργοποίηση δεξιότητας μετά την εγκατάσταση" }, "enable": { "description": "Ενεργοποίηση δεξιότητας βάσει αναγνωριστικού" }, "disable": { "description": "Απενεργοποίηση δεξιότητας βάσει αναγνωριστικού", "yes": "Παράλειψη προτροπής επιβεβαίωσης" }, "delete": { "description": "Διαγραφή δεξιότητας με βάση το αναγνωριστικό", "yes": "Παράλειψη ερωτήματος επιβεβαίωσης" }, "execute": { "description": "Εκτέλεση δεξιότητας με βάση το αναγνωριστικό", "input": "Αντικείμενο εισόδου JSON", "input_file": "Διαδρομή προς αρχείο εισόδου JSON", "timeout": "Χρονικό όριο εκτέλεσης σε ms (προεπιλογή: 30000)" }, "executions": { "description": "Εμφάνιση ιστορικού εκτελέσεων δεξιοτήτων", "skill": "Φιλτράρισμα ανά αναγνωριστικό δεξιότητας", "limit": "Μέγιστος αριθμός αποτελεσμάτων (προεπιλογή: 50)", "status": "Φιλτράρισμα ανά κατάσταση (running|completed|failed)" }, "skillssh": { "description": "Διαχείριση δεξιοτήτων εγκατεστημένων μέσω SSH" }, "marketplace": { "description": "Περιήγηση και εγκατάσταση δεξιοτήτων από το marketplace" }, "mp": { "search": { "description": "Αναζήτηση πακέτων στο marketplace", "category": "Φιλτράρισμα ανά κατηγορία", "tag": "Φιλτράρισμα ανά ετικέτα", "limit": "Μέγιστος αριθμός αποτελεσμάτων (προεπιλογή: 30)", "sort": "Ταξινόμηση κατά: downloads|rating|recent" }, "info": { "description": "Εμφάνιση λεπτομερειών και readme πακέτου" }, "install": { "description": "Εγκατάσταση πακέτου από το marketplace", "version": "Έκδοση πακέτου (προεπιλογή: latest)", "enable": "Ενεργοποίηση μετά την εγκατάσταση", "yes": "Παράλειψη ερωτήματος επιβεβαίωσης" }, "categories": { "description": "Εμφάνιση κατηγοριών marketplace" }, "featured": { "description": "Εμφάνιση προτεινόμενων πακέτων marketplace" } } }, "memory": { "description": "Διαχείριση συνομιλιακής μνήμης OmniRoute (FTS5 + vector)", "search": { "description": "Αναζήτηση καταχωρήσεων μνήμης με σημασιολογικό ερώτημα", "type": "Φιλτράρισμα ανά τύπο μνήμης (user|feedback|project|reference)", "limit": "Μέγιστος αριθμός αποτελεσμάτων (προεπιλογή: 20)", "api_key": "Φιλτράρισμα ανά κλειδί API", "token_budget": "Περιορισμός συνολικών token στα αποτελέσματα" }, "add": { "description": "Προσθήκη νέας καταχώρησης μνήμης", "content": "Κείμενο περιεχομένου μνήμης", "file": "Ανάγνωση περιεχομένου από αρχείο", "type": "Τύπος μνήμης (προεπιλογή: user)", "metadata": "Αντικείμενο μεταδεδομένων JSON", "api_key": "Συσχέτιση με κλειδί API" }, "clear": { "description": "Διαγραφή καταχωρήσεων μνήμης που αντιστοιχούν στα φίλτρα", "type": "Φιλτράρισμα ανά τύπο", "older": "Διαγραφή καταχωρήσεων παλαιότερων από τη διάρκεια (30d, 6m, 1y)", "api_key": "Φιλτράρισμα ανά κλειδί API", "yes": "Παράλειψη προτροπής επιβεβαίωσης" }, "list": { "description": "Εμφάνιση καταχωρίσεων μνήμης χωρίς κατάταξη αναζήτησης", "type": "Φιλτράρισμα κατά τύπο", "limit": "Μέγιστα αποτελέσματα (προεπιλογή: 100)", "api_key": "Φιλτράρισμα κατά κλειδί API" }, "get": { "description": "Ανάκτηση μιας καταχώρισης μνήμης μέσω αναγνωριστικού" }, "delete": { "description": "Διαγραφή μιας καταχώρισης μνήμης μέσω αναγνωριστικού", "yes": "Παράλειψη προτροπής επιβεβαίωσης" }, "health": { "description": "Εμφάνιση κατάστασης υποσυστήματος μνήμης (FTS5 + Qdrant)" } }, "oauth": { "description": "Διαχείριση συνδέσεων παρόχου OAuth", "providers": { "description": "Εμφάνιση παρόχων με δυνατότητα OAuth και των τύπων ροής τους" }, "start": { "description": "Εκκίνηση ροής εξουσιοδότησης OAuth για έναν πάροχο", "provider": "Αναγνωριστικό παρόχου (gemini, copilot, cursor, …)", "no_browser": "Εκτύπωση μόνο της διεύθυνσης URL — χωρίς άνοιγμα προγράμματος περιήγησης", "import_system": "Αυτόματη εισαγωγή διαπιστευτηρίων από την τοπική διαμόρφωση συστήματος", "social": "Πάροχος κοινωνικής σύνδεσης (google|github) — απαιτείται για το kiro", "timeout": "Χρονικό όριο αναμονής για εξουσιοδότηση σε ms (προεπιλογή: 300000)" }, "status": { "description": "Εμφάνιση ενεργών συνδέσεων OAuth", "provider": "Φιλτράρισμα κατά αναγνωριστικό παρόχου" }, "revoke": { "description": "Ανάκληση σύνδεσης OAuth", "provider": "Αναγνωριστικό παρόχου προς ανάκληση", "connection_id": "Ανάκληση συγκεκριμένης σύνδεσης μέσω αναγνωριστικού", "yes": "Παράλειψη προτροπής επιβεβαίωσης" } }, "cloud": { "description": "Διαχείριση εργασιών νεφοϋπολογιστικού πράκτορα τεχνητής νοημοσύνης (codex, devin, jules)", "agents": { "description": "Εμφάνιση διαθέσιμων νεφοϋπολογιστικών πρακτόρων" }, "agent": { "description": "Διαχείριση εργασιών νεφοϋπολογιστικού πράκτορα {agent}", "auth": { "description": "Εξουσιοδότηση του {agent} μέσω OAuth" } }, "task": { "description": "Διαχείριση εργασιών νεφοϋπολογιστικού πράκτορα", "create": { "description": "Δημιουργία νέας εργασίας πράκτορα", "title": "Τίτλος εργασίας (προεπιλογή: πρώτοι 80 χαρακτήρες της προτροπής)", "prompt": "Κείμενο προτροπής εργασίας", "prompt_file": "Ανάγνωση προτροπής από αρχείο", "repo": "Διεύθυνση URL αποθετηρίου για κλωνοποίηση στην εργασία", "branch": "Όνομα κλάδου προς χρήση", "metadata": "Αντικείμενο μεταδεδομένων JSON" }, "list": { "description": "Εμφάνιση εργασιών πράκτορα", "status": "Φιλτράρισμα κατά κατάσταση (running|completed|failed|cancelled)", "limit": "Μέγιστα αποτελέσματα (προεπιλογή: 50)" }, "get": { "description": "Ανάκτηση λεπτομερειών εργασίας μέσω αναγνωριστικού" }, "status": { "description": "Εκτύπωση κατάστασης εργασίας (running|completed|failed|cancelled)" }, "cancel": { "description": "Ακύρωση μιας εκτελούμενης εργασίας", "yes": "Παράλειψη προτροπής επιβεβαίωσης" }, "approve": { "description": "Έγκριση του σχεδίου πράκτορα για έναρξη εκτέλεσης" }, "message": { "description": "Αποστολή μηνύματος σε μια εκτελούμενη εργασία" } }, "sources": { "description": "Λίστα αρχείων πηγής που παράχθηκαν από μια εργασία" } }, "eval": { "description": "Διαχείριση σουιτών και εκτελέσεων αξιολόγησης", "suites": { "description": "Διαχείριση σουιτών αξιολόγησης", "list": { "description": "Λίστα σουιτών αξιολόγησης" }, "get": { "description": "Λήψη λεπτομερειών σουίτας αξιολόγησης με βάση το ID" }, "create": { "description": "Δημιουργία σουίτας αξιολόγησης από αρχείο JSON", "file": "Διαδρομή προς το αρχείο JSON ορισμού σουίτας" } }, "run": { "description": "Έναρξη εκτέλεσης αξιολόγησης για μια σουίτα", "model": "ID μοντέλου προς αξιολόγηση (προεπιλογή: αυτόματο)", "combo": "Επιβολή συγκεκριμένου συνδυασμού με βάση το όνομα", "concurrency": "Αριθμός ταυτόχρονων δειγμάτων (προεπιλογή: 4)", "tag": "Προσθήκη ετικέτας σε αυτήν την εκτέλεση για μελλοντικό φιλτράρισμα", "watch": "Παρακολούθηση προόδου εκτέλεσης έως την ολοκλήρωση" }, "list": { "description": "Λίστα εκτελέσεων αξιολόγησης", "suite": "Φιλτράρισμα με βάση το ID σουίτας", "status": "Φιλτράρισμα με βάση την κατάσταση", "since": "Επιστροφή εκτελέσεων από αυτήν τη χρονική σήμανση", "limit": "Μέγιστος αριθμός αποτελεσμάτων (προεπιλογή: 50)" }, "get": { "description": "Λήψη λεπτομερειών εκτέλεσης αξιολόγησης με βάση το ID" }, "results": { "description": "Εμφάνιση αποτελεσμάτων δειγμάτων για μια εκτέλεση αξιολόγησης", "failed": "Εμφάνιση μόνο αποτυχημένων δειγμάτων" }, "cancel": { "description": "Ακύρωση μιας εκτελούμενης αξιολόγησης", "yes": "Παράλειψη προτροπής επιβεβαίωσης" }, "scorecard": { "description": "Εμφάνιση κάρτας βαθμολογίας για μια ολοκληρωμένη εκτέλεση αξιολόγησης" } }, "webhooks": { "description": "Διαχείριση webhooks του OmniRoute", "events": { "description": "Λίστα όλων των διαθέσιμων τύπων συμβάντων webhook" }, "list": { "description": "Λίστα διαμορφωμένων webhooks" }, "get": { "description": "Λήψη λεπτομερειών webhook με βάση το ID" }, "add": { "description": "Καταχώριση νέου webhook", "url": "URL προορισμού", "events": "Λίστα τύπων συμβάντων διαχωρισμένων με κόμμα", "secret": "Μυστικό υπογραφής HMAC", "header": "Επιπλέον κεφαλίδα σε μορφή key=value (επαναλαμβανόμενο)", "no_enabled": "Δημιουργία webhook σε απενεργοποιημένη κατάσταση" }, "update": { "description": "Ενημέρωση υπάρχοντος webhook", "enabled": "Ορισμός κατάστασης ενεργοποίησης (true|false)" }, "remove": { "description": "Διαγραφή ενός webhook", "yes": "Παράλειψη προτροπής επιβεβαίωσης" }, "test": { "description": "Αποστολή δοκιμαστικού συμβάντος σε ένα webhook", "event": "Τύπος συμβάντος προς προσομοίωση (προεπιλογή: request.completed)" } }, "program": { "description": "OmniRoute — Έξυπνος δρομολογητής AI με αυτόματο εναλλακτικό μηχανισμό", "version": "Εκτύπωση έκδοσης και έξοδος", "output": "Μορφή εξόδου (table, json, jsonl, csv)", "quiet": "Απόκρυψη μη απαραίτητης εξόδου", "no_color": "Απενεργοποίηση έγχρωμης εξόδου", "timeout": "Χρονικό όριο αιτήματος HTTP σε χιλιοστά του δευτερολέπτου", "api_key": "Κλειδί API για τον διακομιστή OmniRoute", "base_url": "Βασικό URL διακομιστή OmniRoute", "context": "Περιβάλλον/προφίλ διακομιστή για αυτήν την εντολή", "lang": "Ορισμός γλώσσας εμφάνισης CLI (παρακάμπτει το OMNIROUTE_LANG)" }, "files": { "description": "Διαχείριση αρχείων (μεταφόρτωση, λίστα, λήψη, λήψη περιεχομένου, διαγραφή)", "list": { "purpose": "Φιλτράρισμα κατά σκοπό", "limit": "Μέγιστος αριθμός αποτελεσμάτων" }, "get": { "description": "Λήψη μεταδεδομένων αρχείου" }, "upload": { "description": "Μεταφόρτωση αρχείου", "purpose": "Σκοπός αρχείου (batch, assistants, fine-tune)" }, "content": { "description": "Λήψη περιεχομένου αρχείου", "out": "Αποθήκευση σε διαδρομή (προεπιλογή: stdout)" }, "delete": { "yes": "Παράλειψη επιβεβαίωσης" } }, "batches": { "description": "Διαχείριση εργασιών batch συμβατών με OpenAI", "list": { "status": "Φιλτράρισμα κατά κατάσταση", "limit": "Μέγιστος αριθμός αποτελεσμάτων" }, "create": { "description": "Δημιουργία εργασίας batch", "inputFile": "Αναγνωριστικό αρχείου εισόδου", "endpoint": "Τελικό σημείο προορισμού", "window": "Παράθυρο ολοκλήρωσης", "metadata": "Προσθήκη μεταδεδομένων key=value" }, "submit": { "description": "Μεταφόρτωση αρχείου JSONL και δημιουργία batch", "jsonl": "Διαδρομή προς αρχείο JSONL", "endpoint": "Τελικό σημείο προορισμού", "wait": "Αναμονή για ολοκλήρωση" }, "cancel": { "yes": "Παράλειψη επιβεβαίωσης" }, "wait": { "timeout": "Χρονικό όριο σε ms" }, "output": { "out": "Αποθήκευση εξόδου σε διαδρομή" }, "errors": { "out": "Αποθήκευση σφαλμάτων σε διαδρομή" } }, "translator": { "description": "Μετάφραση σωμάτων αιτημάτων μεταξύ μορφών LLM", "detect": { "description": "Ανίχνευση μορφής σώματος" }, "translate": { "description": "Μετατροπή σώματος από μία μορφή σε άλλη" }, "send": { "description": "Μετάφραση και αποστολή upstream" }, "stream": { "description": "Ροή-μετάφραση σώματος αιτήματος" }, "from": "Μορφή προέλευσης (openai|anthropic|gemini|cohere)", "to": "Μορφή προορισμού (openai|anthropic|gemini|cohere)", "file": "Διαδρομή προς το αρχείο JSON του σώματος αιτήματος", "out": "Αποθήκευση εξόδου σε αρχείο", "model": "Παράκαμψη μοντέλου", "history": { "limit": "Μέγιστος αριθμός αποτελεσμάτων" } }, "pricing": { "description": "Διαχείριση δεδομένων τιμολόγησης για μοντέλα", "sync": { "description": "Συγχρονισμός τιμών από upstream πηγές", "provider": "Φιλτράρισμα ανά πάροχο", "force": "Εξαναγκασμός επανασυγχρονισμού" }, "list": { "provider": "Φιλτράρισμα ανά πάροχο", "model": "Φιλτράρισμα ανά μοντέλο", "limit": "Μέγιστος αριθμός αποτελεσμάτων" }, "defaults": { "description": "Διαχείριση προεπιλεγμένης τιμολόγησης", "input": "Κόστος εισόδου ανά 1M tokens (USD)", "output": "Κόστος εξόδου ανά 1M tokens (USD)", "cacheRead": "Κόστος ανάγνωσης cache ανά 1M tokens (USD)", "cacheWrite": "Κόστος εγγραφής cache ανά 1M tokens (USD)" }, "diff": { "description": "Εμφάνιση απόκλισης από τις upstream τιμές", "model": "Φιλτράρισμα ανά μοντέλο" } }, "radar": { "description": "Επιθεώρηση και συγχρονισμός των τοπικών feeds καταλόγου Radar", "status": "Εμφάνιση τοπικών ρυθμίσεων Radar και κατάστασης cache feeds", "sync": "Συγχρονισμός καταλόγου, παραπομπών, προσφορών και Intel μέσω του τοπικού διακομιστή" }, "resilience": { "description": "Επιθεώρηση και διαχείριση μηχανισμών ανθεκτικότητας", "status": { "provider": "Φιλτράρισμα ανά πάροχο" }, "breakers": { "provider": "Φιλτράρισμα ανά πάροχο" }, "cooldowns": { "provider": "Φιλτράρισμα ανά πάροχο", "connectionId": "Φιλτράρισμα ανά αναγνωριστικό σύνδεσης" }, "lockouts": { "provider": "Φιλτράρισμα ανά πάροχο", "model": "Φιλτράρισμα ανά μοντέλο" }, "reset": { "description": "Επαναφορά κατάστασης breaker/cooldown", "provider": "Πάροχος προς επαναφορά", "connectionId": "Αναγνωριστικό σύνδεσης προς επαναφορά", "model": "Μοντέλο για επαναφορά κλειδώματος", "allCooldowns": "Επαναφορά όλων των cooldowns για τον πάροχο", "yes": "Παράλειψη επιβεβαίωσης" }, "profile": { "description": "Διαχείριση προφίλ ανθεκτικότητας", "name": "Όνομα προφίλ" }, "config": { "description": "Διαχείριση ρύθμισης ανθεκτικότητας", "threshold": "Όριο αποτυχιών", "resetTimeout": "Χρονικό όριο επαναφοράς σε ms", "baseCooldown": "Βασική περίοδος αναμονής σε ms" } }, "nodes": { "description": "Διαχείριση κόμβων παρόχου (endpoints)", "list": { "provider": "Φιλτράρισμα ανά πάροχο", "enabled": "Εμφάνιση μόνο ενεργών κόμβων" }, "add": { "provider": "Όνομα παρόχου", "baseUrl": "Βασικό URL για τον κόμβο", "name": "Όνομα κόμβου", "weight": "Βάρος εξισορρόπησης φόρτου", "region": "Ετικέτα περιοχής", "authHeader": "Προσαρμοσμένη κεφαλίδα ταυτοποίησης (key=value)" }, "update": { "baseUrl": "Νέο βασικό URL", "name": "Νέο όνομα", "weight": "Νέο βάρος", "region": "Νέα περιοχή", "enabled": "Ενεργοποίηση ή απενεργοποίηση (true|false)" }, "remove": { "yes": "Παράλειψη επιβεβαίωσης" }, "validate": { "baseUrl": "URL προς επικύρωση", "provider": "Πάροχος για επικύρωση" }, "test": { "description": "Αποστολή δοκιμαστικού αιτήματος στον κόμβο" }, "metrics": { "description": "Εμφάνιση μετρικών κόμβου", "period": "Χρονική περίοδος (π.χ. 24h, 7d)" } }, "context": { "description": "Ρύθμιση αγωγού μηχανικής πλαισίου (Caveman, RTK)", "analytics": { "period": "Χρονική περίοδος (π.χ. 7d, 30d)" }, "caveman": { "description": "Διαχείριση συμπιεστή πλαισίου Caveman", "config": { "description": "Εμφάνιση ή ενημέρωση ρύθμισης Caveman", "aggressiveness": "Επιθετικότητα 0.0–1.0", "maxShrinkPct": "Μέγιστο ποσοστό συρρίκνωσης", "preserveTags": "Ετικέτες προς διατήρηση, χωρισμένες με κόμμα" } }, "rtk": { "description": "Διαχείριση βελτιστοποιητή πλαισίου RTK", "config": { "description": "Εμφάνιση ή ενημέρωση ρύθμισης RTK", "tokenBudget": "Προϋπολογισμός token για RTK", "reservePct": "Ποσοστό αποθεματικού" }, "filters": { "description": "Διαχείριση φίλτρων RTK", "pattern": "Μοτίβο φίλτρου (regex)", "priority": "Προτεραιότητα φίλτρου (προεπιλογή: 100)", "action": "Ενέργεια φίλτρου: drop|shrink|replace", "yes": "Παράλειψη επιβεβαίωσης" }, "test": { "file": "Διαδρομή προς το αρχείο JSON αιτήματος" } }, "combos": { "description": "Διαχείριση combo με επίγνωση πλαισίου" } }, "sessions": { "description": "Επιθεώρηση και διαχείριση ενεργών συνεδριών", "list": { "user": "Φιλτράρισμα ανά χρήστη", "kind": "Φιλτράρισμα ανά τύπο (dashboard|api-key|mcp|a2a)", "active": "Εμφάνιση μόνο ενεργών συνεδριών", "limit": "Μέγιστα αποτελέσματα (προεπιλογή: 100)" }, "expire": { "yes": "Παράλειψη επιβεβαίωσης" }, "expireAll": { "user": "Χρήστης του οποίου οι συνεδρίες θα λήξουν", "yes": "Παράλειψη επιβεβαίωσης" } }, "tags": { "description": "Διαχείριση ετικετών πόρων", "add": { "color": "Χρώμα ετικέτας (hex ή όνομα)", "description": "Περιγραφή ετικέτας" }, "remove": { "yes": "Παράλειψη επιβεβαίωσης" }, "assign": { "tag": "Όνομα ετικέτας", "to": "Πόρος-στόχος ως type:id (π.χ. provider:openai)" }, "unassign": { "tag": "Όνομα ετικέτας", "from": "Πηγαίος πόρος ως type:id" } }, "openapi": { "description": "Πρόσβαση και δοκιμή της προδιαγραφής OpenAPI του OmniRoute", "dump": { "description": "Εξαγωγή προδιαγραφής OpenAPI στην stdout ή σε αρχείο", "format": "Μορφή εξόδου: yaml|json (προεπιλογή: yaml)", "out": "Αποθήκευση σε διαδρομή αρχείου" }, "validate": { "description": "Επικύρωση της προδιαγραφής OpenAPI" }, "try": { "description": "Δοκιμή ενός τελικού σημείου API μέσω της προδιαγραφής", "method": "Μέθοδος HTTP (προεπιλογή: GET)", "body": "Διαδρομή προς το αρχείο JSON του σώματος αιτήματος", "query": "Παράμετρος ερωτήματος ως key=value (επαναλαμβανόμενο)", "header": "Κεφαλίδα ως key=value (επαναλαμβανόμενο)" }, "endpoints": { "description": "Λίστα όλων των τελικών σημείων API", "search": "Φιλτράρισμα ανά διαδρομή ή σύνοψη" }, "paths": { "description": "Λίστα όλων των διαδρομών API" } }, "combo": { "title": "Combos", "switched": "Ενεργό combo: {name}", "created": "Δημιουργήθηκε combo: {name}", "deleted": "Διαγράφηκε combo: {name}", "noCombos": "Δεν έχουν ρυθμιστεί combos.", "confirmDelete": "Διαγραφή combo {name};", "suggest": { "description": "Πρόταση του καλύτερου combo για μια εργασία με χρήση βαθμολόγησης AI", "task": "Περιγραφή εργασίας", "maxCost": "Μέγιστο κόστος ανά αίτημα σε USD", "maxLatencyMs": "Μέγιστη καθυστέρηση σε χιλιοστά του δευτερολέπτου", "weights": "Βάρη βαθμολόγησης JSON π.χ. {\"latency\":0.7,\"cost\":0.3}", "top": "Αριθμός κορυφαίων υποψηφίων προς εμφάνιση (προεπιλογή: 5)", "explain": "Εκτύπωση αιτιολόγησης στο stderr", "switch": "Ενεργοποίηση του κορυφαίου συνδυασμού" } }, "oneproxy": { "description": "Διαχείριση της δεξαμενής upstream του OneProxy", "stats": { "provider": "Φιλτράρισμα ανά πάροχο", "period": "Χρονική περίοδος (προεπιλογή: 24h)" }, "fetch": { "description": "Ανάκτηση διακομιστών μεσολάβησης από τη δεξαμενή", "count": "Αριθμός διακομιστών μεσολάβησης προς ανάκτηση (προεπιλογή: 1)", "type": "Τύπος διακομιστή μεσολάβησης: http|socks5 (προεπιλογή: http)" }, "rotate": { "description": "Αναγκαστική εναλλαγή διακομιστή μεσολάβησης", "provider": "Πάροχος για τον οποίο γίνεται εναλλαγή", "connectionId": "Συγκεκριμένο αναγνωριστικό σύνδεσης για εναλλαγή" }, "config": { "description": "Εμφάνιση ή ενημέρωση ρυθμίσεων OneProxy", "enabled": "Ενεργοποίηση δεξαμενής διακομιστών μεσολάβησης (true|false)", "poolSize": "Μέγεθος δεξαμενής", "providerSource": "URL παρόχου διακομιστών μεσολάβησης", "rotationPolicy": "Πολιτική εναλλαγής: sticky|per-request|periodic" }, "pool": { "description": "Εμφάνιση τρέχουσας δεξαμενής διακομιστών μεσολάβησης με μετρήσεις" } }, "open": { "description": "Άνοιγμα συγκεκριμένης σελίδας του πίνακα ελέγχου OmniRoute στο πρόγραμμα περιήγησης", "url": "Εκτύπωση μόνο του URL, χωρίς άνοιγμα προγράμματος περιήγησης" }, "telemetry": { "description": "Πρόσβαση σε συγκεντρωτικά δεδομένα τηλεμετρίας", "summary": { "description": "Εμφάνιση συγκεντρωτικής σύνοψης τηλεμετρίας", "period": "Χρονική περίοδος: 24h|7d|30d (προεπιλογή: 24h)", "compareTo": "Σύγκριση με προηγούμενη περίοδο" }, "export": { "description": "Εξαγωγή συμβάντων τηλεμετρίας σε JSONL", "out": "Διαδρομή αρχείου εξόδου (προεπιλογή: telemetry.jsonl)", "period": "Χρονική περίοδος για εξαγωγή (προεπιλογή: 7d)" } }, "sync": { "description": "Συγχρονισμός ρυθμίσεων μεταξύ παρουσιών OmniRoute", "push": { "description": "Ώθηση ρυθμίσεων στο cloud ή σε απομακρυσμένη παρουσία", "target": "Στόχος (cloud ή context:name)", "bundle": "Τμήματα δέσμης προς συγχρονισμό", "dryRun": "Προεπισκόπηση χωρίς εφαρμογή" }, "pull": { "description": "Έλξη ρυθμίσεων από το cloud ή από απομακρυσμένη πηγή", "source": "Πηγή (cloud ή context:name)", "merge": "Συγχώνευση με υπάρχουσες ρυθμίσεις", "replace": "Αντικατάσταση υπαρχουσών ρυθμίσεων", "dryRun": "Προεπισκόπηση χωρίς εφαρμογή" }, "diff": { "source": "Περιβάλλον πηγής", "target": "Περιβάλλον στόχου" }, "bundle": { "description": "Εξαγωγή διαμόρφωσης ως αρχείο δέσμης", "include": "Τμήματα προς συμπερίληψη (διαχωρισμένα με κόμμα)" }, "import": { "description": "Εισαγωγή αρχείου δέσμης", "dryRun": "Επικύρωση χωρίς εφαρμογή" }, "initialize": { "fromCloud": "Αρχικοποίηση από εφεδρικό αντίγραφο cloud" }, "tokens": { "description": "Διαχείριση διακριτικών συγχρονισμού", "create": { "name": "Όνομα διακριτικού", "scope": "Εύρος διακριτικού", "ttl": "TTL διακριτικού (π.χ. 30d)" }, "revoke": { "yes": "Παράλειψη επιβεβαίωσης" } }, "resolve": { "description": "Επίλυση συγκρούσεων συγχρονισμού διαδραστικά" } }, "config": { "contexts": { "description": "Διαχείριση περιβαλλόντων/προφίλ διακομιστή (προσθήκη, χρήση, λίστα, εμφάνιση, αφαίρεση, μετονομασία, εξαγωγή, εισαγωγή)" }, "lang": { "description": "Διαχείριση γλώσσας εμφάνισης CLI", "getDescription": "Εμφάνιση του τρέχοντος ενεργού κωδικού γλώσσας", "setDescription": "Ορισμός γλώσσας εμφάνισης και αποθήκευσή της στη διαμόρφωση", "listDescription": "Εμφάνιση λίστας όλων των διαθέσιμων γλωσσών", "listTitle": "Διαθέσιμες Γλώσσες", "current": "Γλώσσα: {code} ({name})", "saved": "Η γλώσσα ορίστηκε σε {code} ({name}).", "noCode": "Απαιτείται κωδικός γλώσσας. Εκτελέστε 'omniroute config lang list' για να δείτε τους διαθέσιμους κωδικούς.", "unknown": "Άγνωστος κωδικός γλώσσας: {code}. Εκτελέστε 'omniroute config lang list' για να δείτε τους διαθέσιμους κωδικούς.", "alreadySet": "Η γλώσσα έχει ήδη οριστεί σε {code}.", "envHint": "Συμβουλή: μπορείτε επίσης να ορίσετε OMNIROUTE_LANG={code} στο περιβάλλον σας." } }, "completion": { "description": "Δημιουργία ή εγκατάσταση σεναρίων αυτόματης συμπλήρωσης φλοιού", "zsh": "Εκτύπωση σεναρίου αυτόματης συμπλήρωσης zsh", "bash": "Εκτύπωση σεναρίου αυτόματης συμπλήρωσης bash", "fish": "Εκτύπωση σεναρίου αυτόματης συμπλήρωσης fish", "install": "Καθολική εγκατάσταση σεναρίου αυτόματης συμπλήρωσης για τον εντοπισμένο φλοιό", "refresh": "Ανανέωση κρυφής μνήμης συνδυασμών/παρόχων/μοντέλων" }, "logs": { "description": "Ροή ή εξαγωγή αρχείων καταγραφής αιτημάτων", "follow": "Ροή αρχείων καταγραφής σε πραγματικό χρόνο", "filter": "Φιλτράρισμα κατά επίπεδο (error,warn,info) — διαχωρισμένα με κόμμα", "lines": "Αριθμός γραμμών προς ανάκτηση", "timeout": "Χρονικό όριο σύνδεσης σε ms", "baseUrl": "Βασικό URL API OmniRoute", "requestId": "Φιλτράρισμα κατά αναγνωριστικό αιτήματος", "apiKey": "Φιλτράρισμα κατά κλειδί API", "combo": "Φιλτράρισμα κατά όνομα combo", "status": "Φιλτράρισμα κατά κωδικό κατάστασης HTTP", "durationMin": "Ελάχιστη διάρκεια αιτήματος σε ms", "durationMax": "Μέγιστη διάρκεια αιτήματος σε ms", "export": "Αποθήκευση αρχείων καταγραφής σε αρχείο (json/jsonl/csv)", "exported": "Τα αρχεία καταγραφής αποθηκεύτηκαν στο {path}", "stopped": "Η ροή αρχείων καταγραφής διακόπηκε.", "streamError": "Σφάλμα ροής αρχείων καταγραφής: {message}" }, "tray": { "description": "Έλεγχος του εικονιδίου στην περιοχή ειδοποιήσεων", "show": "Εμφάνιση του εικονιδίου στην περιοχή ειδοποιήσεων (αν ο διακομιστής εκτελείται με --tray)", "hide": "Απόκρυψη του εικονιδίου από την περιοχή ειδοποιήσεων", "quit": "Έξοδος από το OmniRoute μέσω της περιοχής ειδοποιήσεων" }, "autostart": { "description": "Διαχείριση αυτόματης εκκίνησης του OmniRoute κατά την εκκίνηση (Linux: υπηρεσία χρήστη systemd)", "enable": "Ενεργοποίηση αυτόματης εκκίνησης κατά την εκκίνηση", "disable": "Απενεργοποίηση αυτόματης εκκίνησης κατά την εκκίνηση", "toggle": "Εναλλαγή αυτόματης εκκίνησης κατά την εκκίνηση", "status": "Εμφάνιση κατάστασης αυτόματης εκκίνησης" }, "runtime": { "description": "Διαχείριση εγγενών εξαρτήσεων χρόνου εκτέλεσης", "check": "Έλεγχος κατάστασης εγγενών εξαρτήσεων στον κατάλογο χρόνου εκτέλεσης", "repair": "Επανεγκατάσταση εγγενών εξαρτήσεων στον κατάλογο χρόνου εκτέλεσης", "repair_force": "Αναγκαστική επανεγκατάσταση ακόμα και αν είναι έγκυρες", "clean": "Αφαίρεση καταλόγου χρόνου εκτέλεσης (ελευθερώνει χώρο στο δίσκο)", "clean_yes": "Παράλειψη επιβεβαίωσης" }, "repl": { "description": "Διαδραστικό REPL πολλαπλών στροφών με LLM", "model": "Μοντέλο που θα χρησιμοποιηθεί (προεπιλογή: auto)", "combo": "Όνομα combo που θα χρησιμοποιηθεί", "system": "Προτροπή συστήματος", "resume": "Συνέχιση αποθηκευμένης συνεδρίας με βάση το όνομα" }, "plugin": { "description": "Διαχείριση πρόσθετων CLI (omniroute-cmd-*)", "list": "Εμφάνιση εγκατεστημένων πρόσθετων", "install": "Εγκατάσταση πρόσθετου από το npm ή τοπική διαδρομή", "remove": "Αφαίρεση εγκατεστημένου πρόσθετου", "info": "Εμφάνιση λεπτομερειών για εγκατεστημένο πρόσθετο", "search": "Αναζήτηση στο μητρώο npm για διαθέσιμα πρόσθετα", "update": "Ενημέρωση εγκατεστημένου/ων πρόσθετου/ων", "scaffold": "Δημιουργία βασικής δομής νέου πρόσθετου" }, "launch": { "description": "Εκκίνηση του Claude Code που δείχνει στο OmniRoute (τοπικά ή απομακρυσμένα, με --profile)", "token": "Διακριτικό που θα αποστέλλει ο Claude client (ANTHROPIC_AUTH_TOKEN)", "notRunning": "Το OmniRoute δεν είναι προσβάσιμο στη θύρα {port}. Εκκινήστε το με 'omniroute serve'.", "notFound": "Το CLI 'claude' δεν βρέθηκε στο PATH." }, "run": { "description": "Εκκίνηση ενός υποστηριζόμενου στόχου CLI μέσω του OmniRoute" }, "setupClaude": { "description": "Δημιουργία προφίλ Claude Code στο ~/.claude/profiles από τον κατάλογο μοντέλων του OmniRoute" }, "connect": { "description": "Σύνδεση σε απομακρυσμένο διακομιστή OmniRoute και είσοδος σε απομακρυσμένη λειτουργία" }, "tokens": { "description": "Διαχείριση διακριτικών πρόσβασης CLI με εύρος (απομακρυσμένη λειτουργία)" }, "configure": { "description": "Επιλογή παρόχου και μοντέλου από τον ενεργό διακομιστή και διαμόρφωση υποστηριζόμενου τοπικού CLI" }, "launchCodex": { "description": "Εκκίνηση του Codex CLI με κατεύθυνση στο OmniRoute (τοπικό ή απομακρυσμένο VPS)" }, "setupCodex": { "description": "Δημιουργία αρχείων προφίλ ~/.codex από τον ζωντανό κατάλογο μοντέλων του OmniRoute" }, "packs": { "description": "Διαχείριση προαιρετικών πακέτων χρόνου εκτέλεσης (ML / αυτοματισμός προγράμματος περιήγησης)", "listDescription": "Εμφάνιση λίστας προαιρετικών πακέτων και της κατάστασης εγκατάστασής τους", "installDescription": "Εγκατάσταση προαιρετικού πακέτου στο DATA_DIR", "verifyDescription": "Επαλήθευση εγκατεστημένων πακέτων έναντι του αποστελλόμενου ευρετηρίου αθροισμάτων ελέγχου", "removeDescription": "Αφαίρεση εγκατεστημένου προαιρετικού πακέτου", "sourceOpt": "Κατάλογος που περιέχει τα περιεχόμενα πακέτων και το ευρετήριο πακέτων", "warnNoIndex": "Το optional-packs.index.json δεν βρέθηκε — η εγκατάσταση/επαλήθευση δεν είναι διαθέσιμη σε αυτό το checkout (τα πακέτα desktop το συμπεριλαμβάνουν)", "errUnknown": "άγνωστο πακέτο: {name}", "errNoIndex": "το ευρετήριο πακέτων δεν βρέθηκε· χρησιμοποιήστε --source που να περιέχει το περιεχόμενο πακέτου (τα πακέτα desktop το συμπεριλαμβάνουν δίπλα στην εφαρμογή)", "installed": "το πακέτο \"{name}\" εγκαταστάθηκε και επαληθεύτηκε στο {dir}", "restartHint": "κάντε επανεκκίνηση του διακομιστή OmniRoute (ή της εφαρμογής desktop) ώστε το περιβάλλον εκτέλεσης να αναγνωρίσει το πακέτο", "removed": "το πακέτο \"{name}\" αφαιρέθηκε", "notInstalled": "το πακέτο \"{name}\" δεν ήταν εγκατεστημένο", "verifyOk": "όλα τα εγκατεστημένα πακέτα επαληθεύτηκαν", "verifyFailed": "{count} πακέτο/α απέτυχαν στην επαλήθευση", "noneInstalled": "δεν υπάρχουν εγκατεστημένα προαιρετικά πακέτα" } }