| # LANGUAGE translation of FILENAME.pot |
| # Copyright (C) 2018-2024 Savoir-faire Linux Inc. and contributors |
| # This file is distributed under the same license as the Jami documentation. |
| # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. |
| # |
| # Translators: |
| # Michalis Mich, 2022 |
| # Kostas Livanos <kostas.livs@gmail.com>, 2022 |
| # Vasileios Bakas, 2022 |
| # n^cha, 2023 |
| # savoirfairelinux <support@savoirfairelinux.com>, 2023 |
| # Oxoumas Taxeispriksei <focijin239@zefara.com>, 2023 |
| # |
| #, fuzzy |
| msgid "" |
| msgstr "" |
| "Project-Id-Version: Jami\n" |
| "Report-Msgid-Bugs-To: https://git.jami.net/savoirfairelinux/jami-docs/-/issues\n" |
| "POT-Creation-Date: 2024-04-23 02:52+0000\n" |
| "PO-Revision-Date: 2022-09-14 17:48+0000\n" |
| "Last-Translator: Oxoumas Taxeispriksei <focijin239@zefara.com>, 2023\n" |
| "Language-Team: Greek (https://app.transifex.com/savoirfairelinux/teams/49466/el/)\n" |
| "MIME-Version: 1.0\n" |
| "Content-Type: text/plain; charset=UTF-8\n" |
| "Content-Transfer-Encoding: 8bit\n" |
| "Language: el\n" |
| "Plural-Forms: nplurals=2; plural=(n != 1);\n" |
| |
| #: ../../../developer/account-management.md:1 |
| msgid "Account management" |
| msgstr "Διαχείριση λογαριασμού " |
| |
| #: ../../../developer/account-management.md:4 |
| msgid "" |
| "In this part, we will learn how to manage a Jami account. This means, how to" |
| " create a Jami account, modify the basic settings and delete the account. " |
| "This part will *NOT* explain what all the settings mean or how we can use " |
| "the account to do any action like adding a contact." |
| msgstr "" |
| |
| #: ../../../developer/account-management.md:6 |
| msgid "Create a new account" |
| msgstr "Δημιουργία νέου λογαριασμού " |
| |
| #: ../../../developer/account-management.md:8 |
| #: ../../../developer/account-management.md:89 ../../../developer/calls.md:8 |
| msgid "Daemon side" |
| msgstr "Η πλευρά του Ντέιμον" |
| |
| #: ../../../developer/account-management.md:10 |
| #: ../../../developer/account-management.md:91 |
| #: ../../../developer/account-management.md:116 |
| #: ../../../developer/account-management.md:143 |
| #: ../../../developer/account-management.md:168 |
| #: ../../../developer/account-management.md:192 |
| msgid "API" |
| msgstr "ΕΠΙ" |
| |
| #: ../../../developer/account-management.md:12 |
| #: ../../../developer/account-management.md:93 |
| #: ../../../developer/account-management.md:118 |
| #: ../../../developer/account-management.md:145 |
| #: ../../../developer/account-management.md:170 |
| msgid "In cx.ring.Ring.ConfigurationManager:" |
| msgstr "Στο cx.ring.Ring.ConfigurationManager:" |
| |
| #: ../../../developer/account-management.md:35 |
| msgid "" |
| "The details can be retrieven from the method `getAccountTemplate(type)` with" |
| " `type=RING` or `type=SIP`. For example, this is the following code used in " |
| "LRC." |
| msgstr "" |
| "Οι λεπτομέρειες μπορούν να ληφθούν από τη μέθοδο `getAccountTemplate(type)` " |
| "με `type=RING` ή `type=SIP`. Για παράδειγμα, αυτός είναι ο ακόλουθος κωδικός" |
| " που χρησιμοποιείται στο LRC." |
| |
| #: ../../../developer/account-management.md:62 |
| msgid "" |
| "When a new account is added, the signal `accountsChanged` will be emitted. " |
| "The client should update its internal structure after this signal with other" |
| " methods in ConfigurationManager." |
| msgstr "" |
| "Όταν προστίθεται ένα νέο λογαριασμό, θα εκδοθεί το σήμα `accountsChanged`. Ο" |
| " πελάτης θα πρέπει να ενημερώνει την εσωτερική του δομή μετά από αυτό το " |
| "σήμα με άλλες μεθόδους στο ConfigurationManager." |
| |
| #: ../../../developer/account-management.md:64 |
| #: ../../../developer/account-management.md:110 |
| msgid "Core" |
| msgstr "Κύρια" |
| |
| #: ../../../developer/account-management.md:66 |
| msgid "" |
| "The main logic to create a new account is located in " |
| "`src/ringdht/ringaccount.cpp`, in `RingAccount::createAccount`" |
| msgstr "" |
| "Η κύρια λογική για τη δημιουργία ενός νέου λογαριασμού βρίσκεται στο " |
| "`src/ringdht/ringaccount.cpp`, στο `RingAccount::createAccount`" |
| |
| #: ../../../developer/account-management.md:68 |
| msgid "How it works, from scratch" |
| msgstr "Πώς λειτουργεί, από το μηδέν" |
| |
| #: ../../../developer/account-management.md:70 |
| msgid "" |
| "A Jami account is in fact represented by some files stored in a gzip " |
| "archive. If a password is provided during the account creation, the archive " |
| "will be encrypted as following: `dht::crypto::aesEncrypt(archive, password)`" |
| " (`dht::crypto::aesEncrypt` is defined in OpenDHT and use " |
| "`nettle/{aes,gcm}`). This is what the archive will contain a big JSON file " |
| "with:" |
| msgstr "" |
| |
| #: ../../../developer/account-management.md:72 |
| msgid "" |
| "The private key `ringAccountKey` and certificate chain `ringAccountCert` " |
| "(base64 encoded)" |
| msgstr "" |
| "Το ιδιωτικό κλειδί `ringAccountKey` και η αλυσίδα πιστοποιητικών " |
| "`ringAccountCert` (κωδικοποιημένη βάση 64)" |
| |
| #: ../../../developer/account-management.md:73 |
| msgid "Generated CA key (for self-signed certificates) `ringCAKey`" |
| msgstr "" |
| "Γενερωμένο κλειδί CA (για αυτουπογραφούμενα πιστοποιητικά) `ringCAKey`" |
| |
| #: ../../../developer/account-management.md:74 |
| msgid "Revocated devices `ringAccountCRL`" |
| msgstr "Ακύρωση των διατάξεων `ringAccountCRL`" |
| |
| #: ../../../developer/account-management.md:75 |
| msgid "" |
| "The ethereum private key `ethKey` for the device. It's only used when you " |
| "register your name on `ns.jami.net`. Not mandatory." |
| msgstr "" |
| |
| #: ../../../developer/account-management.md:76 |
| msgid "The contacts" |
| msgstr "Οι επαφές" |
| |
| #: ../../../developer/account-management.md:77 |
| msgid "The account settings" |
| msgstr "Οι ρυθμίσεις λογαριασμού" |
| |
| #: ../../../developer/account-management.md:79 |
| msgid "So let's generate it!" |
| msgstr "Ας το δημιουργήσουμε!" |
| |
| #: ../../../developer/account-management.md:81 |
| #: ../../../developer/contact-management.md:162 |
| msgid "**TODO**" |
| msgstr "Ο ΟΤΟΝΟ" |
| |
| #: ../../../developer/account-management.md:84 |
| msgid "Delete the account" |
| msgstr "Διαγραφή λογαριασμού " |
| |
| #: ../../../developer/account-management.md:86 |
| msgid "" |
| "Deleting a Jami account is pretty simple. Because the keys are only on the " |
| "device, if the keys are deleted... the account is deleted! The only thing " |
| "outside the device is the username, on the nameserver. To remove this info, " |
| "it depends how the nameserver work. For example, it's not possible with " |
| "https://ns.jami.net" |
| msgstr "" |
| |
| #: ../../../developer/account-management.md:108 |
| msgid "" |
| "When the account is deleted, the signal `accountsChanged` will be emitted. " |
| "The client should update its internal structure after this signal with other" |
| " methods in ConfigurationManager." |
| msgstr "Όταν διαγράφεται ο λογαριασμός, θα εκδοθεί το σήμα `accountsChanged`." |
| |
| #: ../../../developer/account-management.md:112 |
| msgid "" |
| "The main logic to create a new account is located in `src/manager.cpp`, in " |
| "`Manager::removeAccount`. It removes the accounts files and update the " |
| "config (`dring.yml`)." |
| msgstr "" |
| "Η βασική λογική για τη δημιουργία ενός νέου λογαριασμού βρίσκεται στο " |
| "`src/manager.cpp`, στο `Manager::removeAccount`." |
| |
| #: ../../../developer/account-management.md:114 |
| msgid "Update the details of an account" |
| msgstr "" |
| |
| #: ../../../developer/account-management.md:135 |
| msgid "" |
| "The map can contains a partial update and `accountDetailsChanged` will be " |
| "emitted on success. `getAccountDetails`" |
| msgstr "" |
| |
| #: ../../../developer/account-management.md:137 |
| msgid "Add a device" |
| msgstr "" |
| |
| #: ../../../developer/account-management.md:139 |
| msgid "There is two possibilities to add a device." |
| msgstr "" |
| |
| #: ../../../developer/account-management.md:141 |
| msgid "Backup archive (Then import from backup)" |
| msgstr "" |
| |
| #: ../../../developer/account-management.md:166 |
| msgid "Export on DHT" |
| msgstr "" |
| |
| #: ../../../developer/account-management.md:188 |
| msgid "Then `exportOnRingEnded` is emitted." |
| msgstr "" |
| |
| #: ../../../developer/account-management.md:190 |
| msgid "Revoke device" |
| msgstr "Αφαίρεση συσκευής" |
| |
| #: ../../../developer/apis-of-jami.md:1 |
| msgid "The APIs of Jami" |
| msgstr "Οι API του Jami" |
| |
| #: ../../../developer/apis-of-jami.md:4 |
| msgid "OpenDHT" |
| msgstr "Επικοινωνία" |
| |
| #: ../../../developer/apis-of-jami.md:6 |
| msgid "" |
| "The documentation related to the API of OpenDHT is " |
| "[here](https://github.com/savoirfairelinux/opendht/wiki/API-Overview) and " |
| "will not be detailed in the following part." |
| msgstr "" |
| "Η τεκμηρίωση που σχετίζεται με το API του OpenDHT βρίσκεται " |
| "[εδώ]https://github.com/savoirfairelinux/opendht/wiki/API-Overview) και δεν " |
| "θα περιληφθεί λεπτομερώς στο παρακάτω μέρος." |
| |
| #: ../../../developer/apis-of-jami.md:8 |
| msgid "Daemon" |
| msgstr "Δαϊμόν" |
| |
| #: ../../../developer/apis-of-jami.md:10 |
| msgid "The managers" |
| msgstr "Οι διευθυντές" |
| |
| #: ../../../developer/apis-of-jami.md:12 |
| msgid "" |
| "The API of the daemon is decomposed between 5 Managers + 1 Instance file:" |
| msgstr "" |
| "Η API του daemon διασπασμένη μεταξύ 5 Διαχειριστές + 1 αρχείο παραδείγματος:" |
| |
| #: ../../../developer/apis-of-jami.md:13 |
| msgid "" |
| "The **CallManager** interface is used to manage call and conference related " |
| "actions. Since the Jami daemon supports multiple incoming/outgoing calls, " |
| "any actions involving a specific call must address the method by the means " |
| "of a unique callID. Jami daemon will generate a unique callID for outgoing " |
| "and incoming calls." |
| msgstr "" |
| "Η διεπαφή **CallManager** χρησιμοποιείται για τη διαχείριση των συναφών " |
| "κλήσεων και των συναθροιστικών ενεργειών. Δεδομένου ότι το daemon Jami " |
| "υποστηρίζει πολλές εισερχόμενες / αναχωρητικές κλήσεις, κάθε ενέργεια που " |
| "περιλαμβάνει μια συγκεκριμένη κλήση πρέπει να αντιμετωπίζει τη μέθοδο με τη " |
| "βοήθεια ενός μοναδικού callID." |
| |
| #: ../../../developer/apis-of-jami.md:14 |
| msgid "" |
| "The **ConfigurationManager** used to handle the configuration stuff: " |
| "accounts settings, user preferences, ..." |
| msgstr "" |
| "Ο **ConfigurationManager** χρησιμοποιείται για να χειριστεί τα πράγματα της " |
| "διαμόρφωσης: ρυθμίσεις λογαριασμών, προτιμήσεις χρήστη,..." |
| |
| #: ../../../developer/apis-of-jami.md:15 |
| msgid "The **PresenceManager** is used to track the presence of contacts" |
| msgstr "" |
| "Ο **PresenceManager** χρησιμοποιείται για την παρακολούθηση της παρουσίας " |
| "επαφών" |
| |
| #: ../../../developer/apis-of-jami.md:16 |
| msgid "The **VideoManager** used to manage video devices and renderers" |
| msgstr "" |
| "Ο **VideoManager** χρησιμοποιείται για τη διαχείριση συσκευών και ραντεβού " |
| "βίντεο" |
| |
| #: ../../../developer/apis-of-jami.md:17 |
| msgid "" |
| "The **Instance** is used to count the number of clients actually registered " |
| "to the core. When initializing your client, you need to register it against " |
| "the core by using this interface." |
| msgstr "" |
| "Η **Instance** χρησιμοποιείται για να μετρήσει τον αριθμό των πελατών που " |
| "έχουν εγγραφεί στην πυρήνα." |
| |
| #: ../../../developer/apis-of-jami.md:19 |
| msgid "DBUS" |
| msgstr "ΔΕΠΕ" |
| |
| #: ../../../developer/apis-of-jami.md:21 |
| msgid "" |
| "All the documentation and code for the dbus API is located in `jami-" |
| "daemon/bin/dbus`." |
| msgstr "" |
| "Όλη η τεκμηρίωση και ο κωδικός για την API dbus βρίσκονται στο `jami-" |
| "daemon/bin/dbus`." |
| |
| #: ../../../developer/apis-of-jami.md:23 |
| msgid "" |
| "If you use linux, you can use `d-feet` when the daemon is running to " |
| "manipulate the API (or with any another tool)." |
| msgstr "" |
| "Εάν χρησιμοποιείτε Linux, μπορείτε να χρησιμοποιήσετε `d-feet` όταν το " |
| "δαίμονο τρέχει για να χειριστεί το API (ή με οποιοδήποτε άλλο εργαλείο)." |
| |
| #: ../../../developer/apis-of-jami.md:25 |
| msgid "The LRC project uses this API (and use libwrap on windows and mac os)." |
| msgstr "" |
| "Το έργο LRC χρησιμοποιεί αυτή την API (και χρησιμοποιεί libwrap σε Windows " |
| "και macOS)." |
| |
| #: ../../../developer/apis-of-jami.md:27 |
| msgid "JNI" |
| msgstr "ΙΝΙ" |
| |
| #: ../../../developer/apis-of-jami.md:29 |
| msgid "" |
| "All the documentation and code for the JNI API is located in `jami-" |
| "daemon/bin/jni`." |
| msgstr "" |
| "Όλη η τεκμηρίωση και ο κωδικός για την API JNI βρίσκεται στο `jami-" |
| "daemon/bin/jni`." |
| |
| #: ../../../developer/apis-of-jami.md:31 |
| msgid "node js" |
| msgstr "Δένδρο js" |
| |
| #: ../../../developer/apis-of-jami.md:33 |
| msgid "" |
| "All the documentation and code for the Node JS API is located in `jami-" |
| "daemon/bin/nodejs`. This API is not used in any known project and maybe is " |
| "not up-to-date." |
| msgstr "" |
| "Όλη η τεκμηρίωση και ο κωδικός για το Node JS API βρίσκεται στο `jami-" |
| "daemon/bin/nodejs`." |
| |
| #: ../../../developer/apis-of-jami.md:35 |
| msgid "REST" |
| msgstr "ΕΝΑΣΚΑΝΤΑ" |
| |
| #: ../../../developer/apis-of-jami.md:37 |
| msgid "" |
| "All the documentation and code for the REST API is located in `jami-" |
| "daemon/bin/restcpp`. This API is not used in any known project and maybe is " |
| "not up-to-date." |
| msgstr "" |
| "Όλη η τεκμηρίωση και ο κωδικός για το REST API βρίσκεται στο `jami-" |
| "daemon/bin/restcpp`." |
| |
| #: ../../../developer/apis-of-jami.md:39 |
| msgid "Python wrapper" |
| msgstr "Πυθόνη" |
| |
| #: ../../../developer/apis-of-jami.md:41 |
| msgid "" |
| "A Python wrapper is available in `jami-daemon/tools/jamictrl`. This wrapper " |
| "uses DBus." |
| msgstr "" |
| "Ένα περιτύλιγμα Python είναι διαθέσιμο σε `jami-daemon/tools/jamictrl`." |
| |
| #: ../../../developer/banned-contacts.md:1 |
| msgid "Banned contacts" |
| msgstr "Απαγορευμένοι επαφές" |
| |
| #: ../../../developer/banned-contacts.md:4 |
| msgid "" |
| "Following information are here for development purposes and may not reflect " |
| "the current state of any Jami client." |
| msgstr "" |
| |
| #: ../../../developer/banned-contacts.md:7 |
| msgid "Introducing scenario" |
| msgstr "Σύνταξη σενάριο" |
| |
| #: ../../../developer/banned-contacts.md:10 |
| msgid "Let's explain banned contacts with a simple scenario:" |
| msgstr "Ας εξηγήσουμε τις απαγορευμένες επαφές με ένα απλό σενάριο:" |
| |
| #: ../../../developer/banned-contacts.md:12 |
| msgid "" |
| "Alice and Jessica are friends, and like all good friends do, they use Jami " |
| "to communicate. They are both Jami contact of each other, so Alice is a " |
| "contact of Jessica and Jessica is a contact of Alice. Some day however, " |
| "Jessica does something really bad to Alice and Alice doesn't want to hear " |
| "from her anymore. Instead of removing Jessica from her Ring contacts -- " |
| "which would still allow Jessica to send her contact requests, Alice *bans* " |
| "Jessica." |
| msgstr "" |
| |
| #: ../../../developer/banned-contacts.md:20 |
| msgid "**So, what does it mean ?**" |
| msgstr "Τι σημαίνει αυτό;" |
| |
| #: ../../../developer/banned-contacts.md:22 |
| msgid "In the daemon" |
| msgstr "Στο δαίμονα" |
| |
| #: ../../../developer/banned-contacts.md:25 |
| msgid "Jessica *won't be notified that she was banned by Alice*." |
| msgstr "Η Τζέσικα δεν θα ενημερωθεί ότι απαγορεύτηκε από την Άλις." |
| |
| #: ../../../developer/banned-contacts.md:27 |
| msgid "" |
| "As a *banned contact* of Alice, Jessica *won't be allowed to contact her " |
| "anymore*, in any way. Text messages, voice or video calls won't be " |
| "acknowledged or answered in any way. Alice won't even be aware that Jessica " |
| "tried to contact her." |
| msgstr "" |
| "Ως μια *απαγορευμένη επαφή* με την Άλις, η Τζέσικα *δεν θα έχει πλέον την " |
| "άδεια να επικοινωνήσει μαζί της, με κανένα τρόπο. Τα μηνύματα κειμένου, φωνή" |
| " ή βίντεο κλήσεις δεν θα αναγνωρίζονται ή δεν θα απαντούν με κανένα τρόπο." |
| |
| #: ../../../developer/banned-contacts.md:32 |
| msgid "Banned contacts are synched across linked devices like other contacts." |
| msgstr "" |
| "Οι απαγορευμένοι επαφές συγχρονίζονται σε συνδεδεμένες συσκευές όπως και οι " |
| "άλλοι επαφές." |
| |
| #: ../../../developer/banned-contacts.md:34 |
| msgid "In Jami clients (recommended implementation)" |
| msgstr "Σε πελάτες Jami (υπολογημένη εφαρμογή)" |
| |
| #: ../../../developer/banned-contacts.md:37 |
| msgid "" |
| "As long as Jessica is a banned contact, the conversation with Jessica " |
| "doesn't appears in the conversations list. The conversation history, " |
| "however, is not deleted. Jessica appears in Alice' account banned contact " |
| "list. Alice might also find/open the conversation by performing an exact " |
| "search for Jessica' username." |
| msgstr "" |
| "Όσο η Τζέσικα είναι απαγορευμένη επαφή, η συνομιλία με την Τζέσικα δεν " |
| "εμφανίζεται στη λίστα συνομιλιών. Το ιστορικό συνομιλιών, ωστόσο, δεν " |
| "διαγράφεται. Η Τζέσικα εμφανίζεται στη λίστα απαγορευμένων επαφών του " |
| "λογαριασμού της Αλίκης. Η Αλίκη μπορεί επίσης να βρει/ανοίξει τη συνομιλία " |
| "εκτελώντας ακριβή αναζήτηση για το όνομα χρήστη της Τζέσικα." |
| |
| #: ../../../developer/banned-contacts.md:43 |
| msgid "" |
| "Alice can un-ban Jessica from the conversation or the banned contact list." |
| msgstr "" |
| "Η Άλις μπορεί να απαγορεύσει την Τζέσικα από τη συζήτηση ή την απαγορευμένη " |
| "λίστα επαφών." |
| |
| #: ../../../developer/banned-contacts.md:46 |
| msgid "" |
| "The search result and the conversation indicates Jessica' banned status. " |
| "Alice must unban Jessica to send her a message, call her or otherwise " |
| "interract with her." |
| msgstr "" |
| "Η Αλίκη πρέπει να απαγορεύσει την Τζέσικα να της στέλνει μήνυμα, να την " |
| "καλεί ή να επικοινωνεί με αυτήν." |
| |
| #: ../../../developer/banned-contacts.md:50 |
| msgid "" |
| "Alice can still delete the conversation history using a *Delete History* " |
| "button." |
| msgstr "" |
| "Η Alice μπορεί ακόμα να διαγράψει το ιστορικό συνομιλιών χρησιμοποιώντας το " |
| "κουμπί * Διαγράψτε το ιστορικό *." |
| |
| #: ../../../developer/calls.md:1 ../../../developer/swarm.md:536 |
| #: ../../../developer/synchronizing-profiles.md:19 |
| msgid "Calls" |
| msgstr "Κλήσεις" |
| |
| #: ../../../developer/calls.md:4 |
| msgid "" |
| "**NOTE: this page detail the principle for Jami accounts. For SIP accounts, " |
| "the SIP protocol is used.**" |
| msgstr "**ΑΝΤΑΣΗ: η σελίδα αυτή περιγράφει την αρχή για λογαριασμούς Jami." |
| |
| #: ../../../developer/calls.md:6 |
| msgid "Let's do a call in Jami!" |
| msgstr "Ας κάνουμε ένα τηλεφώνημα στο Τζάμι!" |
| |
| #: ../../../developer/calls.md:10 |
| msgid "" |
| "When creating a call between two peers, Jami mainly uses known protocols " |
| "such as ICE, SIP or TLS. However, to make it distributed, the process of " |
| "creating a call is a bit different. To summarize, when someone wants to " |
| "contact one of its contact, this is what they will do:" |
| msgstr "" |
| "Όταν δημιουργεί μια κλήση μεταξύ δύο ομοτίμων, η Jami χρησιμοποιεί κυρίως " |
| "γνωστά πρωτόκολλα όπως ICE, SIP ή TLS. Ωστόσο, για να γίνει διανεμημένη, η " |
| "διαδικασία δημιουργίας κλήσης είναι λίγο διαφορετική." |
| |
| #: ../../../developer/calls.md:12 |
| msgid "" |
| "Search the contact presence on the DHT (for more details, see {doc}`contact-" |
| "management`)" |
| msgstr "" |
| "Αναζητήστε την παρουσία επαφών στο DHT (για περισσότερες λεπτομέρειες, βλέπε" |
| " {doc}`-contact-management`)" |
| |
| #: ../../../developer/calls.md:13 |
| msgid "" |
| "Once the contact is found, send a call request, announcing the known " |
| "candidates (the ip of each network interfaces + relay addresses (TURN) + " |
| "reflexives addresses (UPnP, public ones)." |
| msgstr "" |
| "Μόλις βρεθεί η επαφή, στείλτε αίτηση κλήσης, ανακοινώνοντας τους γνωστούς " |
| "υποψηφίους (η διεύθυνση IP κάθε διεπαφής δικτύου + διευθύνσεις μεταφοράς " |
| "(TURN) + διευθύνσεις αντανακλαστικών (UPnP, δημόσιες)." |
| |
| #: ../../../developer/calls.md:14 |
| msgid "" |
| "Wait for the response of the contact (they will respond their known " |
| "addresses)." |
| msgstr "" |
| "Περιμένετε την απάντηση του επικοινωνούμενου (θα απαντήσουν στις γνωστές " |
| "διευθύνσεις τους)." |
| |
| #: ../../../developer/calls.md:15 |
| msgid "" |
| "Negotiate the socket via ICE. In fact, two ICE sessions are negotiated. One " |
| "(preferred) in TCP, one in UDP (as a fallback)." |
| msgstr "" |
| "Διαπραγματεύονται δύο συνεδρίες ICE. Μια (προτιμότερη) στο TCP, μια στο UDP " |
| "(ως αποτυχία)." |
| |
| #: ../../../developer/calls.md:16 |
| msgid "Then, the socket is encrypted in TLS (if TCP) or DTLS (if UDP)." |
| msgstr "Στη συνέχεια, η πρίζα κρυπτογραφηθεί σε TLS (αν TCP) ή DTLS (αν UDP)." |
| |
| #: ../../../developer/calls.md:17 |
| msgid "" |
| "The contact is now able to accept or decline the call. When they accept, a " |
| "ICE transport (UDP only for now) is negotiated to create 4 new sockets for " |
| "the medias (2 for audio, 2 for video)." |
| msgstr "" |
| "Όταν αποδέχονται, διαπραγματεύεται μια μεταφορά ICE (UDP μόνο για το παρόν) " |
| "για τη δημιουργία 4 νέων πηγών για τα μέσα ενημέρωσης (2 για το ήχο, 2 για " |
| "το βίντεο)." |
| |
| #: ../../../developer/calls.md:18 |
| msgid "The call is now alive!" |
| msgstr "Η κλήση είναι ζωντανή τώρα!" |
| |
| #: ../../../developer/calls.md:20 |
| msgid "Exchange ICE candidates" |
| msgstr "Ανταλλαγή υποψηφίων ICE" |
| |
| #: ../../../developer/calls.md:22 |
| msgid "" |
| "Everything really starts in `jamiaccount.cpp` " |
| "(`JamiAccount::startOutgoingCall`). Once both ICE objects are ready and when" |
| " the contact is found via the DHT, the call request for the contact is " |
| "crafted. This request contains all the informations necessary for the remote" |
| " ICE session defined by:" |
| msgstr "" |
| "Όλα αρχίζουν πραγματικά στο `jamiaccount.cpp` " |
| "(`JamiAccount::startOutgoingCall`). Μόλις τα δύο αντικείμενα ICE είναι " |
| "έτοιμα και όταν η επαφή βρεθεί μέσω του DHT, το αίτημα κλήσης για την επαφή " |
| "δημιουργείται." |
| |
| #: ../../../developer/calls.md:28 |
| msgid "" |
| "where `callvid` is a random number used to identify the call and blob " |
| "contains two concatened ICE messages (`IceTransport::packIceMsg` in " |
| "`ice_transport.cpp`) containing the password of the session, the *ufrag* and" |
| " ICE candidates.) like:" |
| msgstr "" |
| "όπου `callvid` είναι τυχαίο αριθμός που χρησιμοποιείται για την αναγνώριση " |
| "της κλήσης και η πλειοψηφία περιέχει δύο συνδεδεμένα μηνύματα ICE " |
| "(`IceTransport::packIceMsg` in `ice_transport.cpp`) που περιέχουν το κωδικό " |
| "πρόσβασης της συνεδρίας, τους *ufrag* και τους υποψηφίους ICE.) όπως:" |
| |
| #: ../../../developer/calls.md:48 |
| msgid "" |
| "and is sent via the DHT in an encrypted message for the device to " |
| "`hash(callto:xxxxxx)` where `xxxxxx` is the device id. The peer will answer " |
| "at the exact same place (but encrypted for the sender device) its own " |
| "`dht::IceCandidates`. See `JamiAccount::replyToIncomingIceMsg` for more " |
| "details." |
| msgstr "" |
| "και αποστέλλεται μέσω του DHT σε κρυπτογραφημένο μήνυμα για τη συσκευή σε " |
| "`hash(call:xxxxxx)` όπου `xxxxxx` είναι το id της συσκευής. Ο συνάδελφος θα " |
| "απαντήσει ακριβώς στο ίδιο μέρος (αλλά κρυπτογραφημένο για τη συσκευή " |
| "αποστολής) του δικού του `dht::IceCandidates`. Βλ. " |
| "`JamiAccount::replyToIncomingIceMsg` για περισσότερες λεπτομέρειες." |
| |
| #: ../../../developer/calls.md:50 |
| msgid "" |
| "The ICE session is created both side when they have all the candidates (so " |
| "for the sender, when the reply from the contact is received)." |
| msgstr "" |
| "Η συνεδρίαση ICE δημιουργείται και από τις δύο πλευρές όταν έχουν όλους τους" |
| " υποψηφισμένους (όπως για τον αποστολέα, όταν λαμβάνεται η απάντηση από τον " |
| "επαφή)." |
| |
| #: ../../../developer/calls.md:52 |
| msgid "ICE negotiation" |
| msgstr "Διαπραγματεύσεις ICE" |
| |
| #: ../../../developer/calls.md:54 |
| msgid "" |
| "Pending calls are managed by `JamiAccount::handlePendingCallList()`, which " |
| "first wait that the TCP negotiation finish (and if it fails, wait for the " |
| "UDP one). The code for the ICE negotiation is mainly managed by " |
| "[pjproject](https://github.com/pjsip/pjproject) but for Jami, the " |
| "interesting part is located in `ice_transport.cpp`. Moreover, we add some " |
| "important patches/features on top of *pjproject* not merged upstream for now" |
| " (for example, ICE over TCP). These patches are present in " |
| "`contrib/src/pjproject`." |
| msgstr "" |
| "Οι αναμενόμενες κλήσεις διαχειρίζονται το " |
| "`JamiAccount::handlePendingCallList()`, οι οποίες πρώτα περιμένουν το τέλος " |
| "της διαπραγμάτευσης TCP (και αν αποτύχει, περιμένετε το UDP). Ο κωδικός για " |
| "τη διαπραγμάτευση ICE διαχειρίζεται κυρίως το " |
| "[pjproject]https://github.com/pjsip/pjproject) αλλά για το Jami, το " |
| "ενδιαφέρον μέρος βρίσκεται στο `ice_transport.cpp`. Επιπλέον, προσθέτουμε " |
| "ορισμένες σημαντικές πατς/λειτουργίες πάνω από το *pjproject* που δεν " |
| "συγχωνεύτηκαν προς τα εμπρός προς το παρόν (για παράδειγμα, το ICE πάνω από " |
| "το TCP)." |
| |
| #: ../../../developer/calls.md:56 |
| msgid "Encrypt the control socket" |
| msgstr "Κρυπτογράφηση της πρίζας ελέγχου" |
| |
| #: ../../../developer/calls.md:58 |
| msgid "" |
| "Once the socket is created and managed by an **IceTransport** instance, it " |
| "is then wrapped in a **SipTransport** corresponding to a *TlsIceTransport*. " |
| "The main code is located into `JamiAccount::handlePendingCall()` and the " |
| "wrapping is done into `SipTransportBroker::getTlsIceTransport`. Finally, our" |
| " session is managed by **TlsSession** in " |
| "`daemon/src/security/tls_session.cpp` and uses the GnuTLS library." |
| msgstr "" |
| "Μόλις δημιουργηθεί και διαχειριστείται η πρίζα από μια περίπτωση " |
| "**IceTransport**, στη συνέχεια τυλιγείται σε μια **SipTransport** που " |
| "αντιστοιχεί σε μια *TlsIceTransport*. Ο κύριος κωδικός βρίσκεται στο " |
| "`JamiAccount::handlePendingCall()` και η τυλιγμένη γίνεται σε " |
| "`SipTransportBroker::getTlsIceTransport`. Τέλος, η συνεδρία μας " |
| "διαχειρίζεται από **TlsSession** σε `daemon/src/security/tls_session.cpp` " |
| "και χρησιμοποιεί τη βιβλιοθήκη GnuTLS." |
| |
| #: ../../../developer/calls.md:60 |
| msgid "" |
| "So, the control socket will be a TLS (1.3 if your and your peer gnutls " |
| "version support it) if a TCP socket is negotiated. If a UDP socket is " |
| "negotiated instead (due to firewall restrictions/problem in the " |
| "negotiation/etc), the socket will use DTLS (still managed by the same " |
| "parts)." |
| msgstr "" |
| "Έτσι, η πρίζα ελέγχου θα είναι TLS (1.3 αν η έκδοση σας και των γνητούχων " |
| "σας τη υποστηρίζουν) αν μια πρίζα TCP διαπραγματεύεται. Αν μια πρίζα UDP " |
| "διαπραγματεύεται αντί αυτού (λόγω περιορισμών του firewall / προβλήματος στη" |
| " διαπραγμάτευση / κλπ), η πρίζα θα χρησιμοποιεί DTLS (ακόμα διαχειρίζεται " |
| "από τα ίδια μέρη)." |
| |
| #: ../../../developer/calls.md:62 |
| msgid "" |
| "The control socket is used to transmit SIP packets, like invites, custom " |
| "messages (Jami sends the VCard of your profile on this socket at the start " |
| "of the call, or the rotation of the camera), text messages." |
| msgstr "" |
| "Η πρίζα ελέγχου χρησιμοποιείται για τη μετάδοση πακέτων SIP, όπως " |
| "προσκλήσεις, προσαρμοσμένα μηνύματα (ο Jami στέλνει την VCard του προφίλ σας" |
| " σε αυτή τη πρίζα στην αρχή της κλήσης, ή την περιστροφή της κάμερας), " |
| "μηνύματα κειμένου." |
| |
| #: ../../../developer/calls.md:64 |
| msgid "Related articles:" |
| msgstr "Άρθρα που σχετίζονται με:" |
| |
| #: ../../../developer/calls.md:66 |
| msgid "https://jami.net/improved-video-rotation-support/" |
| msgstr "https://jami.net/improved-video-rotation-support/" |
| |
| #: ../../../developer/calls.md:67 |
| msgid "https://jami.net/peer-to-peer-file-sharing-support-in-jami/" |
| msgstr "https://jami.net/peer-to-peer-file-sharing-support-in-jami/" |
| |
| #: ../../../developer/calls.md:69 |
| msgid "Media sockets" |
| msgstr "Κύκλες μέσων ενημέρωσης" |
| |
| #: ../../../developer/calls.md:71 |
| msgid "" |
| "Media sockets are SRTP sockets where the key is negotiated through the TLS " |
| "Session previously created. **TODO**" |
| msgstr "" |
| "Τα media sockets είναι SRTP sockets όπου το κλειδί διαπραγματεύεται μέσω της" |
| " TLS Session που έχει δημιουργηθεί προηγουμένως. ** TODO**" |
| |
| #: ../../../developer/calls.md:74 ../../../developer/drt.rst:140 |
| msgid "Architecture" |
| msgstr "Αρχιτεκτονική" |
| |
| #: ../../../developer/calls.md:76 |
| msgid "**TOOD**" |
| msgstr "ΠΟΛΟΣ" |
| |
| #: ../../../developer/calls.md:79 |
| msgid "Multi-stream" |
| msgstr "Πολλαπλής ροής" |
| |
| #: ../../../developer/calls.md:81 |
| msgid "" |
| "Since daemon's version 13.3.0, multi-stream is fully supported. This " |
| "feature allows users to share multiple videos during a call at the same " |
| "time. In the following parts, we will describe all related changes." |
| msgstr "" |
| "Από την έκδοση 13.3.0 του Daemon, το multi-stream υποστηρίζεται πλήρως." |
| |
| #: ../../../developer/calls.md:86 |
| msgid "pjsip" |
| msgstr "Πιτζίπ" |
| |
| #: ../../../developer/calls.md:88 |
| msgid "" |
| "The first part is to negotiate enough media streams. In fact, every media " |
| "stream uses 2 UDP sockets. We consider three scenarios:" |
| msgstr "" |
| "Το πρώτο μέρος είναι να διαπραγματευτούμε αρκετές ροές μέσων ενημέρωσης. " |
| "Στην πραγματικότητα, κάθε ροή μέσων ενημέρωσης χρησιμοποιεί 2 UDP sockets." |
| |
| #: ../../../developer/calls.md:91 |
| msgid "" |
| "If it's the host of a conference who wants to add media, there is nothing " |
| "more to negotiate, because we already mix the videos into one stream. So, " |
| "we add the new media directly to the video-mixer without negotiations." |
| msgstr "" |
| "Αν είναι ο οικοδεσπότης μιας διάσκεψης που θέλει να προσθέσει μέσα " |
| "ενημέρωσης, δεν υπάρχει τίποτα άλλο να διαπραγματευτεί, επειδή ήδη " |
| "αναμιγνύουμε τα βίντεο σε ένα ρεύμα. Έτσι, προσθέτουμε τα νέα μέσα " |
| "ενημέρωσης απευθείας στο βίντεο-μιξέρ χωρίς διαπραγματεύσεις." |
| |
| #: ../../../developer/calls.md:96 |
| msgid "" |
| "If we're in 1:1, for now, as there is no conference information, multi-" |
| "stream is not supported." |
| msgstr "" |
| "Αν είμαστε σε 1:1, για την ώρα, καθώς δεν υπάρχει καμία πληροφορία για τη " |
| "διάσκεψη, δεν υποστηρίζεται το multi-stream." |
| |
| #: ../../../developer/calls.md:99 |
| msgid "Else, 2 new sockets are negotiated for new media." |
| msgstr "Διαπραγματεύονται δύο νέες πηγές για νέα μέσα." |
| |
| #: ../../../developer/calls.md:101 |
| msgid "" |
| "To make pjsip able to generate more sockets per ICE session, " |
| "`PJ_ICE_COMP_BITS` was modified to `5` (which corresponds to `2^5`, so 32 " |
| "streams)." |
| msgstr "" |
| "Για να γίνει δυνατό να παράγεται περισσότερες πηγές ανά συνεδρία ICE, η " |
| "`PJ_ICE_COMP_BITS` τροποποιήθηκε σε `5` (που αντιστοιχεί σε `2^5`, οπότε 32 " |
| "ρεύματα)." |
| |
| #: ../../../developer/calls.md:105 |
| msgid "Deprecate switchInput, support requestMediaChange" |
| msgstr "Επαλλαγή υποβολής, αίτηση υποστήριξηςΜεταξύ" |
| |
| #: ../../../developer/calls.md:107 |
| msgid "" |
| "In the daemon, the old API `switchInput` is now **DEPRECATED**; same for " |
| "`switchSecondaryInput`:" |
| msgstr "" |
| "Στο δαίμονα, η παλιά API `switchInput` είναι τώρα **DEPRECATED**; το ίδιο " |
| "για `switchSecondaryInput`:" |
| |
| #: ../../../developer/calls.md:133 |
| msgid "`requestMediaChange` replaces this, for both calls and conferences:" |
| msgstr "" |
| "`requestMediaChange` αντικαθιστά αυτό, τόσο για τις κλήσεις όσο και για τις " |
| "συνεδριάσεις:" |
| |
| #: ../../../developer/calls.md:157 |
| msgid "Compability" |
| msgstr "Συγκρίσιμη" |
| |
| #: ../../../developer/calls.md:159 |
| msgid "" |
| "If a call is done with a peer where the daemon's version is < 13.3.0, multi-" |
| "stream is not enabled and the old behavior is used (1 video only)." |
| msgstr "" |
| "Εάν μια κλήση γίνεται με ένα peer όπου η έκδοση του δήμου είναι < 13.3.0, " |
| "δεν ενεργοποιείται το multi-stream και χρησιμοποιείται η παλιά συμπεριφορά " |
| "(1 μόνο βίντεο)." |
| |
| #: ../../../developer/calls.md:163 |
| msgid "Identifications of streams" |
| msgstr "Ταυτοποίηση των ροών" |
| |
| #: ../../../developer/calls.md:165 |
| msgid "" |
| "Because there can be multiple streams now, every media stream is identified " |
| "by its identifier, and the format is \"<type>_<idx>\"; for example: " |
| "\"audio_0\", \"video_2\", etc." |
| msgstr "" |
| "Επειδή μπορεί να υπάρχουν πολλαπλές ροές τώρα, κάθε ροή μέσων ενημέρωσης " |
| "αναγνωρίζεται από τον αναγνωριστικό του, και η μορφή είναι \"<type>_<idx>\";" |
| " για παράδειγμα: \"audio_0\", \"video_2\", κλπ." |
| |
| #: ../../../developer/calls.md:169 |
| msgid "Rotation" |
| msgstr "Γύρισμα" |
| |
| #: ../../../developer/calls.md:171 ../../../developer/calls.md:187 |
| #: ../../../developer/calls.md:201 |
| msgid "The XML was updated to add the wanted stream:" |
| msgstr "Το XML ενημερώθηκε για να προσθέσει το αναζητούμενο ρεύμα:" |
| |
| #: ../../../developer/calls.md:185 |
| msgid "Key-frame" |
| msgstr "Κλειδιά" |
| |
| #: ../../../developer/calls.md:199 |
| msgid "Voice activity" |
| msgstr "Ακτιβισμός φωνής" |
| |
| #: ../../../developer/calls.md:215 |
| msgid "Conference" |
| msgstr "Συνδιάσκεψη" |
| |
| #: ../../../developer/calls.md:217 |
| msgid "Reflected changes are documented {doc}`here <conference-protocol>`." |
| msgstr "" |
| "Οι αναφλεγμένες αλλαγές καταγράφονται εδώ <doc}` <conference-protocol>`." |
| |
| #: ../../../developer/calls.md:219 |
| msgid "Client" |
| msgstr "Πελάτης" |
| |
| #: ../../../developer/calls.md:221 |
| msgid "" |
| "Even if the back-end supports up to 32 media at the same time, except for " |
| "custom clients we currently recommend only giving the ability to share one " |
| "camera and one video at the same time. The camera is controlled via the " |
| "camera button, and the other media via the \"Share\" button." |
| msgstr "" |
| "Ακόμα και αν το back-end υποστηρίζει έως και 32 μέσα ενημέρωσης ταυτόχρονα, " |
| "εκτός από προσαρμοσμένους πελάτες, συνιστούμε σήμερα να δίνεται μόνο η " |
| "δυνατότητα να μοιραστεί κανείς μία κάμερα και ένα βίντεο ταυτόχρονα." |
| |
| #: ../../../developer/calls.md:227 |
| msgid "" |
| "In client-qt, the interesting part is in `AvAdapter` (methods like " |
| "`isCapturing`, `shareAllScreens`, `stopSharing`). In the library's logic, " |
| "`addMedia` and `removeMedia` in the `callModel` directly use the " |
| "`requestMediaChange` and can be used as a design reference." |
| msgstr "" |
| "Στο client-qt, το ενδιαφέρον μέρος είναι στο `AvAdapter` (μέθοδοι όπως " |
| "`isCapturing`, `shareAllScreens`, `stopSharing`)." |
| |
| #: ../../../developer/calls-in-swarm.md:1 |
| msgid "Calls in Swarm" |
| msgstr "Επισκέψεις" |
| |
| #: ../../../developer/calls-in-swarm.md:4 |
| msgid "Goals" |
| msgstr "Στόχοι" |
| |
| #: ../../../developer/calls-in-swarm.md:6 |
| msgid "" |
| "This page aims to describe how call will works with groups. This method will" |
| " allow clients to provides call for multiple participants with a shared text" |
| " history. The protocol must be flexible, keep compatibility with the SIP " |
| "stack, adn must work in a distributed environment. This distributed " |
| "environment also brings some challenges, such as possible race conditions " |
| "(where multiple parties can start a call at the same time). Finally, because" |
| " the Swarm can be with members only using mobiles, or by companies with " |
| "dedicated servers to mix the video, it should also be able to work with the " |
| "best experience possible on heterogeneous environment." |
| msgstr "" |
| "Η παρούσα σελίδα έχει ως στόχο να περιγράψει πώς θα λειτουργήσει η κλήση με " |
| "ομάδες. Αυτή η μέθοδος θα επιτρέψει στους πελάτες να παρέχουν κλήση για " |
| "πολλούς συμμετέχοντες με κοινό ιστορικό κειμένου. Το πρωτόκολλο πρέπει να " |
| "είναι ευέλικτο, να διατηρεί συμβατότητα με το SIP stack, το adn πρέπει να " |
| "λειτουργεί σε διανεμημένο περιβάλλον. Αυτό το διανεμημένο περιβάλλον φέρνει " |
| "επίσης ορισμένες προκλήσεις, όπως πιθανές συνθήκες φυλής (όπου πολλοί φορείς" |
| " μπορούν να ξεκινήσουν μια κλήση ταυτόχρονα)." |
| |
| #: ../../../developer/calls-in-swarm.md:8 |
| #: ../../../developer/conference-protocol.md:5 |
| #: ../../../developer/design-process.md:4 ../../../developer/drt.rst:23 |
| msgid "Definitions" |
| msgstr "Ορισμοί" |
| |
| #: ../../../developer/calls-in-swarm.md:10 |
| msgid "" |
| "a **Rendezvous** will mix all authorized incoming calls in a conference." |
| msgstr "" |
| "Ένα **Rendezvous** θα αναμείξει όλες τις εγκεκριμένες εισερχόμενες κλήσεις " |
| "σε μια διάσκεψη." |
| |
| #: ../../../developer/calls-in-swarm.md:11 |
| msgid "Two new URIs will be used for this feature:" |
| msgstr "Για το σκοπό αυτό θα χρησιμοποιηθούν δύο νέοι URI:" |
| |
| #: ../../../developer/calls-in-swarm.md:12 |
| msgid "`swarm:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`" |
| msgstr "" |
| "`swarm:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" |
| |
| #: ../../../developer/calls-in-swarm.md:13 |
| msgid "`rdv:accountUri/deviceId/conversationId/confId`" |
| msgstr "`rdv:ο λογαριασμόςUri/deviceId/conversationId/confId`" |
| |
| #: ../../../developer/calls-in-swarm.md:14 |
| msgid "" |
| "**Swarm's profile** is the profile of the swarm stored in a vCard " |
| "(`profile.vcf`, see {ref}`developer/swarm:Conversation's profile " |
| "synchronization` and {doc}`synchronizing-profiles`)" |
| msgstr "" |
| "**Πρόfil του σμήνου** είναι το προφίλ του σμήνου που αποθηκεύεται σε vCard " |
| "(`profile.vcf`, βλ. {ref}`developer/swarm:Conversation's profile " |
| "synchronization` και {doc}`synchronizing-profiles`)" |
| |
| #: ../../../developer/calls-in-swarm.md:15 |
| msgid "`rdvUri` is the default URI for a Swarm, set in the *Swarm's profile*" |
| msgstr "" |
| "`rdvUri` είναι το προεπιλεγμένο URI για ένα σάρμ, τοποθετημένο στο προφίλ " |
| "του σάρμ*" |
| |
| #: ../../../developer/calls-in-swarm.md:17 |
| msgid "" |
| "Note: those two URIs allow the client to place a call in order to join a " |
| "*Rendezvous* or to init a call to a swarm, resulting in the logic described " |
| "in the next section." |
| msgstr "" |
| "Σημείωση: τα δύο αυτά URIs επιτρέπουν στον πελάτη να πραγματοποιήσει μια " |
| "κλήση προκειμένου να συμμετάσχει σε *Rendezvous* ή να αρχίσει μια κλήση σε " |
| "σμήνος, με αποτέλεσμα τη λογική που περιγράφεται στο επόμενο τμήμα." |
| |
| #: ../../../developer/calls-in-swarm.md:19 |
| msgid "Place a call in a Swarm" |
| msgstr "Κάντε μια κλήση σε ένα σάρμ" |
| |
| #: ../../../developer/calls-in-swarm.md:21 |
| msgid "Proposed flow:" |
| msgstr "Προτεινόμενη ροή:" |
| |
| #: ../../../developer/calls-in-swarm.md:23 |
| msgid "**a:** If `rdvUri` is set:" |
| msgstr "**α:** Εάν ορίζεται `rdvUri`:" |
| |
| #: ../../../developer/calls-in-swarm.md:24 |
| #: ../../../developer/calls-in-swarm.md:27 |
| msgid "Call it" |
| msgstr "Πες το." |
| |
| #: ../../../developer/calls-in-swarm.md:25 |
| msgid "If failed, go to **b:**" |
| msgstr "Αν δεν πετύχει, πήγαινε στο **b:**" |
| |
| #: ../../../developer/calls-in-swarm.md:26 |
| msgid "**b:** else if there is a current active call:" |
| msgstr "**b:** διαφορετικά, εάν υπάρχει ενεργή κλήση:" |
| |
| #: ../../../developer/calls-in-swarm.md:28 |
| msgid "If failed, go to **c:**" |
| msgstr "Αν δεν πετύχει, πήγαινε στο **c:**" |
| |
| #: ../../../developer/calls-in-swarm.md:29 |
| msgid "**c:** else, host a new *Rendezvous* and join it." |
| msgstr "Αλλιώς, φιλοξενήστε ένα νέο \"Γενναγιό\" και συμμετέχετε σε αυτό." |
| |
| #: ../../../developer/calls-in-swarm.md:30 |
| msgid "Also, ask users if they want to be the host for next calls." |
| msgstr "" |
| "Επίσης, ρωτήστε τους χρήστες αν θέλουν να είναι ο οικοδεσπότης για τις " |
| "επόμενες κλήσεις." |
| |
| #: ../../../developer/calls-in-swarm.md:32 |
| msgid "" |
| "![Diagram: Placing a call in a Swarm](images/placing-call-in-swarm-" |
| "diagram.png)" |
| msgstr "" |
| "! [Σχέδιο: Τοποθέτηση κλήσης σε ένα σάρμ](ειδές/τοποθέτηση κλήσης-σε-σάρμ-" |
| "σχέδιο.png)" |
| |
| #: ../../../developer/calls-in-swarm.md:32 |
| msgid "Diagram: Placing a call in a Swarm" |
| msgstr "Σχέδιο: Τοποθέτηση κλήσης σε ένα σάρμ" |
| |
| #: ../../../developer/calls-in-swarm.md:34 |
| msgid "**TODO, when to commit and who is commiting**" |
| msgstr "" |
| "**ΤΟΝΤΟ, πότε να αναλάβει και ποιος αναλαμβάνει την ανάληψη της ευθύνης**" |
| |
| #: ../../../developer/calls-in-swarm.md:36 |
| msgid "Incoming calls for swarm" |
| msgstr "Ερχόμενες κλήσεις για σμήνος" |
| |
| #: ../../../developer/calls-in-swarm.md:38 |
| msgid "" |
| "When receiving a new incoming call, the URI MUST be parsed. If the incoming " |
| "call is for a *Rendezvous* which is currently hosted by the device and the " |
| "caller is authorized to join, the call MUST be answered and added to the " |
| "current *Rendezvous*" |
| msgstr "" |
| "Όταν λαμβάνεται μια νέα εισερχόμενη κλήση, το URI πρέπει να αναλύεται. Εάν η" |
| " εισερχόμενη κλήση είναι για ένα *Rendezvous* που φιλοξενείται επί του " |
| "παρόντος από τη συσκευή και ο καλούντας έχει εξουσιοδοτηθεί να συμμετάσχει, " |
| "η κλήση πρέπει να απαντηθεί και να προστεθεί στο τρέχον *Rendezvous*" |
| |
| #: ../../../developer/calls-in-swarm.md:41 |
| msgid "Defining a host for a Swarm" |
| msgstr "Ορισμός του οικοδεσπότη για ένα σάρμ" |
| |
| #: ../../../developer/calls-in-swarm.md:43 |
| msgid "" |
| "To define a default URI, the member who wants to be the host should update " |
| "the profile of the conversation, and this will be synced and validated by " |
| "peers. However, the host MUST be able to accept or not to be the host and a " |
| "member with enough permissions SHOULD be able to ask a device to be the " |
| "host. This process is not decided for now." |
| msgstr "" |
| "Για να καθοριστεί ένα προεπιλεγμένο URI, το μέλος που θέλει να είναι ο " |
| "οικοδεσπότης πρέπει να ενημερώνει το προφίλ της συζήτησης, και αυτό θα " |
| "συγχρονιστεί και θα επικυρωθεί από τους ομοτίμους του. Ωστόσο, ο " |
| "οικοδεσπότης πρέπει να είναι σε θέση να αποδεχθεί ή να μην είναι ο " |
| "οικοδεσπότης και ένα μέλος με επαρκή δικαιώματα θα πρέπει να είναι σε θέση " |
| "να ζητήσει από μια συσκευή να είναι ο οικοδεσπότης. Αυτή η διαδικασία δεν " |
| "έχει αποφασιστεί για το παρόν." |
| |
| #: ../../../developer/calls-in-swarm.md:45 |
| msgid "**TODO? Permissions to update, negotiation of the host**" |
| msgstr "Άδειες ενημέρωσης, διαπραγμάτευση του οικοδεσπότη" |
| |
| #: ../../../developer/calls-in-swarm.md:47 |
| #: ../../../developer/conference-protocol.md:181 |
| #: ../../../developer/file-transfer.md:196 |
| msgid "Future" |
| msgstr "Το μέλλον" |
| |
| #: ../../../developer/calls-in-swarm.md:49 |
| msgid "Join notifications?" |
| msgstr "Να συμμετάσχεις στις ειδοποιήσεις;" |
| |
| #: ../../../developer/calls-in-swarm.md:51 |
| msgid "" |
| "Members of the swarm that aren't in a call SHOULD be able to know who is in " |
| "the active calls." |
| msgstr "" |
| "Τα μέλη του σμήνου που δεν είναι σε μια κλήση θα πρέπει να μπορούν να " |
| "γνωρίζουν ποιος είναι σε ενεργό κλήση." |
| |
| #: ../../../developer/calls-in-swarm.md:53 |
| msgid "SIP Bridge?" |
| msgstr "Σπυράκι SIP;" |
| |
| #: ../../../developer/calls-in-swarm.md:55 |
| msgid "" |
| "Because conferences are still mixed SIP calls, a SIP bridge is still " |
| "possible. In the *Swarm's profile* it should be possible to add a SIP entry," |
| " like some popular VoIP systems)" |
| msgstr "" |
| "Επειδή τα συνέδρια είναι ακόμα μικτές SIP κλήσεις, μια γέφυρα SIP είναι " |
| "ακόμα δυνατή." |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:1 |
| msgid "Choosing CRF value for encoder" |
| msgstr "Επιλέγοντας τιμή CRF για κωδικοποιητή" |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:4 |
| #: ../../../developer/design-process.md:13 |
| msgid "Context" |
| msgstr "Συγκ context" |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:5 |
| msgid "" |
| "Bandwidth usage by the Jami application is not optimal for all types of " |
| "connections. Indeed, in some cases, the user experience is not good " |
| "(satellite connection, ...) despite the bandwidth management algorithm." |
| msgstr "" |
| "Η χρήση ζώνης από την εφαρμογή Jami δεν είναι βέλτιστη για όλους τους τύπους" |
| " συνδέσεων." |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:7 |
| msgid "Observation" |
| msgstr "Παρατηρητική" |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:8 |
| msgid "" |
| "It is not necessary to aim for an optimal quality (CRF < 20) because beyond " |
| "that, the visual perception is almost similar while the data flow (bitrate) " |
| "required is much higher." |
| msgstr "" |
| "Δεν είναι απαραίτητο να επιδιώκεται η βέλτιστη ποιότητα (CRF < 20) διότι " |
| "πέρα από αυτό, η οπτική αντίληψη είναι σχεδόν παρόμοια ενώ η απαιτούμενη ροή" |
| " δεδομένων (bitrate) είναι πολύ υψηλότερη." |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:10 |
| msgid "Objective" |
| msgstr "Στόχος" |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:11 |
| msgid "" |
| "The purpose of this document is to verify the impact of a change in video " |
| "quality with the CRF parameter of the encoder." |
| msgstr "" |
| "Σκοπός του παρόντος εγγράφου είναι η επαλήθευση της επίδρασης μιας αλλαγής " |
| "της ποιότητας του βίντεο με τη διάσταση CRF του κωδικοποιητή." |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:13 |
| msgid "Test" |
| msgstr "Δοκιμασία" |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:14 |
| msgid "These tests were performed by comparing :" |
| msgstr "Οι δοκιμές αυτές πραγματοποιήθηκαν με τη σύγκριση:" |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:15 |
| msgid "The first one encoded with Jami's current parameters" |
| msgstr "Το πρώτο κωδικοποιημένο με τις τρέχουσες παραμέτρους του Τζάμι." |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:16 |
| msgid "The second encoded with a lower quality" |
| msgstr "Το δεύτερο κωδικοποιημένο με χαμηλότερη ποιότητα" |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:18 |
| msgid "" |
| "Each of these tests were performed for the following resolutions: 1080p, " |
| "720p and 436p." |
| msgstr "" |
| "Κάθε μία από αυτές τις δοκιμές πραγματοποιήθηκε για τις ακόλουθες ανάλυσεις:" |
| " 1080p, 720p και 436p." |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:20 |
| msgid "For each of these resolutions several bitrates have been used:" |
| msgstr "Για κάθε από αυτές τις ανάλυσεις χρησιμοποιήθηκαν διάφορα bitrates:" |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:21 |
| msgid "300 Kbit/s (Jami low value)" |
| msgstr "300 Kbit/s (απλούσια τιμή)" |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:22 |
| msgid "1.5 Mbit/s (Intermediate value)" |
| msgstr "1,5 Mbit/s (μεσομετρική αξία)" |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:23 |
| msgid "6 Mbit/s (High value)" |
| msgstr "6 Mbit/s (υψηλή αξία)" |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:25 |
| msgid "" |
| "The graphs show the evolution of the bitrate with the file being tested " |
| "(resolution and specific set bitrate)." |
| msgstr "" |
| "Τα γραφικά δείχνουν την εξέλιξη του bitrate με το αρχείο που δοκιμάζεται " |
| "(απολύσεις και συγκεκριμένα ρυθμίσεις bitrate)." |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:27 |
| msgid "A visual comparison (side by side) was made for each test." |
| msgstr "Για κάθε εξέταση έγινε οπτική σύγκριση (πίσω-πίσω)." |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:29 |
| msgid "" |
| "Thanks to this test we can estimate the bitrate that will be emitted in Jami" |
| " according to the chosen parameters. We also have an overview of the visual " |
| "quality." |
| msgstr "" |
| "Χάρη σε αυτή την δοκιμή μπορούμε να εκτιμήσουμε το bitrate που θα εκπέμπει " |
| "στο Jami σύμφωνα με τις επιλεγμένες παραμέτρους." |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:33 |
| msgid "" |
| "1080p / 300 kbit/s / CRF28 ![image](images/choosing-crf-1080p-300kbps-" |
| "crf28.png) 1080p / 300 kbit/s / CRF38 ![image](images/choosing-" |
| "crf-1080p-300kbps-crf38.png)" |
| msgstr "" |
| "1080p / 300 kbit/s / CRF28! [image](images/choosing-crf-1080p-300kbps-" |
| "crf28.png) 1080p / 300 kbit/s / CRF38! [image](images/choosing-" |
| "crf-1080p-300kbps-crf38.png)" |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:33 |
| #: ../../../developer/choosing-crf-value-for-encoder.md:40 |
| #: ../../../developer/choosing-crf-value-for-encoder.md:47 |
| #: ../../../developer/choosing-crf-value-for-encoder.md:56 |
| #: ../../../developer/choosing-crf-value-for-encoder.md:62 |
| #: ../../../developer/choosing-crf-value-for-encoder.md:69 |
| #: ../../../developer/choosing-crf-value-for-encoder.md:78 |
| #: ../../../developer/choosing-crf-value-for-encoder.md:85 |
| #: ../../../developer/choosing-crf-value-for-encoder.md:92 |
| msgid "image" |
| msgstr "εικόνα" |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:38 |
| msgid "Visual comparison (CRF28 a gauche / CRF38 a droite)" |
| msgstr "Οπτική σύγκριση (CRF28 αριστερά / CRF38 δεξιά)" |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:40 |
| msgid "" |
| "1080p / 1.5 Mbps / CRF22 ![image](images/choosing-crf-1080p-1.5mbps-" |
| "crf22.png) 1080p / 1.5 Mbit/s / CRF30 ![image](images/choosing-" |
| "crf-1080p-1.5mbps-crf30.png)" |
| msgstr "" |
| "1080p / 1.5 Mbps / CRF22! [image](images/choosing-crf-1080p-1.5mbps-" |
| "crf22.png) 1080p / 1.5 Mbit/s / CRF30! [image](images/choosing-" |
| "crf-1080p-1.5mbps-crf30.png)" |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:45 |
| #: ../../../developer/choosing-crf-value-for-encoder.md:67 |
| #: ../../../developer/choosing-crf-value-for-encoder.md:90 |
| msgid "Visual comparison (CRF22 left / CRF30 right)" |
| msgstr "Οπτική σύγκριση (CRF22 αριστερά / CRF30 δεξιά)" |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:47 |
| msgid "" |
| "1080p / 6 Mbps / CRF17 ![image](images/choosing-crf-1080p-6mbps-crf17.png) " |
| "1080p / 6 Mbit/s / CRF23 ![image](images/choosing-crf-1080p-6mbps-crf23.png)" |
| msgstr "" |
| "1080p / 6 Mbps / CRF17! [image](images/choosing-crf-1080p-6mbps-crf17.png) " |
| "1080p / 6 Mbit/s / CRF23! [image](images/choosing-crf-1080p-6mbps-crf23.png)" |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:52 |
| msgid "Visual comparison (CRF17 on the left / CRF23 on the right)" |
| msgstr "Επικαιωτική σύγκριση (CRF17 αριστερά / CRF23 δεξιά)" |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:56 |
| msgid "" |
| "720p / 300 kbps / CRF28 ![image](images/choosing-crf-720p-300kbps-crf28.png)" |
| " 720p / 300 kbit/s / CRF38 ![image](images/choosing-crf-720p-300kbps-" |
| "crf38.png) Visual comparison (CRF28 left / CRF38 right)" |
| msgstr "" |
| "720p / 300 kbps / CRF28![image](ειδές/εκλογές-crf-720p-300kbps-crf28.png) " |
| "720p / 300 kbit/s / CRF38![image](ειδές/εκλογές-crf-720p-300kbps-crf38.png) " |
| "Επικοινωνία (CRF28 αριστερά / CRF38 δεξιά)" |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:62 |
| msgid "" |
| "720p / 1.5 Mbps / CRF22 ![image](images/choosing-crf-720p-1.5mbps-crf22.png)" |
| " 720p / 1.5 Mbit/s / CRF30 (Test with reduced CRF) ![image](images/choosing-" |
| "crf-720p-1.5mbps-crf30.png)" |
| msgstr "" |
| "720p / 1.5 Mbps / CRF22![image](images/choosing-crf-720p-1.5mbps-crf22.png) " |
| "720p / 1.5 Mbit/s / CRF30 (Τέστ με μειωμένη CRF)![image](images/choosing-" |
| "crf-720p-1.5mbps-crf30.png)" |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:69 |
| msgid "" |
| "720p / 6 Mbps / CRF17 ![image](images/choosing-crf-720p-6mbps-crf17.png) " |
| "720p / 6 Mbit/s / CRF23 ![image](images/choosing-crf-720p-6mbps-crf23.png)" |
| msgstr "" |
| "720p / 6 Mbps / CRF17! [image](images/choosing-crf-720p-6mbps-crf17.png) " |
| "720p / 6 Mbit/s / CRF23! [image](images/choosing-crf-720p-6mbps-crf23.png)" |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:74 |
| #: ../../../developer/choosing-crf-value-for-encoder.md:97 |
| msgid "Visual comparison (CRF17 left / CRF23 right)" |
| msgstr "Επικαιωτική σύγκριση (CRF17 αριστερά / CRF23 δεξιά)" |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:78 |
| msgid "" |
| "436p / 300 kbps / CRF28 ![image](images/choosing-crf-436p-300kbps-crf28.png)" |
| " 436p / 300 kbit/s / CRF38 ![image](images/choosing-crf-436p-300kbps-" |
| "crf38.png)" |
| msgstr "" |
| "436p / 300 kbps / CRF28! [image](images/choosing-crf-436p-300kbps-crf28.png)" |
| " 436p / 300 kbit/s / CRF38! [image](images/choosing-crf-436p-300kbps-" |
| "crf38.png)" |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:83 |
| msgid "Visual comparison (CRF28 left / CRF38 right)" |
| msgstr "Επικαιωτική σύγκριση (CRF28 αριστερά / CRF38 δεξιά)" |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:85 |
| msgid "" |
| "436p / 1.5 Mbps / CRF22 ![image](images/choosing-crf-436p-1.5mbps-crf22.png)" |
| " 436p / 1.5 Mbit/s / CRF30 ![image](images/choosing-crf-436p-1.5mbps-" |
| "crf30.png)" |
| msgstr "" |
| "436p / 1.5 Mbps / CRF22! [image](images/choosing-crf-436p-1.5mbps-crf22.png)" |
| " 436p / 1.5 Mbit/s / CRF30! [image](images/choosing-crf-436p-1.5mbps-" |
| "crf30.png)" |
| |
| #: ../../../developer/choosing-crf-value-for-encoder.md:92 |
| msgid "" |
| "436p / 6 Mbps / CRF17 ![image](images/choosing-crf-436p-6mbps-crf17.png) " |
| "436p / 6 Mbit/s / CRF23 ![image](images/choosing-crf-436p-6mbps-crf23.png)" |
| msgstr "" |
| "436p / 6 Mbps / CRF17! [image](images/choosing-crf-436p-6mbps-crf17.png) " |
| "436p / 6 Mbit/s / CRF23! [image](images/choosing-crf-436p-6mbps-crf23.png)" |
| |
| #: ../../../developer/coding-style.md:1 |
| msgid "Coding style" |
| msgstr "Στυλ κωδικοποίησης" |
| |
| #: ../../../developer/coding-style.md:4 |
| msgid "" |
| "**This page gives rules and/or guidances to all developers that want to " |
| "integrate some code to Jami**" |
| msgstr "" |
| |
| #: ../../../developer/coding-style.md:7 |
| msgid "" |
| "C++ format rules are defined by this clang-format file: " |
| "https://git.jami.net/savoirfairelinux/jami-daemon/blob/master/.clang-format" |
| msgstr "" |
| "Οι κανόνες μορφοποίησης C++ ορίζονται από αυτό το αρχείο μορφοποίησης " |
| "κλανγκ: https://git.jami.net/savoirfairelinux/jami-" |
| "daemon/blob/master/.clang-format" |
| |
| #: ../../../developer/coding-style.md:10 |
| msgid "" |
| "QML format rules are defined by the source code used to build the qmlformat " |
| "executable: " |
| "https://codebrowser.dev/qt6/qtdeclarative/tools/qmlformat/qmlformat.cpp.html" |
| msgstr "" |
| |
| #: ../../../developer/coding-style.md:13 |
| msgid "" |
| "All developers are recommended to format their code using the script in " |
| "`jami-project/scripts/format.sh`. This is done automatically (as a pre-" |
| "commit hook) when using `./build.py --init --qt=<path-to-qt>`." |
| msgstr "" |
| |
| #: ../../../developer/conference-protocol.md:1 |
| msgid "Conference protocol" |
| msgstr "Πρωτόκολλο της διάσκεψης" |
| |
| #: ../../../developer/conference-protocol.md:3 |
| msgid "" |
| "This document aims to describe the evolutions we will do for managing " |
| "conferences (audio/video). The goal is to improve the current implementation" |
| " which simply merges SIP calls and provide a grid view, to a view where " |
| "participants are listed, can be muted independently, or the video layout " |
| "changed (to show only one participant)" |
| msgstr "" |
| "Στόχος του παρόντος εγγράφου είναι να περιγράψει τις εξελίξεις που θα " |
| "κάνουμε για τη διαχείριση των συνεδριάσεων (αυτο/βίντεο)." |
| |
| #: ../../../developer/conference-protocol.md:7 |
| msgid "Host: Is the user who mix the audio/video streams for the others" |
| msgstr "" |
| "Διοικητής: Είναι ο χρήστης που αναμιγνύει τις ροές ήχου/βίντεο για τους " |
| "άλλους" |
| |
| #: ../../../developer/conference-protocol.md:8 |
| msgid "Participant: Every user in the conference, even the host" |
| msgstr "Συμμετέχων: Κάθε χρήστης της διάσκεψης, ακόμη και ο οικοδεσπότης" |
| |
| #: ../../../developer/conference-protocol.md:10 |
| msgid "Disclaimer" |
| msgstr "Απαλλαγή από ευθύνη" |
| |
| #: ../../../developer/conference-protocol.md:12 |
| msgid "" |
| "This document only describes the first steps for now. This means the " |
| "identification of participants and position in the video mixer sent to all " |
| "participants." |
| msgstr "Το παρόν έγγραφο περιγράφει μόνο τα πρώτα βήματα προς το παρόν." |
| |
| #: ../../../developer/conference-protocol.md:14 |
| msgid "Possible layouts" |
| msgstr "Πιθανές διαρθρώσεις" |
| |
| #: ../../../developer/conference-protocol.md:16 |
| msgid "GRID: Every member is shown with the same height/width" |
| msgstr "ΔΙΑΜΑΣ: Κάθε μέλος εμφανίζεται με το ίδιο ύψος/εύρος" |
| |
| #: ../../../developer/conference-protocol.md:17 |
| msgid "" |
| "ONE_BIG_WITH_SMALL: One member is zoomed and the other preview is shown" |
| msgstr "" |
| "ONE_BIG_WITH_SMALL: Ένα μέλος είναι μεγέθυνση και η άλλη προεπισκόπηση " |
| "εμφανίζεται" |
| |
| #: ../../../developer/conference-protocol.md:18 |
| msgid "ONE_BIG: One member take the full screen rendered" |
| msgstr "ONE_BIG: Ένα μέλος παίρνει την πλήρη οθόνη παραγωγή" |
| |
| #: ../../../developer/conference-protocol.md:20 |
| msgid "" |
| "Two new methods are available to manage the conference Layout in " |
| "CallManager:" |
| msgstr "" |
| "Δύο νέες μεθόδους διαχειρίζονται τη διάταξη της διάσκεψης στο CallManager:" |
| |
| #: ../../../developer/conference-protocol.md:38 |
| #: ../../../developer/conference-protocol.md:95 ../../../developer/drt.rst:120 |
| #: ../../../developer/swarm.md:493 |
| msgid "Implementation" |
| msgstr "Εφαρμογή" |
| |
| #: ../../../developer/conference-protocol.md:40 |
| msgid "" |
| "The implementation is pretty straightforward. Everything is managed by " |
| "`conference.cpp` (to link participant to sources) and `video_mixer.cpp` (to " |
| "render the wanted layout)." |
| msgstr "" |
| "Η εφαρμογή είναι αρκετά απλή. Όλα διαχειρίζονται από `conference.cpp` (για " |
| "να συνδέσετε τον συμμετέχοντα με τις πηγές) και `video_mixer.cpp` (για να " |
| "αναδεικνύετε την επιθυμητή διάταξη)." |
| |
| #: ../../../developer/conference-protocol.md:43 |
| msgid "Syncing Conferences Informations" |
| msgstr "Συγχρονισμός των διασκέψεων Πληροφορίες" |
| |
| #: ../../../developer/conference-protocol.md:45 |
| msgid "" |
| "Note: Actually, the word participant is used for callId mixed in a " |
| "conference. This can lead at first to some problems for the API and must be " |
| "fixed in the future" |
| msgstr "" |
| "Σημείωση: Στην πραγματικότητα, η λέξη συμμετέχων χρησιμοποιείται για callId " |
| "που αναμειγνύεται σε μια διάσκεψη." |
| |
| #: ../../../developer/conference-protocol.md:47 |
| msgid "" |
| "The goal is to notify all participants of the metadata of the rendered " |
| "video. This means what participant is in the conference and where the video " |
| "is located." |
| msgstr "" |
| "Ο στόχος είναι να ενημερωθούν όλοι οι συμμετέχοντες για τα μεταδεδομένα του " |
| "παραδομένου βίντεο." |
| |
| #: ../../../developer/conference-protocol.md:49 |
| msgid "" |
| "If a participant is itself a conference, its incoming layout info should be " |
| "merged when sent to other participants. Layout info must not be merged when " |
| "sent back to a conference." |
| msgstr "" |
| "Εάν ένας συμμετέχων είναι ο ίδιος συνέδριο, οι πληροφορίες του εισερχόμενου " |
| "σχεδιασμού πρέπει να συγχωνεύονται όταν αποστέλλονται σε άλλους " |
| "συμμετέχοντες." |
| |
| #: ../../../developer/conference-protocol.md:51 |
| msgid "Layout Info" |
| msgstr "Πληροφορίες σχεδιασμού" |
| |
| #: ../../../developer/conference-protocol.md:53 |
| msgid "" |
| "The Layout is stored as a VectorMapStringString for clients and internally " |
| "with a vector<ParticipantInfo> with the following format:" |
| msgstr "" |
| "Η διάταξη αποθηκεύεται ως VectorMapStringString για πελάτες και εσωτερικά με" |
| " έναν vektor<ParticipantInfo> με την ακόλουθη μορφή:" |
| |
| #: ../../../developer/conference-protocol.md:67 |
| msgid "Possible keys are:" |
| msgstr "Πιθανό κλειδί είναι:" |
| |
| #: ../../../developer/conference-protocol.md:69 |
| msgid "uri = account's uri" |
| msgstr "uri = uri του λογαριασμού" |
| |
| #: ../../../developer/conference-protocol.md:70 |
| msgid "device = device's id" |
| msgstr "συσκευή = ταυτότητα της συσκευής" |
| |
| #: ../../../developer/conference-protocol.md:71 |
| msgid "media = media's id" |
| msgstr "media = ταυτότητα του μέσου" |
| |
| #: ../../../developer/conference-protocol.md:72 |
| msgid "active = if the participant is active" |
| msgstr "ενεργός = αν ο συμμετέχων είναι ενεργός" |
| |
| #: ../../../developer/conference-protocol.md:73 |
| msgid "x = position (x) in the video" |
| msgstr "x = θέση (x) στο βίντεο" |
| |
| #: ../../../developer/conference-protocol.md:74 |
| msgid "y = position (y) in the video" |
| msgstr "y = θέση (y) στο βίντεο" |
| |
| #: ../../../developer/conference-protocol.md:75 |
| msgid "w = size (width) in the video" |
| msgstr "w = μέγεθος (εύθοδος) στο βίντεο" |
| |
| #: ../../../developer/conference-protocol.md:76 |
| msgid "h = size (height) in the video" |
| msgstr "h = μέγεθος (πάνω) στο βίντεο" |
| |
| #: ../../../developer/conference-protocol.md:77 |
| msgid "videoMuted = if the video is muted" |
| msgstr "βίντεο Ακωδικοποιημένο = αν το βίντεο είναι ακωδικοποιημένο" |
| |
| #: ../../../developer/conference-protocol.md:78 |
| msgid "audioLocalMuted = if the audio is locally muted" |
| msgstr "audioLocalMuted = αν το ήχο είναι τοπικά αθόρυβο" |
| |
| #: ../../../developer/conference-protocol.md:79 |
| msgid "audioModeratorMuted = if the audio is muted by moderators" |
| msgstr "audioModeratorMuted = αν το ήχο είναι αθόρυβο από τους διαχειριστές" |
| |
| #: ../../../developer/conference-protocol.md:80 |
| msgid "isModerator = if it's a moderator" |
| msgstr "isModerator = αν είναι ένας διαχειριστής" |
| |
| #: ../../../developer/conference-protocol.md:81 |
| msgid "handRaised = if the hand is raised" |
| msgstr "αν το χέρι είναι ανυψωμένο" |
| |
| #: ../../../developer/conference-protocol.md:82 |
| msgid "voiceActivity = if the stream has voice activity" |
| msgstr "voiceActivity = αν η ροή έχει φωνητική δραστηριότητα" |
| |
| #: ../../../developer/conference-protocol.md:83 |
| msgid "recording = if the peer is recording the conference" |
| msgstr "ηχογράφηση = αν ο συνάδελφος ηχογραφεί τη διάσκεψη" |
| |
| #: ../../../developer/conference-protocol.md:85 |
| msgid "New API" |
| msgstr "Νέα API" |
| |
| #: ../../../developer/conference-protocol.md:87 |
| msgid "" |
| "A new method (in CallManager) and a new signal to respectively get current " |
| "conference infos and updates are available:" |
| msgstr "" |
| "Μια νέα μέθοδος (σε CallManager) και ένα νέο σήμα για να λαμβάνονται " |
| "αντίστοιχα τρέχουσες πληροφορίες και ενημερώσεις για τη διάσκεψη είναι " |
| "διαθέσιμες:" |
| |
| #: ../../../developer/conference-protocol.md:97 |
| msgid "" |
| "The `Conference` Object (which only exists if we mix calls, this means that " |
| "we are the master) manages the information for the whole conference, based " |
| "on the LayoutInfos of each `Call` object. The getConferenceInfos will " |
| "retrieve info directly from this object." |
| msgstr "" |
| "Το `Συνέδριο`Object (το οποίο υπάρχει μόνο αν αναμιγνύουμε κλήσεις, αυτό " |
| "σημαίνει ότι είμαστε ο κύριος) διαχειρίζεται τις πληροφορίες για ολόκληρη τη" |
| " διάσκεψη, με βάση τις LayoutInfos κάθε `Call`object." |
| |
| #: ../../../developer/conference-protocol.md:99 |
| msgid "" |
| "So, every `Call` object now has a LayoutInfo and if updated, ask the " |
| "`Conference` object to updates its info." |
| msgstr "" |
| "Έτσι, κάθε `Καλή ` αντικείμενο έχει τώρα μια LayoutInfo και αν ενημερωθεί, " |
| "ζητήστε από το `Συνδιάσκεψη ` αντικείμενο να ενημερώνει τις πληροφορίες του." |
| |
| #: ../../../developer/conference-protocol.md:101 |
| msgid "" |
| "The master of a conference sends its info via the SIP channel as a message " |
| "with the following MIME type: `application/confInfo+json`" |
| msgstr "" |
| "Ο διευθυντής μιας διάσκεψης στέλνει τις πληροφορίες του μέσω του κανάλι SIP " |
| "ως μήνυμα με τον ακόλουθο τύπο MIME: `application/confInfo+json`" |
| |
| #: ../../../developer/conference-protocol.md:104 |
| msgid "" |
| "So, if a call receives some confInfo, we know that this call is a member of " |
| "a conference." |
| msgstr "" |
| "Έτσι, αν μια κλήση λαμβάνει κάποια πληροφορία, ξέρουμε ότι αυτή η κλήση " |
| "είναι μέλος μιας διάσκεψης." |
| |
| #: ../../../developer/conference-protocol.md:106 |
| msgid "" |
| "To summarize, `Call` manages received layouts, `Conference`-managed sent " |
| "layouts." |
| msgstr "" |
| "Για να συνοψίσουμε, η `Call` διαχειρίζεται τις παραλαβές διαρθρώσεων, η " |
| "`Conference`-managed έστειλε διαρθρώσεις." |
| |
| #: ../../../developer/conference-protocol.md:108 |
| msgid "Changing the state of the conference" |
| msgstr "Αλλαγή της κατάστασης της διάσκεψης" |
| |
| #: ../../../developer/conference-protocol.md:110 |
| msgid "" |
| "To change the state of the conference, participants needs to send orders " |
| "that the host will handle." |
| msgstr "" |
| "Για να αλλάξει η κατάσταση του συνέδρου, οι συμμετέχοντες πρέπει να στείλουν" |
| " εντολές που θα χειριστεί ο οικοδεσπότης." |
| |
| #: ../../../developer/conference-protocol.md:112 |
| msgid "The protocol have the following needs:" |
| msgstr "Το πρωτόκολλο έχει τις ακόλουθες ανάγκες:" |
| |
| #: ../../../developer/conference-protocol.md:114 |
| msgid "" |
| "It should handle orders at multiple levels. In fact for a conference the is " |
| "3 levels to define a participant:" |
| msgstr "Για μια διάσκεψη, είναι 3 επίπεδα για να ορίσετε έναν συμμετέχοντα:" |
| |
| #: ../../../developer/conference-protocol.md:115 |
| msgid "The account which is the identity of the participant" |
| msgstr "Το λογαριασμό που αποτελεί την ταυτότητα του συμμετέχοντος" |
| |
| #: ../../../developer/conference-protocol.md:116 |
| msgid "Devices, because each account can join via multiple devices" |
| msgstr "" |
| "Συσκευές, επειδή κάθε λογαριασμός μπορεί να ενωθεί μέσω πολλαπλών συσκευών" |
| |
| #: ../../../developer/conference-protocol.md:117 |
| msgid "" |
| "Medias, because there can be multiple videos by devices (eg 1 camera and 1 " |
| "screen sharing)" |
| msgstr "" |
| "Μέσα, επειδή μπορεί να υπάρχουν πολλαπλά βίντεο από συσκευές (π.χ. 1 κάμερα " |
| "και 1 κοινή χρήση οθόνης)" |
| |
| #: ../../../developer/conference-protocol.md:119 |
| msgid "" |
| "To save bandwidth, clients should be able to send multiple orders at once." |
| msgstr "" |
| "Για να εξοικονομήσει το εύρος ζώνης, οι πελάτες θα πρέπει να μπορούν να " |
| "στέλνουν πολλές παραγγελίες ταυτόχρονα." |
| |
| #: ../../../developer/conference-protocol.md:121 |
| msgid "General actions" |
| msgstr "Γενικές ενέργειες" |
| |
| #: ../../../developer/conference-protocol.md:123 |
| msgid "" |
| "To change a layout, the moderator can send a payload with " |
| "\"application/confOrder+json\" as type: where **0** is a grid, **1** is one " |
| "user in big, others in small, **2** is one in big" |
| msgstr "" |
| "Για να αλλάξει μια διάταξη, ο διαχειριστής μπορεί να στείλει ένα ωφέλιμο " |
| "φορτίο με \"application/confOrder+json\" ως τύπο: όπου **0** είναι μια " |
| "πλέγμα, **1** είναι ένας χρήστης σε μεγάλο, άλλοι σε μικρό, **2** είναι ένας" |
| " σε μεγάλο" |
| |
| #: ../../../developer/conference-protocol.md:126 |
| msgid "Account's actions" |
| msgstr "Δράσεις του λογαριασμού" |
| |
| #: ../../../developer/conference-protocol.md:128 |
| msgid "" |
| "For now, there is no action supported, however, in the future `moderator: " |
| "true/false` should be handled to change a moderator." |
| msgstr "" |
| "Προς το παρόν, δεν υποστηρίζεται καμία ενέργεια, ωστόσο, στο μέλλον `ο " |
| "διαχειριστής: πρέπει να χειριστείται true/false` για να αλλάξει ένας " |
| "διαχειριστής." |
| |
| #: ../../../developer/conference-protocol.md:130 |
| msgid "Device's actions" |
| msgstr "Δράσεις της συσκευής" |
| |
| #: ../../../developer/conference-protocol.md:132 |
| msgid "" |
| "`hangup: true` to hangup a device from the conference (only moderators)" |
| msgstr "" |
| "`hangup: true` για να κρεμάσετε μια συσκευή από τη διάσκεψη (μόνο οι " |
| "διαχειριστές)" |
| |
| #: ../../../developer/conference-protocol.md:133 |
| msgid "" |
| "`raisehand: true/false` to change the raise hand's status. Only doable by " |
| "the device itself, else dropped." |
| msgstr "" |
| "`raisehand: true/false ` για να αλλάξει το καθεστώς του χειριού ανύψωσης." |
| |
| #: ../../../developer/conference-protocol.md:135 |
| msgid "Media's actions" |
| msgstr "Οι ενέργειες των μέσων ενημέρωσης" |
| |
| #: ../../../developer/conference-protocol.md:137 |
| msgid "" |
| "`muteAudio` only doable by moderators to mute the audio of a participant" |
| msgstr "" |
| "`muteAudio` μόνον από τους διαχειριστές μπορεί να σιωπηλάσει το ήχο ενός " |
| "συμμετέχοντος" |
| |
| #: ../../../developer/conference-protocol.md:138 |
| msgid "`muteVideo` not supported yet." |
| msgstr "`muteVideo` δεν υποστηρίζεται ακόμα." |
| |
| #: ../../../developer/conference-protocol.md:139 |
| msgid "`active` to mark the media as active." |
| msgstr "`active` για να σημειωθεί ότι τα μέσα ενημέρωσης είναι ενεργά." |
| |
| #: ../../../developer/conference-protocol.md:140 |
| msgid "" |
| "`voiceActivity` to indiciate a media stream's voice activity status (only " |
| "relevant for audio)" |
| msgstr "" |
| "`ακουστική δραστηριότητα` για να αναδειχθεί η κατάσταση της φωνητικής " |
| "δραστηριότητας ενός ρεύματος μέσων ενημέρωσης (μόνο σχετική με το ήχο)" |
| |
| #: ../../../developer/conference-protocol.md:142 |
| #: ../../../developer/setting-up-your-own-turn-server.md:0 |
| msgid "Example" |
| msgstr "Παραδείγματος" |
| |
| #: ../../../developer/conference-protocol.md:144 |
| msgid "So, the `application/confOrder+json` will contains:" |
| msgstr "Έτσι, η `application/confOrder+json` θα περιέχει:" |
| |
| #: ../../../developer/conference-protocol.md:169 |
| msgid "" |
| "Note: the type of the media should be included in conferences informations " |
| "and can be used for the client to improve display (e.g. do not crop screen " |
| "sharing)" |
| msgstr "" |
| "Σημείωση: ο τύπος του μέσου πρέπει να περιλαμβάνεται στις πληροφορίες των " |
| "συνεδριάσεων και μπορεί να χρησιμοποιηθεί για τον πελάτη για τη βελτίωση της" |
| " προβολής (π.χ. μην διαχωρίζετε το διαμοιρασμό οθόνης)" |
| |
| #: ../../../developer/conference-protocol.md:172 |
| msgid "Controlling moderators" |
| msgstr "Ελέγχος των διαχειριστών" |
| |
| #: ../../../developer/conference-protocol.md:174 |
| msgid "There is actually 3 possibilities:" |
| msgstr "Υπάρχουν στην πραγματικότητα 3 πιθανότητες:" |
| |
| #: ../../../developer/conference-protocol.md:176 |
| msgid "" |
| "Changing account's config to add a list of moderators (In the config.yml " |
| "(`defaultModerators` can contains a list of default moderators)" |
| msgstr "" |
| "Συγκρότηση του λογαριασμού αλλαγής για να προστεθεί λίστα διαχειριστών (Στη " |
| "config.yml (`defaultModerators` μπορεί να περιέχει λίστα διαχειριστών " |
| "προεπιλεγμένων)" |
| |
| #: ../../../developer/conference-protocol.md:177 |
| msgid "" |
| "If `localModeratorsEnabled` is true, all accounts of the device will be " |
| "moderators" |
| msgstr "" |
| "Εάν `localModeratorsEnabled` είναι αλήθεια, όλες οι λογαριασμοί της συσκευής" |
| " θα είναι διαχειριστές" |
| |
| #: ../../../developer/conference-protocol.md:178 |
| msgid "" |
| "If `allModeratorsEnabled` is true, anybody in the conference will be a " |
| "moderator" |
| msgstr "" |
| "Αν είναι αλήθεια ότι όλοι οι διαχειριστές έχουν ενεργοποιηθεί, οποιοσδήποτε " |
| "στο συνέδριο θα είναι διαχειριστής" |
| |
| #: ../../../developer/conference-protocol.md:183 |
| msgid "Separate streams to allow more controls?" |
| msgstr "Ειδικές ροές για να επιτρέψουμε περισσότερους ελέγχους;" |
| |
| #: ../../../developer/conference-protocol.md:185 |
| msgid "Notes/Comments" |
| msgstr "Σημειώσεις/Επισημειώσεις" |
| |
| #: ../../../developer/conference-protocol.md:186 |
| msgid "" |
| "It's likely that the protocol will evolve for future needs. I believe it's " |
| "best if we have a \"version\" field. The older version will be recognized if" |
| " this field is missing." |
| msgstr "" |
| "Είναι πιθανό το πρωτόκολλο να εξελιχθεί για μελλοντικές ανάγκες. Πιστεύω ότι" |
| " είναι καλύτερο αν έχουμε ένα πεδίο \"επιστολή\"." |
| |
| #: ../../../developer/connection-manager.md:1 |
| msgid "The connection manager" |
| msgstr "Ο διαχειριστής σύνδεσης" |
| |
| #: ../../../developer/connection-manager.md:4 |
| #: ../../../developer/file-transfer.md:49 ../../../developer/introduction.md:1 |
| #: ../../../developer/location-sharing.md:42 |
| msgid "Introduction" |
| msgstr "Εισαγωγή" |
| |
| #: ../../../developer/connection-manager.md:6 |
| msgid "" |
| "The connection manager is the first piece of the group chat features. This " |
| "class manages connections to peers and offer to the user multiplexed sockets" |
| " to devices they want to connect. For example, if Alice wants to be " |
| "connected to one of Bob's device to transfer 2 files, she will ask the " |
| "ConnectionManager to open 2 channels (one per file) to Bob. This will give:" |
| msgstr "" |
| "Ο διαχειριστής σύνδεσης είναι το πρώτο κομμάτι των χαρακτηριστικών ομάδας " |
| "συνομιλίας. Αυτή η τάξη διαχειρίζεται τις συνδέσεις με τους ομοτίμους και " |
| "προσφέρει στον χρήστη πολλαπλασιασμένες πρίζες σε συσκευές που θέλουν να " |
| "συνδεθούν. Για παράδειγμα, αν η Alice θέλει να συνδεθεί με μια συσκευή του " |
| "Bob για τη μεταφορά 2 αρχείων, θα ζητήσει από τον Διαχειριστή σύνδεσης να " |
| "ανοίξει 2 κανάλια (ένα ανά αρχείο) στον Bob. Αυτό θα δώσει:" |
| |
| #: ../../../developer/connection-manager.md:24 |
| msgid "" |
| "Behind that, the ConnectionManager will first connect to Bob's device via " |
| "the DHT (via ICE) and setup a TLS Socket. Then, it will ask for a channel, " |
| "and when the channel is ready, inform Alice via a callback. For the second " |
| "file, it will use the first socket and will just open a new channel (only " |
| "needs 2 TLS packet, so it's fast)" |
| msgstr "" |
| "Πίσω από αυτό, ο ConnectionManager θα συνδεθεί πρώτα με τη συσκευή του Bob " |
| "μέσω του DHT (μέσω του ICE) και θα ρυθμίσει ένα TLS Socket. Στη συνέχεια, θα" |
| " ζητήσει ένα κανάλι, και όταν το κανάλι είναι έτοιμο, ενημερώστε την Alice " |
| "μέσω ενός callback. Για το δεύτερο αρχείο, θα χρησιμοποιήσει το πρώτο socket" |
| " και θα ανοίξει απλά ένα νέο κανάλι (απλά χρειάζεται 2 TLS πακέτα, οπότε " |
| "είναι γρήγορο)" |
| |
| #: ../../../developer/connection-manager.md:26 |
| msgid "DHT side" |
| msgstr "Δεξοδική πλευρά DHT" |
| |
| #: ../../../developer/connection-manager.md:28 |
| msgid "" |
| "It's the same as {doc}`calls`, see **Exchange ICE candidates**, **ICE " |
| "negotiation**, **Encrypt the control socket** but only in TCP." |
| msgstr "" |
| "Είναι το ίδιο με {doc}`call`, βλέπε **Exchange ICE υποψήφιοι**, **ICE " |
| "διαπραγμάτευση**, **Encrypt το control socket** αλλά μόνο στο TCP." |
| |
| #: ../../../developer/connection-manager.md:30 |
| msgid "" |
| "However, when a side receives a new ICE request, the callback set by ` void " |
| "onICERequest(onICERequestCallback&& cb);` is triggered." |
| msgstr "" |
| "Ωστόσο, όταν μια πλευρά λαμβάνει νέα αίτηση ICE, ενεργοποιείται η ανάκληση " |
| "που καθορίζεται από ` άκυρη onICERequest(onICERequestCallback&&& cb);`." |
| |
| #: ../../../developer/connection-manager.md:32 |
| msgid "Negotiating a new channel" |
| msgstr "Διαπραγματεύονται για ένα νέο κανάλι" |
| |
| #: ../../../developer/connection-manager.md:34 |
| msgid "" |
| "A channel is defined by an id (unique) and a uri (not unique). For example " |
| "(1, 'git://*')" |
| msgstr "Ένα κανάλι ορίζεται από ένα id (μονώδες) και ένα uri (μη μοναδικό)." |
| |
| #: ../../../developer/connection-manager.md:36 |
| msgid "" |
| "When ready, the ConnectionManager considers that the channel 0 exists. This " |
| "channel is called the *CONTROL* channel and is used to ask for new channels." |
| msgstr "" |
| "Όταν είναι έτοιμο, ο Διαχειριστής Συνδέσεων θεωρεί ότι υπάρχει το κανάλι 0." |
| |
| #: ../../../developer/connection-manager.md:38 |
| msgid "The protocol used is pretty simple and looks like the RTP protocol:" |
| msgstr "" |
| "Το πρωτόκολλο που χρησιμοποιείται είναι αρκετά απλό και μοιάζει με το " |
| "πρωτόκολλο RTP:" |
| |
| #: ../../../developer/connection-manager.md:40 |
| msgid "16 bits are used to store the length of the body." |
| msgstr "16 bits χρησιμοποιούνται για να αποθηκεύσει το μήκος του σώματος." |
| |
| #: ../../../developer/connection-manager.md:41 |
| msgid "16 bits for the channel id (destination)" |
| msgstr "16 bits για το id καναλιού (διαδρομή)" |
| |
| #: ../../../developer/connection-manager.md:42 |
| msgid "body" |
| msgstr "σώμα" |
| |
| #: ../../../developer/connection-manager.md:44 |
| msgid "So all packets have a 32 bits len header." |
| msgstr "Έτσι όλα τα πακέτα έχουν ένα 32 bits len header." |
| |
| #: ../../../developer/connection-manager.md:46 |
| msgid "" |
| "To ask for a new channel, the ConnectionManager will send a `ChannelRequest`" |
| " object (msgpack is used to serialize the struct) in the channel 0 to send " |
| "the id and the name of the new channel to the peer (with `isAnswer = " |
| "false`). The peer will call the callback given with ̀ void " |
| "onChannelRequest(ChannelRequestCallBack&& cb);` and will refuse or accept " |
| "the request. If accepted, the peer will answer with a ChannelRequest with " |
| "the same data (and ̀`isAnswer = true`) and then both peers callbacks will be" |
| " triggered to inform that the ChannelSock is usable." |
| msgstr "" |
| "Για να ζητήσει ένα νέο κανάλι, ο Διαχειριστής Σύνδεσης θα στείλει ένα " |
| "`ChannelRequest` αντικείμενο (msgpack χρησιμοποιείται για να σειριαστεί το " |
| "δομή) στο κανάλι 0 για να στείλει το id και το όνομα του νέου κανάλι στον " |
| "ομολόγο (με `isAnswer = false`)." |
| |
| #: ../../../developer/connection-manager.md:48 |
| msgid "Closing a channel" |
| msgstr "Κλείσιμο κανάλου" |
| |
| #: ../../../developer/connection-manager.md:50 |
| msgid "" |
| "A *EOF* is transmitted for a channel if the length of the content is 0." |
| msgstr "" |
| "Ένα *EOF* μεταδίδεται για ένα κανάλι εάν το μήκος του περιεχομένου είναι 0." |
| |
| #: ../../../developer/connection-manager.md:52 |
| msgid "Structure of the connectionManager" |
| msgstr "Διαρθρωση της σύνδεσηςΔιοικητής" |
| |
| #: ../../../developer/connection-manager.md:54 |
| msgid "Ownership" |
| msgstr "Ιδιοκτησία" |
| |
| #: ../../../developer/connection-manager.md:56 |
| msgid "" |
| "A JamiAccount owns the ConnectionManager and have access to the " |
| "ChannelSocket objects (shared_ptr owned with the MultiplexedSocket." |
| msgstr "" |
| "Ένα JamiAccount κατέχει το ConnectionManager και έχει πρόσβαση στα " |
| "αντικείμενα ChannelSocket (shared_ptr που ανήκει στο MultiplexedSocket." |
| |
| #: ../../../developer/connection-manager.md:57 |
| msgid "The ConnectionManager owns MultiplexedSockets and ICE objects" |
| msgstr "Ο ConnectionManager κατέχει MultiplexedSockets και αντικείμενα ICE" |
| |
| #: ../../../developer/connection-manager.md:58 |
| msgid "" |
| "MultiplexedSockets owns the TLS transport and the ChannelSocket objects" |
| msgstr "" |
| "Το MultiplexedSockets κατέχει την μεταφορά TLS και τα αντικείμενα " |
| "ChannelSocket" |
| |
| #: ../../../developer/connection-manager.md:59 |
| msgid "ChannelSocket owns the data buffers" |
| msgstr "Η ChannelSocket κατέχει τα μπουφέρ δεδομένων" |
| |
| #: ../../../developer/connection-manager.md:61 |
| msgid "Roles" |
| msgstr "Χρήστες" |
| |
| #: ../../../developer/connection-manager.md:63 |
| msgid "ConnectionManager is used to manage connections to peers." |
| msgstr "" |
| "Ο ConnectionManager χρησιμοποιείται για τη διαχείριση συνδέσεων με " |
| "ομοτίμους." |
| |
| #: ../../../developer/connection-manager.md:64 |
| msgid "" |
| "MultiplexedSockets are used to send data over the TLSSocket, read the " |
| "incoming packets and manage channels." |
| msgstr "" |
| "Τα MultiplexedSockets χρησιμοποιούνται για την αποστολή δεδομένων μέσω του " |
| "TLSSocket, τη διάγνωση των εισερχόμενων πακέτων και τη διαχείριση των " |
| "καναλιών." |
| |
| #: ../../../developer/connection-manager.md:65 |
| msgid "ChannelSockets are used by the client to interact with the other peer." |
| msgstr "" |
| "Τα ChannelSockets χρησιμοποιούνται από τον πελάτη για να αλληλεπιδράσει με " |
| "τον άλλο ομοτίμο." |
| |
| #: ../../../developer/connection-manager.md:67 ../../../developer/swarm.md:620 |
| msgid "Usage" |
| msgstr "Χρήση" |
| |
| #: ../../../developer/connection-manager.md:69 |
| msgid "" |
| "Scenarios are described in the corresponding unit tests " |
| "(`test/unitTest/connectionManager/connectionManager.cpp`)" |
| msgstr "" |
| "Τα σενάρια περιγράφονται στις αντίστοιχες δοκιμές μονάδας " |
| "(`test/unitTest/connectionManager/connectionManager.cpp`)" |
| |
| #: ../../../developer/contact-management.md:1 |
| msgid "Contact management" |
| msgstr "Διαχείριση επαφών" |
| |
| #: ../../../developer/contact-management.md:4 |
| msgid "" |
| "This section will present how to find and add a contact from the DHT to the " |
| "client. The usage of a name server will not be explained here. If you'd " |
| "like more details about that, please read {doc}`name-server-protocol`." |
| msgstr "" |
| "Σε αυτό το τμήμα θα περιγραφεί πώς να βρείτε και να προσθέσετε έναν επαφή " |
| "από το DHT στον πελάτη." |
| |
| #: ../../../developer/contact-management.md:6 |
| msgid "Presence on the network" |
| msgstr "Παρουσία στο δίκτυο" |
| |
| #: ../../../developer/contact-management.md:8 |
| msgid "Announce the presence on the DHT" |
| msgstr "Ανακοίνωσε την παρουσία του DHT" |
| |
| #: ../../../developer/contact-management.md:10 |
| msgid "" |
| "The presence is pretty simple to announce on the DHT. In fact, it's just a " |
| "value containing the device hash (see the previous section, {doc}`account-" |
| "management`) on the hash corresponding to the fingerprint of the key. So, if" |
| " we have the account `bf5f1e21d3eb2c1246946aa49d5dcf3e5b9cb1b9` with the " |
| "device `62fbdff0ce86f368c7d3c2682539e5ba9e06404f`, the following defined " |
| "value will be sent over the DHT:" |
| msgstr "" |
| "Η παρουσία είναι αρκετά απλή για να ανακοινωθεί στο DHT. Στην " |
| "πραγματικότητα, είναι απλά μια τιμή που περιέχει το hash της συσκευής (βλ. " |
| "την προηγούμενη ενότητα, {doc}`-account-management`) στο hash που " |
| "αντιστοιχεί στο αποτύπωμα δακτυλικών αποτυπωμάτων του κλειδιού. Έτσι, αν " |
| "έχουμε το λογαριασμό `bf5f1e21d3eb2c1246946aa49d5dcf3e5b9cb1b9` με τη " |
| "συσκευή `62fbdff0ce86f368c7d3c2682539e5ba9e06404f`, η ακόλουθη καθορισμένη " |
| "τιμή θα αποσταθεί μέσω της DHT:" |
| |
| #: ../../../developer/contact-management.md:29 |
| msgid "" |
| "(This value can be put with `dht_.put(h, VALUE, dht::DoneCallback{}, {}, " |
| "true);`, as a permanent put). If the device is announced, the device is " |
| "present. For now, there is no way to delete or edit a value on the DHT (this" |
| " will come when OpenDHT will supports ECC). So, the presence always have a " |
| "delay for now (mean delay: expire-time/2, so 2min30 for now)." |
| msgstr "" |
| "(Αυτή η τιμή μπορεί να τοποθετηθεί με `dht_.put(h, VALUE, " |
| "dht::DoneCallback{}, {}, true);`, ως μόνιμη θέση). Εάν ανακοινωθεί η " |
| "συσκευή, η συσκευή είναι παρούσα." |
| |
| #: ../../../developer/contact-management.md:31 |
| msgid "Get if a contact is present" |
| msgstr "Φέρτε αν υπάρχει επαφή." |
| |
| #: ../../../developer/contact-management.md:33 |
| msgid "" |
| "Now our presence on the network, it's time to get if somebody is present on " |
| "the DHT. With the previous section, it's easy to do the reverse process. To " |
| "know if somebody is present on the DHT (ex: " |
| "`bf5f1e21d3eb2c1246946aa49d5dcf3e5b9cb1b9`), we have to get value at " |
| "`bf5f1e21d3eb2c1246946aa49d5dcf3e5b9cb1b9` and retrieve the " |
| "`DeviceAnnouncement` on this hash. The related code in the ring daemon is in" |
| " `ringaccount.cpp`:" |
| msgstr "" |
| "Τώρα η παρουσία μας στο δίκτυο, είναι ώρα να βρούμε αν κάποιος είναι παρόν " |
| "στο DHT. Με το προηγούμενο τμήμα, είναι εύκολο να κάνουμε την αντίστροφη " |
| "διαδικασία. Για να ξέρουμε αν κάποιος είναι παρόν στο DHT (π.χ.: " |
| "`bf5f1e21d3eb2c1246946aa49d5dcf3e5b9cb1b9`), πρέπει να βρούμε την τιμή στο " |
| "`bf5f1e21d3eb2c1246946aa49d5dcf3e5b9cb1b9` και να ανακτήσουμε την " |
| "`DeviceAnnouncement` σε αυτό το hash. Ο σχετικός κωδικός στο δακτυλικό " |
| "δαίμον είναι στο `ccount.cpp`:" |
| |
| #: ../../../developer/contact-management.md:66 |
| msgid "And that's all." |
| msgstr "Και αυτό είναι όλο." |
| |
| #: ../../../developer/contact-management.md:68 |
| msgid "Client perspective" |
| msgstr "" |
| |
| #: ../../../developer/contact-management.md:139 |
| msgid "" |
| "Are the main APIs for clients. `subscribeBuddy` will listen on the DHT to " |
| "detect presence changes and `newBuddyNotification` will be sent whenever a " |
| "new status is detected:" |
| msgstr "" |
| |
| #: ../../../developer/contact-management.md:140 |
| msgid "" |
| "The status sent to the client is now 0=offline (no device found on the DHT)," |
| " 1=dht_presence (at least a device is found on the DHT), 2=connected (with a" |
| " TCP + SIP channel, so ready to exchange data)." |
| msgstr "" |
| |
| #: ../../../developer/contact-management.md:141 |
| msgid "" |
| "`lineStatus` will contain any custom status sent by the peer (e.g. *Lunch " |
| "Time!*)" |
| msgstr "" |
| |
| #: ../../../developer/contact-management.md:143 |
| msgid "" |
| "`publish` is used for publishing a custom note (`status` is ignored for Jami" |
| " accounts, note will contain the custom status)." |
| msgstr "" |
| |
| #: ../../../developer/contact-management.md:145 |
| msgid "RFC3863 is used to send status over the SIP connection." |
| msgstr "" |
| |
| #: ../../../developer/contact-management.md:147 |
| msgid "Pending request" |
| msgstr "Εξακολουθεί να ισχύει η αίτηση" |
| |
| #: ../../../developer/contact-management.md:149 |
| msgid "Send a request" |
| msgstr "Στείλε αίτηση" |
| |
| #: ../../../developer/contact-management.md:151 |
| msgid "**TODO craft request**" |
| msgstr "**Είναι αίτηση πλοίων TODO**" |
| |
| #: ../../../developer/contact-management.md:153 |
| msgid "" |
| "Finally, once the trust request is crafted, we can push the request to the " |
| "following hash: `InfoHash(\"inbox:\" + deviceId)`" |
| msgstr "" |
| "Τέλος, μόλις δημιουργηθεί το αίτημα εμπιστοσύνης, μπορούμε να ωθήσουμε το " |
| "αίτημα στο ακόλουθο χασά: `InfoHash(\"inbox:\" + deviceId) `" |
| |
| #: ../../../developer/contact-management.md:155 |
| msgid "The following code is used in the daemon:" |
| msgstr "Ο ακόλουθος κωδικός χρησιμοποιείται στο daemon:" |
| |
| #: ../../../developer/contact-management.md:160 |
| msgid "Receiving a request" |
| msgstr "Αποκλήρωση αιτήματος" |
| |
| #: ../../../developer/contact-management.md:164 |
| msgid "(Accept/Block/Discard)" |
| msgstr "(Αποδοχή/Μέκλεισμός/Απορρίψιμο)" |
| |
| #: ../../../developer/contact-management.md:166 |
| msgid "Daemon API" |
| msgstr "API Daemon" |
| |
| #: ../../../developer/contact-management.md:168 |
| msgid "" |
| "All methods to follow the presence of a buddy is located in the " |
| "`PresenceManager` such as:" |
| msgstr "" |
| "Όλες οι μεθόδους παρακολούθησης της παρουσίας ενός φίλου βρίσκονται στο " |
| "`PresenceManager`, όπως:" |
| |
| #: ../../../developer/contact-management.md:199 |
| msgid "" |
| "All methods and signals used to manage trust requests and contacts are in " |
| "the `ConfigurationManager` such as:" |
| msgstr "" |
| "Όλες οι μέθοδοι και τα σήματα που χρησιμοποιούνται για τη διαχείριση " |
| "αιτήσεων εμπιστοσύνης και επαφών βρίσκονται στο `ConfigurationManager`, " |
| "όπως:" |
| |
| #: ../../../developer/contact-management.md:291 |
| msgid "" |
| "If you want some examples, these methods are used into `contactmodel.cpp` in" |
| " LRC." |
| msgstr "" |
| "Εάν θέλετε μερικά παραδείγματα, οι μέθοδοι αυτές χρησιμοποιούνται στο " |
| "`contactmodel.cpp` στο LRC." |
| |
| #: ../../../developer/debugging-tools.rst:2 |
| msgid "Debugging Tools" |
| msgstr "Εργαλεία Αποσυνθέτησης" |
| |
| #: ../../../developer/debugging-tools.rst:4 |
| msgid "" |
| "There are several ways to debug Jami from a developer perspective, depending" |
| " on what you want to debug." |
| msgstr "" |
| "Υπάρχουν διάφοροι τρόποι για να απορρίψεις το Jami από την άποψη του " |
| "προγραμματιστή, ανάλογα με το τι θέλεις να απορρίψεις." |
| |
| #: ../../../developer/debugging-tools.rst:7 |
| msgid "Loggers" |
| msgstr "Δασκοπηγείς" |
| |
| #: ../../../developer/debugging-tools.rst:9 |
| msgid "" |
| "The first way is to use runtime loggers. Starting `jami` with `-d` will " |
| "enable logging by the deamon (or the Troubleshoot section in the General " |
| "settings). Because Jami uses several libraries, we do not enable all logs by" |
| " default. But you can pass some environment variables to show it:" |
| msgstr "" |
| "Ο πρώτος τρόπος είναι να χρησιμοποιήσετε καταγραφείς runtime. Ξεκινώντας με " |
| "`jami` με `-d` θα επιτρέψει τη καταγραφή από το deamon (ή το τμήμα επίλυσης " |
| "προβλημάτων στις Γενικές ρυθμίσεις). Επειδή η Jami χρησιμοποιεί πολλές " |
| "βιβλιοθήκες, δεν ενεργοποιούμε όλες τις καταγραφές κατά προεπιλογή." |
| |
| #: ../../../developer/debugging-tools.rst:13 |
| msgid "`SIPLOGLEVEL=5` for enabling logs from PJSIP." |
| msgstr "`SIPLOGLEVEL=5` για την ενεργοποίηση των καταγραφών από το PJSIP." |
| |
| #: ../../../developer/debugging-tools.rst:14 |
| msgid "`DHTLOGLEVEL=5` for enabling logs from OpenDHT." |
| msgstr "`DHTLOGLEVEL=5` για την ενεργοποίηση των καταγραφών από το OpenDHT." |
| |
| #: ../../../developer/debugging-tools.rst:15 |
| msgid "`AVLOGLEVEL=50` for enabling logs from ffmpeg." |
| msgstr "`AVLOGLEVEL=50` για την ενεργοποίηση των καταγραφών από ffmpeg." |
| |
| #: ../../../developer/debugging-tools.rst:18 |
| msgid "Debuggers" |
| msgstr "Επισκευές" |
| |
| #: ../../../developer/debugging-tools.rst:20 |
| msgid "" |
| "Generally your IDE has an embedded debuggger. Else, you can use `gdb` for " |
| "example to be able to add breakpoints, backtraces from crashes, print " |
| "internal structures, etc. You need to compile the project in *DEBUG* mode to" |
| " get debug symbols." |
| msgstr "" |
| "Γενικά το IDE σας έχει ενσωματωμένο debuggger. Διαφορετικά, μπορείτε να " |
| "χρησιμοποιήσετε `gdb` για παράδειγμα για να μπορείτε να προσθέσετε σημεία " |
| "διακοπής, αναδρομές από συντριβές, εκτύπωση εσωτερικών δομών, κλπ. Πρέπει να" |
| " συντάξετε το έργο στη λειτουργία *DEBUG* για να πάρετε σύμβολα αποσφάλειας." |
| |
| #: ../../../developer/debugging-tools.rst:24 |
| msgid "Some useful commands:" |
| msgstr "Μερικές χρήσιμες εντολές:" |
| |
| #: ../../../developer/debugging-tools.rst:26 |
| msgid "" |
| "`b file.cpp:line` - Add a breakpoint (*file.cpp:line* can be replaced by a " |
| "symbol)" |
| msgstr "" |
| "`b file.cpp:line` - Προσθέστε ένα σημείο διακοπής (*file.cpp:line* μπορεί να" |
| " αντικατασταθεί από σύμβολο)" |
| |
| #: ../../../developer/debugging-tools.rst:27 |
| msgid "`t a a bt` - (thread apply all backtrace) to get all backtraces" |
| msgstr "" |
| "`t a a bt` - (πράγματος: πιο: πιο: πιο: πιο: πιο: πιο: πιο: πιο: πιο: πιο: " |
| "πιο: πιο: πιο: πιο: πιο: πιο: πιο: πιο: πιο: πιο: πιο: πιο: πιο: πιο: πιο: " |
| "πιο: πιο: πιο: πιο: πιο: πιο: πιο: πιο: πιο: πιο: πιο: πιο: πιο: πιο: πιο: " |
| "πιο: πιο: πιο: πιο: πιο: πιο: πιο: πιο: πιο: πιο: πιο: πιο: πιο: πιο: πιο: " |
| "πιο: πιο: πιο: π: πιο: πιο: π: π: πιο: π: π: π: π: π: π: π: π: π: π: π: π: " |
| |
| #: ../../../developer/debugging-tools.rst:28 |
| msgid "`Ctrl + X / A` - pass in graphical view" |
| msgstr "`Ctrl + X / A` - περάστε σε γραφική προβολή" |
| |
| #: ../../../developer/debugging-tools.rst:29 |
| msgid "`p` - print an internal value." |
| msgstr "`p` - εκτυπώστε μια εσωτερική τιμή." |
| |
| #: ../../../developer/debugging-tools.rst:32 |
| msgid "Profilers" |
| msgstr "Προφίλ" |
| |
| #: ../../../developer/debugging-tools.rst:34 |
| msgid "" |
| "Debuggers are useful, but they do not show real-time memory " |
| "consumption/network activity/CPU usage. For this, you can use the embedded " |
| "profiler in your IDE (from Android Studio or Qt Creator/Visual Studio for " |
| "example)." |
| msgstr "" |
| "Τα debuggers είναι χρήσιμα, αλλά δεν δείχνουν κατανάλωση " |
| "μνήμης/δραστηριότητα δικτύου/χρησιμοποίηση CPU σε πραγματικό χρόνο." |
| |
| #: ../../../developer/debugging-tools.rst:39 |
| msgid "Address Sanitizer" |
| msgstr "Καθαρίσματος διευθύνσεων" |
| |
| #: ../../../developer/debugging-tools.rst:41 |
| msgid "" |
| "This can be useful to detect leaks, crashes, potential deadlocks at runtime." |
| " To enable this, you can compile the daemon with " |
| "`CXXFLAGS+=\"-fsanitize=address\"`. Other flags like `tsan` may be useful." |
| msgstr "" |
| "Αυτό μπορεί να είναι χρήσιμο για την ανίχνευση διαρροών, συντριβών, πιθανών " |
| "αδιέξοδος κατά τη διάρκεια της λειτουργίας." |
| |
| #: ../../../developer/debugging-tools.rst:45 |
| msgid "Valgrind/Callgrind" |
| msgstr "Βάλγκριντ/Καλγκριντ" |
| |
| #: ../../../developer/debugging-tools.rst:47 |
| msgid "" |
| "Valgrind is a tool to watch allocations, CPU usage and more and can be used " |
| "via: `valgrind --tool=callgrind ./jami -d`. This will make the application " |
| "very slow but can provide useful reports about memory allocation/performance" |
| " usage (**KCacheGrind** can be used to read reports)." |
| msgstr "" |
| "Το Valgrind είναι ένα εργαλείο για την παρακολούθηση των κατανομών, της " |
| "χρήσης CPU και άλλων και μπορεί να χρησιμοποιηθεί μέσω: `valgrind " |
| "--tool=callgrind./jami -d`. Αυτό θα κάνει την εφαρμογή πολύ αργή αλλά μπορεί" |
| " να παράσχει χρήσιμες εκθέσεις σχετικά με τη χρήση μνήμης / απόδοσης " |
| "(**KCacheGrind** μπορεί να χρησιμοποιηθεί για την ανάγνωση εκθέσεων)." |
| |
| #: ../../../developer/debugging-tools.rst:52 |
| msgid "Tests" |
| msgstr "Εξετάσεις" |
| |
| #: ../../../developer/debugging-tools.rst:54 |
| msgid "" |
| "Daemon has many tests and coverage enabled. If the daemon is built in static" |
| " (else private symbols will not be available), adding new tests can help to " |
| "reproduce bugs, solve bugs and avoid any regression. (cf. " |
| "`daemon/tests/unitTests``)" |
| msgstr "" |
| "Το Daemon έχει πολλές δοκιμές και έχει ενεργοποιηθεί την κάλυψη. Εάν το " |
| "Daemon είναι κατασκευασμένο στατικά (άλλοι ιδιωτικοί σύμβολοι δεν θα είναι " |
| "διαθέσιμοι), η προσθήκη νέων δοκιμών μπορεί να βοηθήσει στην αναπαραγωγή " |
| "σφάλσεων, την επίλυση σφάλσεων και την αποφυγή οποιασδήποτε υποτροπής." |
| |
| #: ../../../developer/debugging-tools.rst:59 |
| msgid "Agent" |
| msgstr "Πράκτορα." |
| |
| #: ../../../developer/debugging-tools.rst:61 |
| msgid "" |
| "Tests are only using one daemon to simulate both peers. So it can be " |
| "difficult to test in various environments. Another possibility is to write a" |
| " scenario and run an agent (documentation is available in the daemon's " |
| "repository)." |
| msgstr "" |
| "Οι δοκιμές χρησιμοποιούν μόνο ένα δαίμον για να προσομοιώσουν και τους δύο " |
| "ομοτίμους. Έτσι μπορεί να είναι δύσκολο να δοκιμαστεί σε διάφορα " |
| "περιβάλλοντα." |
| |
| #: ../../../developer/debugging-tools.rst:66 |
| msgid "LTTng" |
| msgstr "Επικοινωνία" |
| |
| #: ../../../developer/debugging-tools.rst:68 |
| msgid "" |
| "Finally, tracepoints can be created and analyzed. `daemon/tools/trace` " |
| "provide the documentation and some examples. The advantage of LTTng is that " |
| "it is quicker than logs, can be triggered by system events and can be used " |
| "with tracepoints already present in the kernel (so that it can be used with " |
| "tracepoints from network interfaces)." |
| msgstr "" |
| "Τέλος, μπορούν να δημιουργηθούν και να αναλύονται τα tracepoints. " |
| "`daemon/tools/trace` παρέχουν την τεκμηρίωση και μερικά παραδείγματα. Το " |
| "πλεονέκτημα του LTTng είναι ότι είναι ταχύτερο από τα ημερολόγια, μπορεί να " |
| "ενεργοποιηθεί από συστημικά γεγονότα και μπορεί να χρησιμοποιηθεί με τα " |
| "tracepoints που υπάρχουν ήδη στον πυρήνα (για να μπορεί να χρησιμοποιηθεί με" |
| " τα tracepoints από τις διεπαφές δικτύου)." |
| |
| #: ../../../developer/delivery-status.md:1 |
| msgid "Synchronization of delivery status" |
| msgstr "" |
| |
| #: ../../../developer/delivery-status.md:3 |
| msgid "" |
| "When we send a message to a conversation, the delivery status must be " |
| "explicit and understandable for the end user. So, Jami must offer the " |
| "possibility to know if the message was delivered to the other members of a " |
| "conversation and synchronize this status (sent and displayed) across " |
| "devices." |
| msgstr "" |
| |
| #: ../../../developer/delivery-status.md:5 |
| msgid "How it works (backend)" |
| msgstr "" |
| |
| #: ../../../developer/delivery-status.md:7 |
| msgid "" |
| "The status of messages is stored in the conversation layer via the variable " |
| "`messagesStatus (map<string, map<string, string>)` with the following " |
| "structure:" |
| msgstr "" |
| |
| #: ../../../developer/delivery-status.md:19 |
| msgid "" |
| "The `fetch` status is the commitId of the last message fetched by the " |
| "member. The `fetched_ts` is the timestamp of the last message fetched by the" |
| " member. The `read` status is the commitId of the last message read by the " |
| "member. The `read_ts` is the timestamp of the last message read by the " |
| "member." |
| msgstr "" |
| |
| #: ../../../developer/delivery-status.md:21 |
| msgid "" |
| "When a member fetches a message, the `fetch` status is updated with the " |
| "commitId of the message and the `fetched_ts` is updated with the timestamp " |
| "of the message. When a member reads a message, the `read` status is updated " |
| "with the commitId of the message and the `read_ts` is updated with the " |
| "timestamp of the message. This information is synced across devices and " |
| "other devices will update their internal structure if the timestamp is " |
| "newer." |
| msgstr "" |
| |
| #: ../../../developer/delivery-status.md:23 |
| msgid "This information is stored in `conversation_data/xxxxxxxxx/status`." |
| msgstr "" |
| |
| #: ../../../developer/delivery-status.md:25 |
| msgid "Client API" |
| msgstr "" |
| |
| #: ../../../developer/delivery-status.md:27 |
| msgid "" |
| "The client should get status from the current **SwarmMessage** structure " |
| "when loading conversation and update the status via " |
| "`AccountMessageStatusChanged`. In `AccountMessageStatusChanged` the client " |
| "will have the commitId, peer uri and new status. So, this will correspond to" |
| " `message.status[uri]`." |
| msgstr "" |
| |
| #: ../../../developer/delivery-status.md:30 |
| msgid "SwarmMessage's status structure is:" |
| msgstr "" |
| |
| #: ../../../developer/delivery-status.md:39 |
| msgid "" |
| "Where `uri` is the peer uri and `status` is the status of the message for " |
| "this peer (from the `MessageStates` enum)." |
| msgstr "" |
| |
| #: ../../../developer/delivery-status.md:41 |
| msgid "" |
| "When sending a new message, the `status` map can be empty (because no one " |
| "fetched). By default, if there is no fetch/read information for a message, " |
| "the message MUST be considered as sending. The global status of a message is" |
| " the maximum of the status of all members except ourselves. For example, if " |
| "Alice sends a message and we have:" |
| msgstr "" |
| |
| #: ../../../developer/delivery-status.md:48 |
| msgid "The global status is `sent`." |
| msgstr "" |
| |
| #: ../../../developer/delivery-status.md:50 |
| msgid "Notes for client" |
| msgstr "" |
| |
| #: ../../../developer/delivery-status.md:52 |
| msgid "" |
| "If the client wants to show which message is the last read message for a " |
| "member, they must check the index when responding to " |
| "`AccountMessageStatusChanged`. Because this signal can emit that a previous " |
| "message is displayed later." |
| msgstr "" |
| |
| #: ../../../developer/delivery-status.md:53 |
| msgid "" |
| "The status of a message can be used to create a detailed view of who " |
| "received/displayed a specific message. However, timestamps of those events " |
| "are not stored, because this would represent too much data." |
| msgstr "" |
| |
| #: ../../../developer/design-process.md:1 |
| msgid "Design Process" |
| msgstr "" |
| |
| #: ../../../developer/design-process.md:6 |
| msgid "" |
| "Client: The person who is paying for the feature (and can be the PO because " |
| "it's a R&D project)" |
| msgstr "" |
| |
| #: ../../../developer/design-process.md:8 |
| #: ../../../developer/file-transfer.md:59 |
| msgid "Process" |
| msgstr "Πραγματική διαδικασία" |
| |
| #: ../../../developer/design-process.md:10 |
| msgid "Ideas:" |
| msgstr "" |
| |
| #: ../../../developer/design-process.md:11 |
| msgid "The **client** come with a new Idea" |
| msgstr "" |
| |
| #: ../../../developer/design-process.md:12 |
| msgid "Ask for justifications:" |
| msgstr "" |
| |
| #: ../../../developer/design-process.md:14 |
| msgid "Who (user definitions)" |
| msgstr "" |
| |
| #: ../../../developer/design-process.md:15 |
| msgid "Why do we want this feature" |
| msgstr "" |
| |
| #: ../../../developer/design-process.md:16 |
| msgid "When do we want this feature" |
| msgstr "" |
| |
| #: ../../../developer/design-process.md:17 |
| msgid "Where do we want this feature (platforms)" |
| msgstr "" |
| |
| #: ../../../developer/design-process.md:18 |
| msgid "Priority" |
| msgstr "" |
| |
| #: ../../../developer/design-process.md:19 |
| msgid "Decide if we want or not this feature, Yes/No" |
| msgstr "" |
| |
| #: ../../../developer/design-process.md:20 |
| msgid "If yes, Brainstorming" |
| msgstr "" |
| |
| #: ../../../developer/design-process.md:21 |
| msgid "Should be the max of person (users/tech/**client**)" |
| msgstr "" |
| |
| #: ../../../developer/design-process.md:22 |
| msgid "" |
| "Produce a brief of the feature (User Story, Details from step 2, Notes from " |
| "Step 4.) => Meta ticket on GitLab" |
| msgstr "" |
| |
| #: ../../../developer/design-process.md:23 |
| msgid "Create UX Wireframe" |
| msgstr "" |
| |
| #: ../../../developer/design-process.md:24 |
| #: ../../../developer/design-process.md:27 |
| msgid "Validation (user/technical/**client**) Yes/No" |
| msgstr "" |
| |
| #: ../../../developer/design-process.md:25 |
| msgid "If no, return to step 6." |
| msgstr "" |
| |
| #: ../../../developer/design-process.md:26 |
| msgid "If validated, POC (Adobe XD/Figma)" |
| msgstr "" |
| |
| #: ../../../developer/design-process.md:28 |
| msgid "If no, return to step 9." |
| msgstr "" |
| |
| #: ../../../developer/design-process.md:29 |
| msgid "" |
| "Create sub-tickets (GitLab) with design specification, resources evaluation " |
| "(time/resource)" |
| msgstr "" |
| |
| #: ../../../developer/design-process.md:30 |
| msgid "Prioritize or stop the process (too much time needed)" |
| msgstr "" |
| |
| #: ../../../developer/design-process.md:31 |
| msgid "Develop" |
| msgstr "" |
| |
| #: ../../../developer/design-process.md:32 |
| msgid "Validate implementation (Design + **client**) - YES/No" |
| msgstr "" |
| |
| #: ../../../developer/design-process.md:33 |
| msgid "If no return to 12." |
| msgstr "" |
| |
| #: ../../../developer/design-process.md:34 |
| msgid "If validated merge and release!" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:2 |
| msgid "Dynamic Routing Table (DRT)" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:4 |
| msgid "" |
| "The DRT is a novel concept utilized in swarm technology to maintain peer-to-" |
| "peer (P2P) connections. In this approach, group members establish a graph of" |
| " nodes, each identified by a unique hash, and these nodes must be " |
| "interconnected." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:6 |
| msgid "" |
| "Therefore, we require a structural framework that accomplishes the following" |
| " objectives:" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:8 |
| msgid "Maximizes the number of connected nodes at all times." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:9 |
| msgid "Minimizes message transmission times." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:10 |
| msgid "Reduces the number of links between peers." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:11 |
| msgid "Requires minimal computational resources." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:13 |
| msgid "Several solutions have been proposed to achieve these goals:" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:15 |
| msgid "" |
| "Each node is connected to the next node, resulting in only 'N' connections. " |
| "However, this approach is not efficient for transmitting messages since the " |
| "message must traverse all peers one by one." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:16 |
| msgid "" |
| "Every node is connected to all other nodes, leading to 'N x N' connections. " |
| "This configuration is effective for message transmission but demands more " |
| "resources. **This option will be selected for the first version.**" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:17 |
| msgid "" |
| "An alternative solution is presented in the paper titled [*Maximizing the " |
| "Coverage of Roadmap Graph for Optimal Motion " |
| "Planning*](https://www.hindawi.com/journals/complexity/2018/9104720/), which" |
| " offers optimal motion planning coverage but necessitates significant " |
| "computational calculations." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:18 |
| msgid "" |
| "Utilizing the DHT (Distributed Hash Table) algorithm for the routing table, " |
| "which effectively addresses all four points and is already employed by Jami " |
| "in their UDP implementation." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:20 |
| msgid "" |
| "Additionally, to optimize the number of sockets, a socket will be allocated " |
| "by a **ConnectionManager** to enable multiplexing sockets with a specific " |
| "hash. This means that if there is a need to transmit multiple files and " |
| "engage in a chat with someone, only one socket will be utilized." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:25 |
| msgid "**Notations:**" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:27 |
| msgid "`n`: Node identifier" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:28 |
| msgid "`N`: Number of nodes in the network" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:29 |
| msgid "`b`: Configuration parameter" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:31 |
| msgid "**Terms and Concepts:**" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:33 |
| msgid "" |
| "**Mobile Node**: Some devices in the network can establish dynamic " |
| "connectivity, allowing them to quickly connect and disconnect to optimize " |
| "battery usage. Instead of maintaining a dedicated peer-to-peer socket with " |
| "these devices, the protocol opts to use existing sockets if available or " |
| "relies on push notifications to transmit information. These nodes are marked" |
| " with a dedicated flag in the protocol." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:35 |
| msgid "" |
| "**Bucket**: This class is used to manipulate and store connections and to " |
| "manage the state of nodes (connecting, known, mobile). Known nodes are used " |
| "when the connection with a node goes offline." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:37 |
| msgid "" |
| "**Routing Table**: It is employed to organize buckets, enabling the search " |
| "for nearest nodes and establishing the link between the swarm manager and " |
| "the DRT (Distributed Routing Table)." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:39 |
| msgid "" |
| "**Swarm Manager**: This component is responsible for managing the internal " |
| "logic and overseeing the distribution of connections within the network." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:41 |
| msgid "" |
| "**Swarm Protocol**: It is used for data exchange between peers. The " |
| "following types of data can be exchanged:" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:43 |
| msgid "Request (e.g., FIND): Query | num | nodeId" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:44 |
| msgid "Response (e.g., FOUND): Query | nodes | mobileNodes" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:45 |
| msgid "Message: Version | isMobile | Request or Response" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:49 |
| msgid "Algorithms comparison" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:52 |
| msgid "Chord" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:54 |
| msgid "" |
| "In a Chord network, each node is associated with a unique key computed using" |
| " either SHA-1 or MD5 hash functions. The nodes are organized into a ring in " |
| "increasing order, and each node maintains a routing table that stores " |
| "information about its nearest nodes. Each entry `i` in the routing table " |
| "contains nodes with keys such that :math:`hash = (n + 2i - 1) mod 2^m`, " |
| "where `m` represents the number of bits in the key." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:56 |
| msgid "" |
| "Every node is aware of its successors and predecessors in the Chord network." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:58 |
| msgid "" |
| "To retrieve data, a node sends a request to its immediate successor. If the " |
| "node possesses the required key, it responds; otherwise, it forwards the " |
| "request to its own successor." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:60 |
| msgid "" |
| "When adding a new node to the network, the node broadcasts messages to other" |
| " nodes to update their routing tables and ensure proper integration." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:62 |
| msgid "" |
| "If a node goes offline, it must update its routing table to reroute traffic " |
| "through other available nodes." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:64 |
| msgid "The distance between two nodes is: :math:`d(n1,n2,) = (n1-n2) mod 2b``" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:67 |
| msgid "The routing table size is: :math:`log{N}`" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:70 |
| msgid "The number of hops to get a value is: :math:`log{N}`" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:73 |
| msgid "" |
| "Sources: (Stoica, Morris, Karger, Kaashoek & Balakrishnan, 2001). (Liben-" |
| "Nowell, Balakrishnan & Karger, 2002)." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:79 |
| msgid "Pastry" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:81 |
| msgid "" |
| "In a Pastry network, each node is associated with a 128-bit identifier " |
| "generated from a hashing function. Pastry is commonly used with IP " |
| "addresses, and nodes are organized in a ring with increasing order. The " |
| "routing table is divided into segments, typically determined by :math:`128 /" |
| " 2b`, where :math:`b` is typically set to 4, and IP addresses are placed " |
| "within these segments." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:83 |
| msgid "" |
| "When a message needs to be transmitted to a leaf node, it is sent directly " |
| "to the intended recipient. If the message is not intended for a leaf node, " |
| "the network attempts to locate the nearest node and forwards the data to " |
| "that node for further transmission." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:85 |
| msgid "Distance is: :math:`d(n1,n2,) = (prefix(n1) - prefix(n2)) mod 2b`" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:88 |
| msgid "Size of the routing table: :math:`(2b - 1)log{_2}{N}`" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:91 |
| msgid "Number of hops to get a value: :math:`log{_2}{N}`" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:94 |
| msgid "where b is generally 2." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:96 |
| msgid "Sources: Tirée de Castro, Druschel, Hu, Rowstron (2002, p.3)21" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:100 |
| msgid "Kademlia" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:102 |
| msgid "" |
| "This algorithm is used by BitTorrent and Ethereum. In this scheme, each node" |
| " is assigned a 160-bit identifier, and nodes can be organized in a ring with" |
| " increasing order. Data is stored in the nearest nodes. However, the routing" |
| " table employs a binary tree structure with k-buckets (where k represents " |
| "the number of nodes in each bucket) to store information about the nearest " |
| "nodes." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:104 |
| msgid "" |
| "When a node connects to the DHT (Distributed Hash Table), it attempts to " |
| "populate the routing table by inserting discovered nodes into appropriate " |
| "buckets. If a bucket becomes full, a node may be ignored if it is too " |
| "distant; however, if the bucket represents the nearest available, it will be" |
| " split into two to accommodate the new node. When a new node is added, its " |
| "routing table is queried to obtain information about the nearest nodes." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:106 |
| msgid "" |
| "To retrieve a specific value, a node sends a request to the nearest node " |
| "with the corresponding hash." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:108 |
| msgid "Distance is :math:`d(n1, n2,) = n1 XOR n2`" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:111 |
| msgid "Size of the routing table: :math:`K \\times log{_2}{N}`" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:114 |
| msgid "Number of hops: :math:`log{_2}{N}`" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:117 |
| msgid "where b is generally 1." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:122 |
| msgid "" |
| "When starting Jami, every conversation initiates the creation of its routing" |
| " table. The initial step is to establish contact with a first node to begin " |
| "synchronization with other nodes. This process is known as \"bootstrapping\"" |
| " and consists of two main parts." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:124 |
| msgid "" |
| "The first part involves retrieving all known devices in a conversation. This" |
| " is accomplished by checking for known certificates in the repository or " |
| "verifying the presence of certain members on the DHT (Distributed Hash " |
| "Table). If a TCP connection already exists with any device in the " |
| "conversation, it will be utilized. Additionally, known nodes are injected " |
| "into the routing table." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:126 |
| msgid "" |
| "The routing table is subsequently updated whenever an event occurs on a " |
| "node." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:128 |
| msgid "" |
| "During routing table updates, the component will attempt to establish " |
| "connections with new nodes if necessary. The decision to connect to new " |
| "nodes is determined by the following conditions: - For the nearest bucket, a" |
| " connection attempt is made if :math:`(maxSize(Bucket) - connected nodes - " |
| "connecting nodes) > 0`. - For other buckets, a connection is initiated if " |
| ":math:`(maxSize(Bucket) - connecting nodes) > 0`." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:132 |
| msgid "" |
| "The distinction lies in the fact that, in the case of the nearest bucket, " |
| "the goal is to attempt to split buckets if required while compensating for " |
| "disconnections in other buckets. This is essential to maintain knowledge of " |
| "the nearest nodes." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:134 |
| msgid "" |
| "Upon connecting to a new node, a \"FIND\" request is sent to discover new " |
| "identifiers nearby and identify all mobile nodes. Subsequently, a \"FIND\" " |
| "request is sent every ten minutes to keep the routing table up to date." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:136 |
| msgid "" |
| "The primary class responsible for this process in the codebase is " |
| "`SwarmManager`, and the bootstrapping phase is handled within the " |
| "conversation's section." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst-1 |
| msgid "Global architecture" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:147 |
| msgid "Perfomance analysis" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:150 |
| msgid "Tools" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:152 |
| msgid "" |
| "To validate the implementation and performance of the DRT component, we have" |
| " developed several tools located in `daemon/tests/unitTest/swarm`, including" |
| " `swarm_spread`, `bootstrap`, and more." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:154 |
| msgid "To interpret the results, we utilize the following tools:" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:156 |
| msgid "`gcov` for test coverage analysis." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:157 |
| msgid "`ASan` to check for memory leaks and heap overflows." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:158 |
| msgid "`gdb` for debugging internal structures." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:160 |
| msgid "" |
| "While the major focus is on unit tests, for performance analysis, we rely on" |
| " `swarm_spread` to assess various aspects, including:" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:162 |
| msgid "The number of hops required for message transmission." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:163 |
| msgid "The number of messages received per node." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:164 |
| msgid "Determining the maximum and minimum messages received by each node." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:165 |
| msgid "Calculating the iterations needed to transmit a message to all nodes." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:166 |
| msgid "Measuring message reception times." |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:169 |
| msgid "Results" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst-1 |
| msgid "Number of iterations to send a message" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst-1 |
| msgid "Routing table size" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:181 |
| msgid "Future work" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:183 |
| msgid "" |
| "Dynamic bucket size limit to get different bucket size depending on how " |
| "large is the routing table" |
| msgstr "" |
| |
| #: ../../../developer/drt.rst:184 |
| msgid "Declining some connections to speed-up the transmission a bit" |
| msgstr "" |
| |
| #: ../../../developer/feature-requests.md:1 |
| msgid "Feature requests" |
| msgstr "Επαίτηση χαρακτηριστικών" |
| |
| #: ../../../developer/feature-requests.md:4 |
| msgid "" |
| "This page exists to classify feature requests per users' feedback, to avoid " |
| "leaving tickets open for years. Under construction, will sort the tickets." |
| msgstr "" |
| "Αυτή η σελίδα υπάρχει για να ταξινομήσει τα αιτήματα χαρακτηριστικών ανά " |
| "σχόλιο των χρηστών, για να αποφευχθεί η αφήση εισιτηρίων ανοιχτών για " |
| "χρόνια." |
| |
| #: ../../../developer/feature-requests.md:8 |
| msgid "SFL" |
| msgstr "ΣΦΛ" |
| |
| #: ../../../developer/feature-requests.md:10 |
| msgid "" |
| "{daemon-issue}`Implement pipewire <13> to support screen sharing on Wayland`" |
| " -> Contact #Jami (Adrien, Sébastien, etc.) / hard / In progress" |
| msgstr "" |
| "{daemon-issue}` Εφαρμόστε καλώδιο διασύνδεσης <13> για να υποστηρίξετε τη " |
| "διαμοιραστική χρήση οθόνης στο Wayland` -> Επικοινωνία #Jami (Adrien, " |
| "Sébastien, κλπ.) / hard / Σε εξέλιξη" |
| |
| #: ../../../developer/feature-requests.md:12 |
| msgid "Connectivity -> Contact #Jami (Sébastien) / medium:" |
| msgstr "Συνδεσιμότητα -> Επικοινωνία #Jami (Sébastien) / μέσο:" |
| |
| #: ../../../developer/feature-requests.md:13 |
| msgid "TURN ipv6 support" |
| msgstr "Υποστήριξη TURN ipv6" |
| |
| #: ../../../developer/feature-requests.md:14 |
| msgid "connection ipv6 only<->ipv4 only" |
| msgstr "Σύνδεση ipv6 μόνο<->ipv4 μόνο" |
| |
| #: ../../../developer/feature-requests.md:15 |
| msgid "SIP:" |
| msgstr "ΣΥΡ:" |
| |
| #: ../../../developer/feature-requests.md:16 |
| msgid "Fix IP to IP -> Contact #Jami (Adrien, Sébastien) / easy" |
| msgstr "" |
| "Διορθώστε το IP σε IP -> Επικοινωνήστε με #Jami (Adrien, Sébastien) / εύκολο" |
| |
| #: ../../../developer/feature-requests.md:17 |
| msgid "Add unit-tests / probably easy" |
| msgstr "Προσθέστε δοκιμές μονάδας / πιθανότατα εύκολο" |
| |
| #: ../../../developer/feature-requests.md:18 |
| msgid "" |
| "Search in system contacts ({client-gnome-issue}`1191`, {client-gnome-" |
| "issue}`829`, etc.) -> Contact #Jami (Adrien, Sébastien, Andreas, etc.) / " |
| "easy but long" |
| msgstr "" |
| "Αναζήτηση σε επαφές του συστήματος ({client-gnome-issue}`1191`, {client-" |
| "gnome-issue}`829`, κλπ.) -> Επικοινωνία #Jami (Adrien, Sébastien, Andreas, " |
| "κλπ.) / εύκολο αλλά μακρύ" |
| |
| #: ../../../developer/feature-requests.md:21 |
| msgid "Crypto: (Contact #Jami - Adrien)" |
| msgstr "Κρυπτογράφημα: (Συναντήσεις #Jami - Adrien)" |
| |
| #: ../../../developer/feature-requests.md:22 |
| msgid "Update media RTP ciphers for ffmpeg / probably easy" |
| msgstr "Ανακαινίστε τους κωδικούς RTP για ffmpeg / πιθανότατα εύκολο" |
| |
| #: ../../../developer/feature-requests.md:23 |
| msgid "Support ECC (instead RSA) for Jami accounts / hard but short" |
| msgstr "Υποστήριξη ECC (αντί RSA) για λογαριασμούς Jami / σκληρή αλλά σύντομη" |
| |
| #: ../../../developer/feature-requests.md:24 |
| msgid "Remove usages of SHA1 (ids + git) / hard" |
| msgstr "Απομακρύνετε τις χρήσεις του SHA1 (ids + git) / σκληρό" |
| |
| #: ../../../developer/feature-requests.md:25 |
| msgid "Media -> Contact #Jami (Adrien, Andreas, etc.)" |
| msgstr "Μέσα ενημέρωσης -> Επικοινωνία #Jami (Αντρίεν, Ανδρέας κλπ.)" |
| |
| #: ../../../developer/feature-requests.md:26 |
| msgid "{daemon-issue}`POC for AV1 support <27>` / probably hard" |
| msgstr "Πιθανότατα σκληρή" |
| |
| #: ../../../developer/feature-requests.md:27 |
| msgid "Investigate audio quality (contact #Jami, medium difficulty)" |
| msgstr "Ερευνήσετε την ποιότητα του ήχου (επικοινωνία #Jami, μέση δυσκολία)" |
| |
| #: ../../../developer/feature-requests.md:28 |
| msgid "Plugins ideas: (Contact #Jami - Aline)" |
| msgstr "Ιδήσεις προσθήκη: (Συναντήσεις #Jami - Aline)" |
| |
| #: ../../../developer/feature-requests.md:29 |
| msgid "{plugins-issue}`Payment plug-in <27>`" |
| msgstr "Πληροφορίες για την πληρωμή" |
| |
| #: ../../../developer/feature-requests.md:30 |
| msgid "A chat-GPT plugin" |
| msgstr "Ένα προγραμματισμό για την επικοινωνία" |
| |
| #: ../../../developer/feature-requests.md:31 |
| msgid "Add new transports (e.g. QUIC?)" |
| msgstr "Προσθήκη νέων μεταφορών (π.χ. QUIC)" |
| |
| #: ../../../developer/feature-requests.md:32 |
| msgid "Add libtorrent support?" |
| msgstr "Να προσθέσουμε την υποστήριξη;" |
| |
| #: ../../../developer/feature-requests.md:33 |
| msgid "" |
| "Public page/personal blog available through Jami (Contact #Jami / medium " |
| "difficulty & long term project)" |
| msgstr "" |
| "Δημόσια σελίδα/προσωπικό blog διαθέσιμη μέσω του Jami (Επικοινωνία #Jami / " |
| "μεσαία δυσκολία & μακροπρόθεσμο έργο)" |
| |
| #: ../../../developer/feature-requests.md:35 |
| msgid "Qt:" |
| msgstr "ΚΤ:" |
| |
| #: ../../../developer/feature-requests.md:36 |
| msgid "" |
| "{client-qt-issue}`Add support for peer discovery<868>` (contact #Jami - " |
| "easy)" |
| msgstr "" |
| "{client-qt-issue}`Αναθέστε υποστήριξη για την ανακάλυψη από ομοτίμους<868>` " |
| "(επικοινωνία #Jami - εύκολο)" |
| |
| #: ../../../developer/feature-requests.md:37 |
| msgid "" |
| "Emoji as a native component to avoid depending on qt-webengine for this (not" |
| " available on macOS) (e.g. https://github.com/jnodev/QMLemoji)" |
| msgstr "" |
| "Το Emoji ως εγγενής συστατικό για να αποφευχθεί η εξάρτηση από την qt-" |
| "webengine για αυτό (δεν είναι διαθέσιμο στο macOS) (π.χ. " |
| "https://github.com/jnodev/QMLemoji)" |
| |
| #: ../../../developer/feature-requests.md:39 |
| msgid "" |
| "Categorized conversations (like favorites, groups, etc) (to discuss with " |
| "#Jami)" |
| msgstr "" |
| "Κατηγοριοποιημένες συζητήσεις (όπως αγαπημένες, ομάδες, κλπ.) (για να " |
| "συζητηθούν με #Jami)" |
| |
| #: ../../../developer/feature-requests.md:40 |
| msgid "jami-web:" |
| msgstr "Τζάμι-έμπ:" |
| |
| #: ../../../developer/feature-requests.md:41 |
| msgid "" |
| "Design architecture to support calls between jami-web and desktop versions " |
| "-> Contact #Jami (Adrien, Sébastien) / hard" |
| msgstr "" |
| "Σχεδιασμός αρχιτεκτονικής για την υποστήριξη κλήσεων μεταξύ των εκδόσεων " |
| "jami-web και desktop -> Επικοινωνία #Jami (Adrien, Sébastien) / σκληρή" |
| |
| #: ../../../developer/feature-requests.md:44 |
| msgid "" |
| "Help for the Roadmap 2023: " |
| "https://git.jami.net/groups/savoirfairelinux/-/epics/48" |
| msgstr "" |
| "Βοήθεια για το Δρόμο 2023: " |
| "https://git.jami.net/groups/savoirfairelinux/-/epics/48" |
| |
| #: ../../../developer/feature-requests.md:46 |
| msgid "Some other ideas from tickets:" |
| msgstr "Μερικές άλλες ιδέες από τα εισιτήρια:" |
| |
| #: ../../../developer/feature-requests.md:48 |
| msgid "Planned/In progress" |
| msgstr "Προγραμματισμένο/Ετοιμαζόμενο" |
| |
| #: ../../../developer/feature-requests.md:50 |
| msgid "" |
| "Improve Jami on Yocto (some codecs problems/lag on i.MX 6) -> Contact Rennes" |
| msgstr "" |
| "Βελτιώστε το Jami στο Yocto (μερικά προβλήματα κωδικού/ καθυστέρηση στο i.MX" |
| " 6) -> Επικοινωνήστε με Rennes" |
| |
| #: ../../../developer/feature-requests.md:52 |
| msgid "" |
| "[Qt/QML Improve client](https://git.jami.net/savoirfairelinux/jami-client-" |
| "qt/-/issues) -> Contact #Jami (Andreas)" |
| msgstr "" |
| "[Qt/QML Improve client](https://git.jami.net/savoirfairelinux/jami-client-" |
| "qt/-/issues) -> Επικοινωνία #Jami (Andreas)" |
| |
| #: ../../../developer/feature-requests.md:54 |
| msgid "Redo emoji-picker with native component" |
| msgstr "Ετοιμάστε emoji-picker με εγγενή συστατικό" |
| |
| #: ../../../developer/feature-requests.md:55 |
| msgid "Implement designs from Charlotte" |
| msgstr "Σχεδιασμοί εφαρμογής από την Charlotte" |
| |
| #: ../../../developer/feature-requests.md:56 |
| msgid "Help for swarms (Sébastien)" |
| msgstr "Βοήθεια για τα σμήνη (Sébastien)" |
| |
| #: ../../../developer/feature-requests.md:57 |
| msgid "" |
| "{gerrit-project}`jami-web`; because installing an app can be boring. Joining" |
| " a conference via a link can be cool. For now, nobody is working on it." |
| msgstr "Η εγκατάσταση μιας εφαρμογής μπορεί να είναι βαρετή." |
| |
| #: ../../../developer/feature-requests.md:61 |
| msgid "Wanted but not planned" |
| msgstr "Αναζητούμενη αλλά όχι προγραμματισμένη" |
| |
| #: ../../../developer/feature-requests.md:63 |
| #: ../../../developer/feature-requests.md:93 |
| msgid "?" |
| msgstr "- Τι;" |
| |
| #: ../../../developer/feature-requests.md:65 |
| msgid "" |
| "Can be implemented, contributions welcome (or will take months/years to " |
| "come)" |
| msgstr "" |
| "Μπορεί να εφαρμοστεί, οι συνεισφορές είναι ευπρόσδεκτες (ή θα διαρκέσουν " |
| "μήνες/ετηρία)" |
| |
| #: ../../../developer/feature-requests.md:67 |
| msgid "" |
| "{project-issue}`add possibility to show \"reachable at the following times\"" |
| " (contact details) <1261>`" |
| msgstr "" |
| "{project-issue}` πρόσθετη δυνατότητα να δείξει \"απικοινωνία στις ακόλουθες " |
| "ώρες\" (δεκτικές πληροφορίες) <1261>`" |
| |
| #: ../../../developer/feature-requests.md:69 |
| msgid "" |
| "{project-issue}`Preferences per contact (allow calls, file transfer, custom " |
| "ringtone) <1280>`" |
| msgstr "" |
| "{project-issue}`Προτιμήσεις ανά επαφή (αποδέσμευση κλήσεων, μεταφορά " |
| "αρχείων, προσαρμοσμένο χτυπήμα) <1280>`" |
| |
| #: ../../../developer/feature-requests.md:71 |
| msgid "" |
| "{project-issue}`Ability to create polls (ideally a plugin with swarm) " |
| "<1254>`" |
| msgstr "" |
| "{project-issue}`Επινόηση δημιουργίας δημοσκοπικών εκλογών (ιδανικά ένα " |
| "plugin με σμήνος) <1254>`" |
| |
| #: ../../../developer/feature-requests.md:73 |
| msgid "{project-issue}`Support for Panic buttons <623>`" |
| msgstr "Υποστήριξη για τα κουμπιά πανικού <623>" |
| |
| #: ../../../developer/feature-requests.md:74 |
| msgid "Matrix bridge" |
| msgstr "Γέφυρα Ματρίκης" |
| |
| #: ../../../developer/feature-requests.md:75 |
| msgid "" |
| "Full TOR support or other alternatives such as lokinet ({project-" |
| "issue}`922`, {project-issue}`622`, {project-issue}`495`), {project-" |
| "issue}`i2p <630>`" |
| msgstr "" |
| "Πλήρης στήριξη TOR ή άλλες εναλλακτικές λύσεις όπως lokinet ({project-" |
| "issue}`922`, {project-issue}`622`, {project-issue}`495`), {project-" |
| "issue}`i2p <630>`" |
| |
| #: ../../../developer/feature-requests.md:78 |
| msgid "{project-issue}`Bluetooth support <774>`" |
| msgstr "Υποστήριξη Bluetooth" |
| |
| #: ../../../developer/feature-requests.md:79 |
| msgid "{project-issue}`Secret-based turn server <886>`" |
| msgstr "{project-issue}`Secret-based turn server <886>`" |
| |
| #: ../../../developer/feature-requests.md:80 |
| msgid "{client-android-issue}`Ability to compress files before sending <720>`" |
| msgstr "" |
| "{client-android-issue}`Επιαισία συμπίεσης αρχείων πριν από την αποστολή " |
| "<720>`" |
| |
| #: ../../../developer/feature-requests.md:82 |
| msgid "Ability to trim recorded clips before sending" |
| msgstr "Δυνατότητα κοπής καταγεγραμμένων κλιπ πριν από την αποστολή" |
| |
| #: ../../../developer/feature-requests.md:83 |
| msgid "{client-gnome-issue}`Spell checking support <1169>`" |
| msgstr "Πρωτοβουλία για την επιτήρηση της ερμηνείας <1169>" |
| |
| #: ../../../developer/feature-requests.md:84 |
| msgid "{project-issue}`Echo bot to test audio <392>`" |
| msgstr "Ο Echo bot για δοκιμή ήχου" |
| |
| #: ../../../developer/feature-requests.md:85 |
| msgid "" |
| "{project-issue}`Handle click on jami:uri system wide (missing " |
| "macOS/Android/iOS) <653>`" |
| msgstr "" |
| "Κάντε χειροκίνητο κλικ στο jami:uri system wide (που λείπει " |
| "macOS/Android/iOS) <653>" |
| |
| #: ../../../developer/feature-requests.md:86 |
| msgid "" |
| "{project-issue}`Initial audio mode <1288>` (need to wait for group chat)" |
| msgstr "" |
| "{project-issue}` Αρχική λειτουργία ήχου <1288>` (πρέπει να περιμένουμε για " |
| "ομαδική συνομιλία)" |
| |
| #: ../../../developer/feature-requests.md:88 |
| msgid "{project-issue}`Feature Request: Volume Slider <1524>`" |
| msgstr "Επισκόπηση: Επισκόπηση του όγκου <1524>" |
| |
| #: ../../../developer/feature-requests.md:89 |
| msgid "{client-qt-issue}`Portable version for Windows <170>`" |
| msgstr "{client-qt-issue}`Μεγαλύτερη έκδοση για Windows <170>`" |
| |
| #: ../../../developer/feature-requests.md:91 |
| msgid "Depends on mass changes" |
| msgstr "Εξαρτάται από τις αλλαγές μάζας" |
| |
| #: ../../../developer/feature-requests.md:95 |
| #: ../../../developer/release-process.md:0 |
| #: ../../../developer/release-process.md:59 |
| msgid "Packaging" |
| msgstr "Συσκευή" |
| |
| #: ../../../developer/feature-requests.md:97 |
| msgid "{client-gnome-issue}`FreeBSD support <1272>`" |
| msgstr "Επικοινωνία με την ΕΤΠ" |
| |
| #: ../../../developer/feature-requests.md:99 |
| msgid "Others" |
| msgstr "Άλλοι" |
| |
| #: ../../../developer/feature-requests.md:101 |
| msgid "{project-issue}`Collaborative editor <1010>`" |
| msgstr "Εργατικό συντάκτης" |
| |
| #: ../../../developer/feature-requests.md:102 |
| msgid "{project-issue}`A thunderbird plugin <516>`" |
| msgstr "Πραγματική έκδοση:" |
| |
| #: ../../../developer/feature-requests.md:103 |
| msgid "{project-issue}`OpenAlias <928>`" |
| msgstr "Πρωτοβουλία:" |
| |
| #: ../../../developer/feature-requests.md:104 |
| msgid "{project-issue}`CMIS integration <455>`" |
| msgstr "Πρωτοβουλία:" |
| |
| #: ../../../developer/feature-requests.md:105 |
| msgid "{project-issue}`Sound safety <441>`" |
| msgstr "Η ασφάλεια του ήχου" |
| |
| #: ../../../developer/feature-requests.md:106 |
| msgid "" |
| "{client-gnome-issue}`Ability to see multiple chats at the same time <909>`" |
| msgstr "" |
| "{client-gnome-issue}`Επινόηση να βλέπετε πολλές συνομιλίες ταυτόχρονα <909>`" |
| |
| #: ../../../developer/feature-requests.md:107 |
| msgid "{client-gnome-issue}`Vocoder option <957>`" |
| msgstr "{client-gnome-issue}`Εκλογή φωνητικού <957>`" |
| |
| #: ../../../developer/feature-requests.md:108 |
| msgid "{project-issue}`SOCKS5 support <430>`" |
| msgstr "Πρωτοβουλία:" |
| |
| #: ../../../developer/feature-requests.md:109 |
| msgid "{project-issue}`Cardbook integration <383>`" |
| msgstr "Τελική ενσωμάτωση" |
| |
| #: ../../../developer/feature-requests.md:110 |
| msgid "{project-issue}`Multiple instances running <629>`" |
| msgstr "{project-issue}`Πολλές περιπτώσεις που τρέχουν <629>`" |
| |
| #: ../../../developer/feature-requests.md:111 |
| msgid "{daemon-issue}`Whiteboard <181>`" |
| msgstr "Τελευταία έκθεση:" |
| |
| #: ../../../developer/feature-requests.md:112 |
| msgid "{client-android-issue}`Camera zoom <979#note_29386>`" |
| msgstr "Η κάμερα μετρώνεται" |
| |
| #: ../../../developer/feature-requests.md:113 |
| msgid "{client-qt-issue}`Emoji reaction in calls <497>`" |
| msgstr "{client-qt-issue}`Emoji αντίδραση σε κλήσεις <497>`" |
| |
| #: ../../../developer/feature-requests.md:114 |
| msgid "{client-android-issue}`Conversation's background <710>`" |
| msgstr "Πίσω από τη συζήτηση" |
| |
| #: ../../../developer/feature-requests.md:115 |
| msgid "{project-issue}`[Desktop] Option to have a Window per Chat <633>`" |
| msgstr "" |
| "{project-issue}`[Desktop] Επιλογή να έχετε ένα παράθυρο ανά Chat <633>`" |
| |
| #: ../../../developer/feature-requests.md:116 |
| msgid "{project-issue}`Multiple text selection <1096>`" |
| msgstr "{project-issue}`Πολλές επιλογές κειμένου <1096>`" |
| |
| #: ../../../developer/feature-requests.md:117 |
| msgid "{project-issue}`In-app sticker pack creation <1317>`" |
| msgstr "Πραγματική εκτέλεση:" |
| |
| #: ../../../developer/feature-requests.md:118 |
| msgid "{project-issue}`Re-order messages <1357>`" |
| msgstr "Πληροφορίες αναδιατύπωσης" |
| |
| #: ../../../developer/feature-requests.md:119 |
| msgid "{daemon-issue}`Remote control <349>`" |
| msgstr "Πιο απόσταση" |
| |
| #: ../../../developer/feature-requests.md:120 |
| msgid "" |
| "{client-android-issue}`Locked messages (feature that can be enabled to hide " |
| "messages until they are clicked upon) <1146>`" |
| msgstr "" |
| "{client-android-issue}` Κλειδωμένα μηνύματα (λειτουργικότητα που μπορεί να " |
| "ενεργοποιηθεί για να κρύψει μηνύματα μέχρι να κάνετε κλικ σε αυτά) <1146>`" |
| |
| #: ../../../developer/feature-requests.md:121 |
| msgid "" |
| "{client-qt-issue}`selecting one or multiple messages and delete them just " |
| "for the user doing so <1188>`" |
| msgstr "" |
| |
| #: ../../../developer/feature-requests.md:122 |
| msgid "" |
| "{client-qt-issue}`Drag and drop files from chatview and send to other " |
| "contacts <485>`" |
| msgstr "" |
| |
| #: ../../../developer/file-transfer.md:1 ../../../developer/swarm.md:397 |
| #: ../../../developer/swarm.md:667 |
| msgid "File transfer" |
| msgstr "Μεταφορά αρχείων" |
| |
| #: ../../../developer/file-transfer.md:4 |
| msgid "**THIS PAGE IS DEPRECATED: READ {ref}`developer/swarm:File transfer`**" |
| msgstr "" |
| "**Αυτή η ΣΗΜΕΡΑ ΑΠΟΥΛΑΙΣΕΙ: ΔΙΑΜΑΣΗ {ref}`developer/swarm:file transfer`**" |
| |
| #: ../../../developer/file-transfer.md:7 |
| #: ../../../developer/location-sharing.md:4 |
| msgid "How to use it?" |
| msgstr "Πώς να το χρησιμοποιήσω;" |
| |
| #: ../../../developer/file-transfer.md:10 |
| #: ../../../developer/release-process.md:111 |
| msgid "Gnome" |
| msgstr "Γνωμότητα" |
| |
| #: ../../../developer/file-transfer.md:12 |
| msgid "" |
| "For sending a file on gnome, in a conversation you need to click to the send" |
| " file icon at the bottom right of the conversation:" |
| msgstr "" |
| "Για να στείλετε ένα αρχείο στο gnome, σε μια συζήτηση πρέπει να κάνετε κλικ " |
| "στο εικονίδιο αποστολής αρχείων στο κάτω δεξιά μέρος της συζήτησης:" |
| |
| #: ../../../developer/file-transfer.md:15 |
| msgid "" |
| "![Gnome_send_file](https://git.jami.net/savoirfairelinux/jami-" |
| "project/uploads/e7571789effe8641f5ff4117e47f89dd/Gnome_send_file.png)" |
| msgstr "" |
| "! [Gnome_send_file](https://git.jami.net/savoirfairelinux/jami-" |
| "project/uploads/e7571789effe8641f5ff4117e47f89dd/Gnome_send_file.png)" |
| |
| #: ../../../developer/file-transfer.md:15 |
| msgid "Gnome_send_file" |
| msgstr "Gnome_send_file" |
| |
| #: ../../../developer/file-transfer.md:17 |
| msgid "" |
| "Then you will see your image as soon as the transfer is finished (and show " |
| "images is activated)" |
| msgstr "" |
| "Στη συνέχεια θα δείτε την εικόνα σας μόλις ολοκληρωθεί η μεταφορά (και η " |
| "επίδειξη εικόνων ενεργοποιείται)" |
| |
| #: ../../../developer/file-transfer.md:20 |
| msgid "" |
| "![Gnome_image](https://git.jami.net/savoirfairelinux/jami-" |
| "project/uploads/cc03387d134a9aa71c6deb60ccf53ed8/Gnome_image.png)" |
| msgstr "" |
| "! [Gnome_image](https://git.jami.net/savoirfairelinux/jami-" |
| "project/uploads/cc03387d134a9aa71c6deb60ccf53ed8/Gnome_image.png)" |
| |
| #: ../../../developer/file-transfer.md:20 |
| msgid "Gnome_image" |
| msgstr "Gnome_image" |
| |
| #: ../../../developer/file-transfer.md:22 |
| msgid "" |
| "On the contrary if you receive a file (and if it's not a picture < 20 " |
| "Mb), you will have to accept the transfer:" |
| msgstr "" |
| "Αντίθετα, αν λάβετε ένα αρχείο (και αν δεν είναι μια εικόνα < 20 Mb), θα " |
| "πρέπει να αποδεχτείτε τη μεταφορά:" |
| |
| #: ../../../developer/file-transfer.md:25 |
| msgid "" |
| "![Gnome_accept](https://git.jami.net/savoirfairelinux/jami-" |
| "project/uploads/29dd852e062e7bcbcb654e4e7e3f8e47/Gnome_accept.png)" |
| msgstr "" |
| "! [Gnome_accept](https://git.jami.net/savoirfairelinux/jami-" |
| "project/uploads/29dd852e062e7bcbb654e4e7e3f8e47/Gnome_accept.png)" |
| |
| #: ../../../developer/file-transfer.md:25 |
| msgid "Gnome_accept" |
| msgstr "Gnome_accept" |
| |
| #: ../../../developer/file-transfer.md:27 |
| msgid "" |
| "And then the file will be sent. You have the possibility to cancel in a " |
| "middle of a transfer." |
| msgstr "Και μετά το αρχείο θα αποσταλεί." |
| |
| #: ../../../developer/file-transfer.md:30 |
| msgid "" |
| "![Gnome_ongoing](https://git.jami.net/savoirfairelinux/jami-" |
| "project/uploads/92f319f8a88f75c388020d999f607bdc/Gnome_ongoing.png)" |
| msgstr "! [Gnome_ongoing]" |
| |
| #: ../../../developer/file-transfer.md:30 |
| msgid "Gnome_ongoing" |
| msgstr "Γνωμοσύνη" |
| |
| #: ../../../developer/file-transfer.md:32 |
| msgid "Android" |
| msgstr "Android" |
| |
| #: ../../../developer/file-transfer.md:34 |
| msgid "" |
| "When you are talking to somebody on Android, you have the possibility to " |
| "send a picture on your device or take a photo with these buttons:" |
| msgstr "" |
| "Όταν μιλάτε με κάποιον στο Android, έχετε τη δυνατότητα να στείλετε μια " |
| "φωτογραφία στην συσκευή σας ή να τραβήξετε μια φωτογραφία με αυτά τα " |
| "κουμπιά:" |
| |
| #: ../../../developer/file-transfer.md:37 |
| msgid "" |
| "![Android_file_buttons](https://git.jami.net/savoirfairelinux/jami-" |
| "project/uploads/d68472b2c7bfcc616b0c674c9c7a8fed/Android_file_buttons.png)" |
| msgstr "" |
| "! [Android_file_button](https://git.jami.net/savoirfairelinux/jami-" |
| "project/uploads/d68472b2c2c7bfcc616b0c674c9c7a8fed/Android_file_buttons.png)" |
| |
| #: ../../../developer/file-transfer.md:37 |
| msgid "Android_file_buttons" |
| msgstr "Android_file_button" |
| |
| #: ../../../developer/file-transfer.md:39 |
| msgid "" |
| "Note: when you send a file, the other has to accept it. At this moment you " |
| "will see 'awaiting peer':" |
| msgstr "Σημείωση: όταν στέλνετε ένα αρχείο, ο άλλος πρέπει να το αποδεχθεί." |
| |
| #: ../../../developer/file-transfer.md:42 |
| msgid "" |
| "![Android_awaiting_peer](https://git.jami.net/savoirfairelinux/jami-" |
| "project/uploads/56f0316c945ca243448668ae9091b1de/Android_awaiting_peer.png)" |
| msgstr "" |
| "! [Android_waiting_peer](https://git.jami.net/savoirfairelinux/jami-" |
| "project/uploads/56f0316c945ca243448668ae9091b1de/Android_waiting_peer.png)" |
| |
| #: ../../../developer/file-transfer.md:42 |
| msgid "Android_awaiting_peer" |
| msgstr "Android_waiting_peer" |
| |
| #: ../../../developer/file-transfer.md:44 |
| #: ../../../developer/location-sharing.md:39 |
| msgid "How it works? (technical)" |
| msgstr "Πώς λειτουργεί;" |
| |
| #: ../../../developer/file-transfer.md:47 |
| msgid "How it works" |
| msgstr "Πώς λειτουργεί" |
| |
| #: ../../../developer/file-transfer.md:51 |
| msgid "" |
| "Jami is a distributed application and has to work without any internet " |
| "connectivity. So, file transfer too! Basically, we use the same method to " |
| "perform file transfer and calls, but in TCP. To summarize how it works, we " |
| "can imagine a situation where Alice (A) wants to transfer a file to Bob (B)." |
| msgstr "" |
| "Η Jami είναι μια διανεμημένη εφαρμογή και πρέπει να λειτουργεί χωρίς καμία " |
| "σύνδεση στο διαδίκτυο. Έτσι, η μεταφορά αρχείων επίσης! Βασικά, " |
| "χρησιμοποιούμε την ίδια μέθοδο για τη μεταφορά αρχείων και τις κλήσεις, αλλά" |
| " στο TCP. Για να συνοψίσουμε πώς λειτουργεί, μπορούμε να φανταστούμε μια " |
| "κατάσταση όπου η Alice (A) θέλει να μεταφέρει ένα αρχείο στον Bob (B)." |
| |
| #: ../../../developer/file-transfer.md:53 |
| msgid "" |
| "First, Alice will request a connection to Bob. To do that, Jami is using ICE" |
| " (RFC 6544), a protocol used to negotiate links between peers. Alice will " |
| "send, into an encrypted packet via the DHT the ip of its device. So, when " |
| "Bob receives the ips of Alice, they will be able to negotiate a transport " |
| "where Bob will be able to send packets to Alice. The negotiation can be " |
| "successful, but if it fails, a TURN server will be used (the one configured " |
| "into the settings) to perform the transfer. If the negotiation succeeds, Bob" |
| " will send its ips to Alice to perform the negotiation in the other " |
| "direction. Note that the link is still not secure, so Bob will send the ips " |
| "through the DHT in an encrypted message. If the second negotiation fails, " |
| "the TURN will be used as a fallback." |
| msgstr "" |
| "Η Alice θα στείλει το IP της συσκευής της σε ένα κρυπτογραφημένο πακέτο μέσω" |
| " της DHT. Σημείωσε ότι το σύνδεσμο δεν στέλνει ακόμα τα IP μέσω της DHT σε " |
| "ένα κρυπτογραφημένο μήνυμα. Αν η δεύτερη διαπραγμάτευση αποτύχει, το TURN θα" |
| " χρησιμοποιηθεί ως αποτυχημένη υποδομή." |
| |
| #: ../../../developer/file-transfer.md:55 |
| msgid "" |
| "Now that the bidirectionnal TCP link is here, the next step will be to " |
| "negotiate a TLS 1.3 (generally a (TLS1.3)-(DHE-FFDHE8192)-(RSA-PSS-RSAE-" |
| "SHA384)-(AES-256-GCM) when I write these lines) between Alice an Bob, then " |
| "Alice will start to transfer the file." |
| msgstr "" |
| "Τώρα που είναι εδώ το διημερολόγιο TCP σύνδεσμο, το επόμενο βήμα θα είναι να" |
| " διαπραγματευτεί ένα TLS 1.3 (γενικά ένα (TLS1.3)-(DHE-FFDHE8192)-(RSA-PSS-" |
| "RSAE-SHA384)-(AES-256-GCM) όταν γράφω αυτές τις γραμμές) μεταξύ Alice και " |
| "Bob, τότε Alice θα αρχίσει να μεταφέρει το αρχείο." |
| |
| #: ../../../developer/file-transfer.md:57 |
| msgid "" |
| "The first part will be a small header to describe the content of the file. " |
| "Then, after Bob accepts the transfer, the full file will be transmitted." |
| msgstr "" |
| "Το πρώτο μέρος θα είναι ένα μικρό αρχείο για να περιγράψει το περιεχόμενο " |
| "του αρχείου." |
| |
| #: ../../../developer/file-transfer.md:61 |
| msgid "Sending a file" |
| msgstr "Στέλνοντας αρχείο" |
| |
| #: ../../../developer/file-transfer.md:63 |
| msgid "The following method is used:" |
| msgstr "Χρησιμοποιείται η ακόλουθη μέθοδος:" |
| |
| #: ../../../developer/file-transfer.md:65 |
| msgid "" |
| "1\\. A client will call `DataTransferFacade::sendFile()`. " |
| "`DataTransferFacade` is the class corresponding to the API exposed for the " |
| "clients. It is used to manage a view of the file transfers (the " |
| "corresponding classes are `DataTransfer`, `IncomingFileTransfer`, " |
| "`OutgoingFileTransfer` and `SubOutgoingFileTransfer`). This method will ask " |
| "the linked `JamiAccount` to request a connection." |
| msgstr "" |
| "1\\. Ένας πελάτης θα καλέσει `DataTransferFacade::sendFile() `. " |
| "`DataTransferFacade` είναι η κατηγορία που αντιστοιχεί στην API που " |
| "εκτίθεται για τους πελάτες. Χρησιμοποιείται για τη διαχείριση μιας προβολής " |
| "των μεταβιβάσεων αρχείων (οι αντίστοιχες κατηγορίες είναι `DataTransfer`, " |
| "`IncomingFileTransfer`, `OutgoingFileTransfer` και " |
| "`SubOutgoingFileTransfer`)." |
| |
| #: ../../../developer/file-transfer.md:67 |
| msgid "" |
| "![Diagram: DataTransfer class diagram]images/file-transfer-datatransfer-" |
| "class-diagram.png)" |
| msgstr "" |
| "![Διαγράμματα: Διαγράμματα κατηγορίας DataTransfer]images/file-transfer-" |
| "datatransfer-class-diagram.png)" |
| |
| #: ../../../developer/file-transfer.md:69 |
| msgid "" |
| "2\\. The method `DhtPeerConnector: requestConnection()` is triggered and " |
| "creates a connection between all connected devices of the peer (found on the" |
| " DHT). `DhtPeerConnector` is used to manage the main event loop which manage" |
| " connections. When a device is found, the *event loop* will create a " |
| "`ClientConnector` (which manage the connection for one device) and launch " |
| "the `process()` method." |
| msgstr "" |
| "2\\. Η μέθοδος `DhtPeerConnector: requestConnection()` ενεργοποιείται και " |
| "δημιουργεί σύνδεση μεταξύ όλων των συνδεδεμένων συσκευών του peer (που " |
| "βρίσκονται στο DHT)." |
| |
| #: ../../../developer/file-transfer.md:71 |
| msgid "" |
| "3\\. This method is used to initialize the ICE transport and put a " |
| "*PeerConnectionMsg* (which contains the SDP message, see below) on the DHT " |
| "and waits for a response (`DhtPeerConnector::Impl::onResponseMsg`)." |
| msgstr "" |
| "3\\. Η μέθοδος αυτή χρησιμοποιείται για την εκκίνηση της μεταφοράς ICE και " |
| "τοποθετεί ένα *PeerConnectionMsg* (που περιέχει το μήνυμα SDP, βλ. παρακάτω)" |
| " στο DHT και περιμένει μια απάντηση " |
| "(`DhtPeerConnector::Impl::onResponseMsg`)." |
| |
| #: ../../../developer/file-transfer.md:73 |
| msgid "" |
| "4\\. Then a response is received from the DHT, which contains public " |
| "addresses of the peer device. We can now negotiate a TLS link (directly via " |
| "ICE, or via TURN as a fallback). This `TlsSocketEndpoint` is given to the " |
| "`PeerConnection` object as an output and the transfer can start." |
| msgstr "" |
| "4\\. Στη συνέχεια λαμβάνεται μια απάντηση από το DHT, το οποίο περιέχει " |
| "δημόσιες διευθύνσεις της συσκευής συνδεδεμένου. Μπορούμε τώρα να " |
| "διαπραγματευτούμε μια σύνδεση TLS (μέσω της ICE, ή μέσω του TURN ως " |
| "αποσύνδεση)." |
| |
| #: ../../../developer/file-transfer.md:75 |
| msgid "" |
| "5.\\ When the TLS socket is ready, the callback " |
| "`DataTransferFacade::Impl::onConnectionRequestReply` is called, and a " |
| "`OutgoingFileTransfer` is linked to the `PeerConnection` as an input. This " |
| "`OutgoingFileTransfer` contains a list of `SubOutgoingFileTransfer` (one per" |
| " device) where each sub transfer is a transfer to one device. We do that to " |
| "be able to furnish the most optimistic view of the transfer (if a contact as" |
| " 3 devices, where the contact cancel the transfer on one device, but " |
| "accepted the transfer on the two others, the most advanced transfer will be " |
| "shown)." |
| msgstr "" |
| "5.\\ Όταν η πρίζα TLS είναι έτοιμη, η επιστροφή " |
| "`DataTransferFacade::Impl::onConnectionRequestReply` καλείται και μια " |
| "`OutgoingFileTransfer` συνδέεται με την `PeerConnection` ως εισροή. Αυτή η " |
| "`OutgoingFileTransfer` περιέχει έναν κατάλογο `SubOutgoingFileTransfer` (ένα" |
| " ανά συσκευή) όπου κάθε υπομεταφορά είναι μεταφορά σε μια συσκευή. Το " |
| "κάνουμε αυτό για να μπορέσουμε να παρέχουμε την πιο αισιόδοξη άποψη της " |
| "μεταφοράς (αν ένας άμεσος ως 3 συσκευές, όπου ο άμεσος ακυρώνει τη μεταφορά " |
| "σε μια συσκευή, αλλά αποδέχεται τη μεταφορά στις δύο άλλες, θα εμφανιστεί η " |
| "πιο προηγμένη μεταφορά)." |
| |
| #: ../../../developer/file-transfer.md:77 |
| msgid "" |
| "6\\. The `SubOutgoingFileTransfer` will first transfer the header of the " |
| "file, wait the peer acceptance (A \"GO\\n\" message on the socket) and then " |
| "will send the file." |
| msgstr "" |
| "6\\. Το `SubOutgoingFileTransfer` θα μεταφέρει πρώτα την επικεφαλίδα του " |
| "αρχείου, θα περιμένει την αποδοχή από τους ομοτίμους (Μεσαφία \"GO\\n\" στην" |
| " υποδομή) και στη συνέχεια θα στείλει το αρχείο." |
| |
| #: ../../../developer/file-transfer.md:79 |
| msgid "" |
| "7\\. If a cancel is received from the peer or the client or if the file " |
| "transfer finish, the connection will be closed via a `CANCEL` message on the" |
| " `DhtPeerConnector::eventLoop()` and the resources will be released." |
| msgstr "" |
| "7\\. Εάν λάβει ακύρωση από τον συνάδελφο ή τον πελάτη ή αν ολοκληρωθεί η " |
| "μεταφορά αρχείων, η σύνδεση θα κλείσει μέσω ενός μηνύματος `CANCEL` στο " |
| "`DhtPeerConnector::eventLoop() ` και οι πόροι θα απελευθερωθούν." |
| |
| #: ../../../developer/file-transfer.md:81 |
| msgid "" |
| "![TLSsocketEndpoint](images/file-transfer-tlssocketendpoint-diagram.png)" |
| msgstr "" |
| "! [TLSsocketEndpoint](εικόνες/μεταφορά αρχείων-tlssocketendpoint-" |
| "diagram.png)" |
| |
| #: ../../../developer/file-transfer.md:81 |
| msgid "TLSsocketEndpoint" |
| msgstr "TLSsocketΤο Endpoint" |
| |
| #: ../../../developer/file-transfer.md:83 |
| msgid "Receiving a file" |
| msgstr "Αποκάλυψη αρχείου" |
| |
| #: ../../../developer/file-transfer.md:86 |
| msgid "" |
| "The same structure is used to receive files, but the method changes a bit:" |
| msgstr "" |
| "Η ίδια δομή χρησιμοποιείται για να λαμβάνονται αρχεία, αλλά η μέθοδος " |
| "αλλάζει λίγο:" |
| |
| #: ../../../developer/file-transfer.md:88 |
| msgid "" |
| "The `JamiAccount` class is used to receives messages from the DHT, because " |
| "the first thing received will be the DHT request." |
| msgstr "" |
| "Η τάξη `JamiAccount` χρησιμοποιείται για να λαμβάνει μηνύματα από το DHT, " |
| "επειδή το πρώτο πράγμα που θα λάβει θα είναι το αίτημα DHT." |
| |
| #: ../../../developer/file-transfer.md:89 |
| msgid "" |
| "Then, this message is given to `DhtPeerConnector: onRequestMessage()` " |
| "through the eventLoop." |
| msgstr "" |
| "Στη συνέχεια, αυτό το μήνυμα δίνεται στον `DhtPeerConnector: " |
| "onRequestMessage() ` μέσω του eventLoop." |
| |
| #: ../../../developer/file-transfer.md:90 |
| msgid "" |
| "The `DhtPeerConnector::Impl::answerToRequest` will try to connect to the " |
| "TURN server (if not connected) and initialize the ICE transport. This method" |
| " open 2 control connections to a TURN server (one to authorize IPv4 peers, " |
| "another one for IPv6 peers, due to **RFC 6156**) if it's not already open " |
| "and permit Peer public addresses to connect. Then, if the SDP received " |
| "doesn't contains ICE candidates, will use the TURN and craft the SDP answer " |
| "to wait for the peer. If the SDP contains ICE candidates, the method will " |
| "try to negotiate the link (or fallback on the TURN) and then answer the SDP " |
| "(with ICE candidates or not)." |
| msgstr "" |
| "Ο `DhtPeerConnector::Impl::answerToRequest` θα προσπαθήσει να συνδεθεί με " |
| "τον διακομιστή TURN (αν δεν είναι συνδεδεμένος) και να αρχίσει την μεταφορά " |
| "ICE. Αυτή η μέθοδος θα ανοίξει 2 συνδέσεις ελέγχου σε έναν διακομιστή TURN " |
| "(ένα για να εξουσιοδοτήσει τους IPv4 peers, ένα άλλο για τους IPv6 peers, " |
| "λόγω **RFC 6156**) αν δεν είναι ήδη ανοιχτό και θα επιτρέψει στους Peer " |
| "δημόσιους διευθύνσεις να συνδεθούν. Στη συνέχεια, αν το SDP δεν περιέχει " |
| "υποψηφίους ICE, θα χρησιμοποιήσει το TURN και θα δημιουργήσει την απάντηση " |
| "SDP για να περιμένει τον peer." |
| |
| #: ../../../developer/file-transfer.md:91 |
| msgid "" |
| "Once the links are ready, like the sender, a TLS link is negotiated and " |
| "given to the `PeerConnection` given to the `IncomingFileTransfer` as an " |
| "input. The headers of the file will come and the client is now able to " |
| "accept or cancel the transfer." |
| msgstr "" |
| "Μόλις οι συνδέσεις είναι έτοιμες, όπως ο αποστολέας, μια σύνδεση TLS " |
| "διαπραγματεύεται και δίνεται στην `PeerConnection` δίνεται στην " |
| "`IncomingFileTransfer` ως εισροή." |
| |
| #: ../../../developer/file-transfer.md:93 |
| msgid "Re-ask for a previous file transfer" |
| msgstr "Επανακαλέστε την προηγούμενη μεταφορά αρχείων" |
| |
| #: ../../../developer/file-transfer.md:95 |
| msgid "" |
| "As specified in {ref}`developer/swarm:Other mime types`, the data-transfer " |
| "interactions are now synced and stored into conversations. So, a device can " |
| "easily detects if a file was downloaded or not. If not, it can asks all " |
| "members in the conversation to transmits the file again." |
| msgstr "" |
| "Όπως ορίζεται στο {ref}`developer/swarm:Other mime types`, οι " |
| "αλληλεπιδράσεις μεταφοράς δεδομένων συγχρονίζονται και αποθηκεύονται τώρα σε" |
| " συνομιλίες. Έτσι, μια συσκευή μπορεί εύκολα να εντοπίσει αν ένα αρχείο έχει" |
| " κατεβαστεί ή όχι." |
| |
| #: ../../../developer/file-transfer.md:97 |
| msgid "" |
| "To do this, the device will send a json with the mime-type: " |
| "`application/data-transfer-request+json` containing `conversation` (the " |
| "conversation's id), `interaction` (related interaction), `deviceId` the " |
| "device receiving the file." |
| msgstr "" |
| "Για να γίνει αυτό, η συσκευή θα στείλει ένα json με το είδος μμ: " |
| "`application/data-transfer-request+json` που περιέχει `conversation` (id της" |
| " συζήτησης), `interaction` (σχετική αλληλεπίδραση), `deviceId` τη συσκευή " |
| "που λαμβάνει το αρχείο." |
| |
| #: ../../../developer/file-transfer.md:99 |
| msgid "" |
| "The sender now checks if the device is a device from the announced peer and " |
| "that the device is a member of the conversation, and can sends the file via " |
| "a classic file transfer." |
| msgstr "" |
| "Ο αποστολέας ελέγχει τώρα αν η συσκευή είναι συσκευή από τον ανακοίνωτο " |
| "ομολόγο και ότι η συσκευή είναι μέλος της συζήτησης, και μπορεί να στείλει " |
| "το αρχείο μέσω κλασικής μεταφοράς αρχείων." |
| |
| #: ../../../developer/file-transfer.md:101 |
| msgid "" |
| "The receiver can now accepts the first incoming transfer, download the file " |
| "and verify that the sha3sum is correct." |
| msgstr "" |
| "Ο δέκτης μπορεί τώρα να αποδεχθεί την πρώτη εισερχόμενη μεταφορά, να " |
| "κατεβάσει το αρχείο και να επαληθεύσει ότι το sha3sum είναι σωστό." |
| |
| #: ../../../developer/file-transfer.md:103 |
| msgid "Schema" |
| msgstr "Σχέδιο" |
| |
| #: ../../../developer/file-transfer.md:105 |
| msgid "" |
| "![Diagram: main schema diagram](images/file-transfer-main-schema-" |
| "diagram.png)" |
| msgstr "[Σχέδιο: κύριο διάγραμμα σχεδίου]" |
| |
| #: ../../../developer/file-transfer.md:105 |
| msgid "Diagram: main schema diagram" |
| msgstr "Διάγραμμα: βασικό διάγραμμα σχεδίου" |
| |
| #: ../../../developer/file-transfer.md:107 |
| msgid "SDP sent over the DHT" |
| msgstr "ΣΔΠ που αποστέλλεται μέσω του DHT" |
| |
| #: ../../../developer/file-transfer.md:123 |
| msgid "" |
| "Where `0d04b932` is the ufrag and `7c33834e7cf944bf0e367b47` the password of" |
| " the ICE session. `2130706431` and `1694498815` are the priority of the " |
| "candidates. `192.168.0.126 42751 typ host tcptype passive` is a passive host" |
| " candidate and `1694498815 X.X.X.X 42751 typ srflx tcptype passive` a " |
| "passive host reflecting the public ip (mapped via UPnP for example)." |
| msgstr "" |
| "Όπου `0d04b932` είναι το ufrag και `7c33834e7cf944bf0e367b47` το κωδικό " |
| "πρόσβασης της συνεδρίασης ICE. `2130706431` και `1694498815` είναι η " |
| "προτεραιότητα των υποψηφίων. `192.168.0.126 42751 υποδοχέας τύπου tcptype " |
| "παθητικό` είναι ένας παθητικός υποδοχέας τύπου και `1694498815 X.X.X.X 42751" |
| " type srflx tcptype παθητικό` είναι ένας παθητικός υποδοχέας που " |
| "αντικατοπτρίζει το δημόσιο ip (καταγράφεται μέσω UPnP για παράδειγμα)." |
| |
| #: ../../../developer/file-transfer.md:125 |
| msgid "PJSIP related patches." |
| msgstr "Πακέτα που σχετίζονται με το PJSIP." |
| |
| #: ../../../developer/file-transfer.md:127 |
| msgid "3 patches will be included into the PJSIP project:" |
| msgstr "3 πακέτα θα συμπεριληφθούν στο έργο PJSIP:" |
| |
| #: ../../../developer/file-transfer.md:129 |
| msgid "" |
| "RFC 6062, used to perform TURN over TCP (merged upstream: pjproject - " |
| "fa6616c43c7e19797084f4e02a67d1fb6fd99473)" |
| msgstr "" |
| "RFC 6062, χρησιμοποιείται για την εκτέλεση TURN πάνω από TCP (συνδυασμένο " |
| "προς τα εμπρός: pjproject - fa6616c43c7e19797084f4e02a67d1fb6fd99473)" |
| |
| #: ../../../developer/file-transfer.md:130 |
| msgid "RFC 6544, used to perform ICE over TCP" |
| msgstr "RFC 6544, χρησιμοποιείται για την εκτέλεση ICE πάνω από TCP" |
| |
| #: ../../../developer/file-transfer.md:131 |
| msgid "A fix for pj_activesock" |
| msgstr "Μια διορθώση για pj_activesock" |
| |
| #: ../../../developer/file-transfer.md:133 |
| msgid "Note that the stack for the file transfer is:" |
| msgstr "Σημειώνεται ότι η συστατική για τη μεταφορά αρχείων είναι:" |
| |
| #: ../../../developer/file-transfer.md:145 |
| msgid "Multi devices" |
| msgstr "Πολλαπλές συσκευές" |
| |
| #: ../../../developer/file-transfer.md:147 |
| msgid "" |
| "A RING user can link its account to several devices. So, we need to " |
| "implement the transfer when a user send a file to a contact who have " |
| "multiple devices linked to this account." |
| msgstr "" |
| "Ένας χρήστης RING μπορεί να συνδέσει το λογαριασμό του με διάφορες συσκευές." |
| " Έτσι, πρέπει να εφαρμόσουμε τη μεταφορά όταν ένας χρήστης στέλνει ένα " |
| "αρχείο σε έναν επαφή που έχει πολλές συσκευές συνδεδεμένες με αυτό το " |
| "λογαριασμό." |
| |
| #: ../../../developer/file-transfer.md:151 |
| msgid "First approach" |
| msgstr "Πρώτη προσέγγιση" |
| |
| #: ../../../developer/file-transfer.md:153 |
| msgid "" |
| "The first approach was to send a request through the DHT to all devices and " |
| "the first devices which answers get the file to transfer. This is bad for " |
| "your contact because they will not know which device will receives will get " |
| "the transfer." |
| msgstr "" |
| "Η πρώτη προσέγγιση ήταν να στείλετε ένα αίτημα μέσω του DHT σε όλες τις " |
| "συσκευές και οι πρώτες συσκευές που απαντούν να μεταφέρουν το αρχείο." |
| |
| #: ../../../developer/file-transfer.md:158 |
| msgid "Current approach" |
| msgstr "Συγχρονή προσέγγιση" |
| |
| #: ../../../developer/file-transfer.md:160 |
| msgid "" |
| "Now, we still send a request to all devices. The difference is that all " |
| "devices will have the notification for receiving a file and can " |
| "accept/refuse the transfer. The major part of the code for that is in " |
| "*data\\_transfer.cpp*." |
| msgstr "" |
| "Τώρα, εξακολουθούμε να στέλνουμε αίτηση σε όλες τις συσκευές. Η διαφορά " |
| "είναι ότι όλες οι συσκευές θα έχουν την ειδοποίηση για την παραλαβή ενός " |
| "αρχείου και μπορούν να αποδεχτούν/αρνούν τη μεταφορά." |
| |
| #: ../../../developer/file-transfer.md:165 |
| msgid "" |
| "Now (since <https://gerrit-ring.savoirfairelinux.com/#/c/9327/>), when a " |
| "user send a file, it will request a *PeerConnection* with all peer devices. " |
| "And for all connections, we attach a new input stream to have the ability to" |
| " accept/refuse/cancel each transfer separately." |
| msgstr "" |
| "Τώρα (από τότε που <https://gerrit-ring.savoirfairelinux.com/#/c/9327/>), " |
| "όταν ένας χρήστης στέλνει ένα αρχείο, θα ζητήσει *PeerConnection* με όλες " |
| "τις συσκευές ομολόγων." |
| |
| #: ../../../developer/file-transfer.md:170 |
| msgid "" |
| "In *data\\_transfer.cpp* we define the *OptimisticMetaOutgoingInfo* class " |
| "which represent the optimistic view to show to the client. It's optimistic " |
| "because if a contact accept a transfer on one device and refuse on others, " |
| "this class will show the ongoing file transfer. And it will only show an " |
| "error if all devices refuse the transfer." |
| msgstr "" |
| "Στο *data\\_transfer.cpp* ορίζουμε την κατηγορία " |
| "*OptimisticMetaOutgoingInfo* που αντιπροσωπεύει την αισιόδοξη άποψη που " |
| "πρέπει να εμφανιστεί στον πελάτη. Είναι αισιόδοξη επειδή αν ένας επαφές " |
| "αποδέχεται μια μεταφορά σε μια συσκευή και αρνείται σε άλλες, αυτή η " |
| "κατηγορία θα εμφανίσει τη συνεχιζόμενη μεταφορά αρχείων. Και θα εμφανίσει " |
| "μόνο ένα λάθος αν όλες οι συσκευές αρνούνται τη μεταφορά." |
| |
| #: ../../../developer/file-transfer.md:176 |
| msgid "" |
| "This class is linked to *SubOutgoingFileTransfer* which represent the state " |
| "of a transfer with one device. Clients will have the ability to show a sub " |
| "transfer instead the optimistic later (see TODO list)." |
| msgstr "" |
| "Αυτή η κατηγορία συνδέεται με *SubOutgoingFileTransfer* που αντιπροσωπεύουν " |
| "την κατάσταση μιας μεταφοράς με μια συσκευή." |
| |
| #: ../../../developer/file-transfer.md:180 |
| msgid "Using another TURN server" |
| msgstr "Χρησιμοποιώντας άλλο διακομιστή TURN" |
| |
| #: ../../../developer/file-transfer.md:182 |
| msgid "" |
| "Actually the default TURN server is *turn.ring.cx*. But you can host your " |
| "own TURN server. For example by running a " |
| "[coturn](https://github.com/coturn/coturn) server." |
| msgstr "" |
| "Στην πραγματικότητα ο προεπιλεγμένος διακομιστής του TURN είναι " |
| "*turn.ring.cx*. Αλλά μπορείτε να φιλοξενήσετε τον δικό σας διακομιστή του " |
| "TURN. Για παράδειγμα, τρέχοντας έναν διακομιστή [coturn] " |
| "((https://github.com/coturn/coturn)." |
| |
| #: ../../../developer/file-transfer.md:186 |
| msgid "`sudo turnserver -a -v -n -u user:password -r \"realm\"`" |
| msgstr "`sudo turnserver -a -v -n -u χρήστης: κωδικό πρόσβασης -r \"κυράτος\"" |
| |
| #: ../../../developer/file-transfer.md:188 |
| msgid "" |
| "Then, you can configure the TURN server in the advanced settings of RING." |
| msgstr "" |
| "Μετά, μπορείτε να ρυθμίσετε τον διακομιστή του TURN στις προηγμένες " |
| "ρυθμίσεις του RING." |
| |
| #: ../../../developer/file-transfer.md:191 |
| msgid "" |
| "Note: this needs some technical knowledges. Moreover, the TURN server should" |
| " see the same ip address of your node as the destination node or the peer " |
| "connection will fail (because the authorization will be incorrect)" |
| msgstr "" |
| "Σημείωση: αυτό απαιτεί κάποιες τεχνικές γνώσεις. Επιπλέον, ο διακομιστής " |
| "TURN θα πρέπει να δει την ίδια διεύθυνση IP του κόμβου σας όπως ο κόμβος " |
| "προορισμού ή η σύνδεση ομολόγων θα αποτύχει (γιατί η έγκριση θα είναι " |
| "εσφαλμένη)" |
| |
| #: ../../../developer/file-transfer.md:199 |
| msgid "" |
| "For now, if a file transfer fails when ongoing, the sender can not resume " |
| "the transfer and must relaunch the whole transfer. In the future, there will" |
| " be a retry button for resuming the transfer." |
| msgstr "" |
| "Για την ώρα, αν η μεταφορά αρχείων αποτύχει κατά τη διάρκεια της " |
| "διαδικασίας, ο αποστολέας δεν μπορεί να συνεχίσει τη μεταφορά και πρέπει να " |
| "επαναστροφήσει ολόκληρη τη μεταφορά." |
| |
| #: ../../../developer/file-transfer.md:203 |
| msgid "" |
| "Finally, because Jami do not support text conferences (just video " |
| "conferences, where there is one master merging slaves SIP calls), there is " |
| "no real file transfer in conferences. For now, when you are in a conference " |
| "on the gnome client for example: A master, B and C slave. B will be able to " |
| "send a file to A the master (C same) A will be able to send a file to B or " |
| "to C (just have to select the correct conversation)." |
| msgstr "" |
| |
| #: ../../../developer/file-transfer.md:210 |
| msgid "TODO List" |
| msgstr "Πληθινόμηση" |
| |
| #: ../../../developer/file-transfer.md:212 |
| msgid "Add unit-tests (https://gerrit-ring.savoirfairelinux.com/\\#/c/9365/)" |
| msgstr "" |
| "Προσθήκη δοκιμών μονάδας (https://gerrit-" |
| "ring.savoirfairelinux.com/\\#/c/9365/)" |
| |
| #: ../../../developer/file-transfer.md:213 |
| msgid "Show subtransfers status for outgoing files" |
| msgstr "Δείξτε την κατάσταση των υπομεταφορών για τα αρχεία που βγαίνουν" |
| |
| #: ../../../developer/file-transfer.md:214 |
| msgid "Offset resume (for failed transfer)" |
| msgstr "Συγγραφές αποπληρωμής (για αποτυχημένη μεταφορά)" |
| |
| #: ../../../developer/important-rfcs.md:1 |
| msgid "Important RFCs" |
| msgstr "Σημαντικές RFC" |
| |
| #: ../../../developer/important-rfcs.md:4 |
| msgid "SIP" |
| msgstr "ΣΕΠ" |
| |
| #: ../../../developer/important-rfcs.md:6 |
| msgid "Reference: <http://tools.ietf.org/html/rfc3261>" |
| msgstr "Αναφορά: <http://tools.ietf.org/html/rfc3261>" |
| |
| #: ../../../developer/important-rfcs.md:8 |
| #: ../../../developer/important-rfcs.md:35 |
| #: ../../../developer/important-rfcs.md:44 |
| msgid "Valuable updates and extensions:" |
| msgstr "Αξιοτιμημένες ενημερώσεις και επέκτασεις:" |
| |
| #: ../../../developer/important-rfcs.md:10 |
| msgid "SIP Re-INVITE: <http://tools.ietf.org/html/rfc6141>" |
| msgstr "Επανακαλούν: <http://tools.ietf.org/html/rfc6141>" |
| |
| #: ../../../developer/important-rfcs.md:12 |
| msgid "ICE" |
| msgstr "Η ΕΣΣ" |
| |
| #: ../../../developer/important-rfcs.md:14 |
| msgid "Reference: <http://tools.ietf.org/html/rfc5245>" |
| msgstr "Αναφορά: <http://tools.ietf.org/html/rfc5245>" |
| |
| #: ../../../developer/important-rfcs.md:16 |
| msgid "ICE TCP" |
| msgstr "" |
| |
| #: ../../../developer/important-rfcs.md:18 |
| msgid "Reference: <http://tools.ietf.org/html/rfc6544>" |
| msgstr "" |
| |
| #: ../../../developer/important-rfcs.md:20 |
| msgid "SDP" |
| msgstr "ΣΔΠ" |
| |
| #: ../../../developer/important-rfcs.md:22 |
| msgid "Reference: <http://tools.ietf.org/html/rfc4566>" |
| msgstr "Αναφορά: <http://tools.ietf.org/html/rfc4566>" |
| |
| #: ../../../developer/important-rfcs.md:24 |
| msgid "" |
| "How to use SDP: <http://tools.ietf.org/html/rfc3264> Valuable updates and " |
| "extensions:" |
| msgstr "" |
| "Πώς να χρησιμοποιήσετε το SDP: <http://tools.ietf.org/html/rfc3264> " |
| "Αξιολογικές ενημερώσεις και επέκτασεις:" |
| |
| #: ../../../developer/important-rfcs.md:27 |
| msgid "SDP and IPv6: <http://tools.ietf.org/html/rfc6157>" |
| msgstr "SDP και IPv6: <http://tools.ietf.org/html/rfc6157>" |
| |
| #: ../../../developer/important-rfcs.md:28 |
| msgid "SDP for SRTP: <http://tools.ietf.org/html/rfc4568>" |
| msgstr "ΣΔΠ για SRTP: <http://tools.ietf.org/html/rfc4568>" |
| |
| #: ../../../developer/important-rfcs.md:31 |
| msgid "RTP" |
| msgstr "Επικοινωνία" |
| |
| #: ../../../developer/important-rfcs.md:33 |
| msgid "Reference: <http://tools.ietf.org/html/rfc3550>" |
| msgstr "Αναφορά: <http://tools.ietf.org/html/rfc3550>" |
| |
| #: ../../../developer/important-rfcs.md:37 |
| msgid "RTP and RTCP on same port: <http://tools.ietf.org/html/rfc5761>" |
| msgstr "RTP και RTCP στην ίδια πύλη: <http://tools.ietf.org/html/rfc5761>" |
| |
| #: ../../../developer/important-rfcs.md:40 |
| msgid "SRTP" |
| msgstr "ΣΔΠ" |
| |
| #: ../../../developer/important-rfcs.md:42 |
| msgid "Reference: <http://tools.ietf.org/html/rfc3711>" |
| msgstr "Αναφορά: <http://tools.ietf.org/html/rfc3711>" |
| |
| #: ../../../developer/important-rfcs.md:46 |
| msgid "" |
| "DTLS for SRTP: <https://tools.ietf.org/html/rfc5763> et " |
| "<http://tools.ietf.org/html/rfc5764>" |
| msgstr "" |
| "DTLS για SRTP: <https://tools.ietf.org/html/rfc5763> και " |
| "<http://tools.ietf.org/html/rfc5764>" |
| |
| #: ../../../developer/important-rfcs.md:47 |
| msgid "AES-192 and AES-256: <https://tools.ietf.org/html/rfc6188>" |
| msgstr "ΑΕΣ-192 και ΑΕΣ-256: <https://tools.ietf.org/html/rfc6188>" |
| |
| #: ../../../developer/important-rfcs.md:48 |
| msgid "AES-GCM: <https://tools.ietf.org/html/rfc7714>" |
| msgstr "Επικοινωνία με το ΕΤΠ:" |
| |
| #: ../../../developer/improving-quality-of-jami.md:1 |
| msgid "Improving the quality of Jami" |
| msgstr "Βελτίωση της ποιότητας του Τζάμι" |
| |
| #: ../../../developer/improving-quality-of-jami.md:4 |
| msgid "Unit-tests" |
| msgstr "Δοκιμές μονάδας" |
| |
| #: ../../../developer/improving-quality-of-jami.md:6 |
| msgid "" |
| "It is harder to make unit-test on Jami project because of the race " |
| "conditions on multi-level dependance." |
| msgstr "" |
| "Είναι πιο δύσκολο να γίνει δοκιμή μονάδας στο έργο Jami λόγω των συνθηκών " |
| "φυλής σε πολλαπλά επίπεδα εξάρτησης." |
| |
| #: ../../../developer/improving-quality-of-jami.md:8 |
| msgid "" |
| "There is about 30 unit-tests and 26% coverage. Due to Jami high demand to " |
| "give new functionalities to user quickly, they are not maintained by the " |
| "developers or by a QA dept." |
| msgstr "" |
| "Λόγω της υψηλής ζήτησης της Jami για να δώσει νέες λειτουργίες στον χρήστη " |
| "γρήγορα, δεν διατηρούνται από τους προγραμματιστές ή από τμήμα QA." |
| |
| #: ../../../developer/improving-quality-of-jami.md:10 |
| msgid "" |
| "We use lcov for the coverage, you can find the lcov’s configuration in the " |
| "daemon’s Makefile.am. Also, the coverage can be found at " |
| "https://docs.jami.net/coverage/" |
| msgstr "" |
| "Χρησιμοποιούμε lcov για την κάλυψη, μπορείτε να βρείτε τη διαμόρφωση lcovs " |
| "στο daemons Makefile.am. Επίσης, η κάλυψη μπορεί να βρεθεί στο " |
| "https://docs.jami.net/coverage/" |
| |
| #: ../../../developer/improving-quality-of-jami.md:12 |
| msgid "" |
| "A system needs to be implemented to start convincing the team to make a " |
| "unit-test for new code before merging" |
| msgstr "" |
| "Πρέπει να εφαρμοστεί ένα σύστημα για να αρχίσει να πείσει την ομάδα να κάνει" |
| " μια μονάδα-δοκιμασία για νέο κώδικα πριν συγχωνεύσει" |
| |
| #: ../../../developer/improving-quality-of-jami.md:14 |
| msgid "" |
| "You can launch them by doing ‘make check’ in the daemon folder or separately" |
| " in the unit-test folder with gdb: ‘gdb ut_media_encoder’" |
| msgstr "" |
| "Μπορείτε να τα ξεκινήσετε κάνοντας make check στο φακέλιο daemon ή ξεχωριστά" |
| " στο φακέλιο unit-test με gdb: gdb ut_media_encoder" |
| |
| #: ../../../developer/improving-quality-of-jami.md:16 |
| msgid "" |
| "The environment needs to be set with ‘--disable-shared’ during the " |
| "’./configure’ command" |
| msgstr "" |
| "Το περιβάλλον πρέπει να ρυθμιστεί με --αποσυνδεθεί-οινομερισμένη κατά τη " |
| "διάρκεια της εντολής./configure" |
| |
| #: ../../../developer/improving-quality-of-jami.md:18 |
| msgid "Framework Tests" |
| msgstr "Δοκιμές πλαισίου" |
| |
| #: ../../../developer/improving-quality-of-jami.md:20 |
| msgid "" |
| "You can find framework tests in the daemon’s Makefile.am and lunch it with " |
| "‘make integration’. This calls jami_test.py script in the tools/dringctrl " |
| "folder. It uses dringctrl.py and controller.py which let you control Jami " |
| "through bash." |
| msgstr "" |
| "Μπορείτε να βρείτε δοκιμές πλαίσιο στο daemons Makefile.am και να το " |
| "αναπαρασκευάσετε με make ενσωμάτωση. Αυτό ονομάζει το σκρίπτο jami_test.py " |
| "στο φακέλιο εργαλείων / dringctrl. Χρησιμοποιεί dringctrl.py και " |
| "controller.py που σας επιτρέπουν να ελέγχετε Jami μέσω bash." |
| |
| #: ../../../developer/improving-quality-of-jami.md:22 |
| msgid "" |
| "This makes a series of calls to assure jami’s opendht network is stable." |
| msgstr "" |
| "Αυτό κάνει μια σειρά κλήσεων για να βεβαιωθούν ότι το ανοιχτό δίκτυο είναι " |
| "σταθερό." |
| |
| #: ../../../developer/improving-quality-of-jami.md:24 |
| msgid "" |
| "Other framework tests need to be implemented in the future to tests Jami’s " |
| "functionalities as a whole." |
| msgstr "" |
| "Σε μέλλον, θα πρέπει να εφαρμοστούν άλλες δοκιμές πλαίσιο για να δοκιμάσουν " |
| "τις λειτουργίες του Jami στο σύνολό του." |
| |
| #: ../../../developer/improving-quality-of-jami.md:26 |
| msgid "Integration tests" |
| msgstr "Δοκιμές ενσωμάτωσης" |
| |
| #: ../../../developer/improving-quality-of-jami.md:28 |
| msgid "" |
| "Each commit goes through integration tests in dockers on the build machines " |
| "you can find the details at: jenkins.jami.net" |
| msgstr "" |
| "Κάθε commit περνά από δοκιμές ενσωμάτωσης σε dockers στις μηχανές κατασκευής" |
| " μπορείτε να βρείτε τις λεπτομέρειες στο: jenkins.jami.net" |
| |
| #: ../../../developer/improving-quality-of-jami.md:30 |
| msgid "" |
| "Code-review is made by a fellow developer, sometimes the code is reviewed by" |
| " the same developer, this should be avoided to emphasize Linus’ law. The " |
| "‘Jenkins verified’ label is sometimes discarded and replaced by +1 from a " |
| "developer, this should also be avoided." |
| msgstr "" |
| "Η αναθεώρηση κώδικα γίνεται από έναν συνάδελφο, μερικές φορές ο κώδικας " |
| "αναθεωρείται από τον ίδιο προγραμματιστή, αυτό πρέπει να αποφεύγεται για να " |
| "τονιστεί ο νόμος Linus." |
| |
| #: ../../../developer/improving-quality-of-jami.md:32 |
| msgid "" |
| "Sonarqube lets Jenkins build Jami and verify linting. You can find filters " |
| "and results at: sonar- jami.savoirfairelinux.net Sonar uses clang-tidy as a " |
| "preprocessor linting compilator, you can find clang’s filters in .clang-tidy" |
| " file in the daemon folder." |
| msgstr "" |
| "Η Sonarqube επιτρέπει στον Jenkins να κατασκευάζει Jami και να επαληθεύει " |
| "την περιγραφή. Μπορείτε να βρείτε φίλτρα και αποτελέσματα στο: sonar- " |
| "jami.savoirfairelinux.net Η Sonar χρησιμοποιεί clang-tidy ως προεπεξεργαστής" |
| " περιγραφής συλλογικού, μπορείτε να βρείτε φίλτρα clangs στο αρχείο.clang-" |
| "tidy στο φάκελο daemon." |
| |
| #: ../../../developer/improving-quality-of-jami.md:34 |
| msgid "" |
| "On sflvault sonarqube can be found at service m#2637 and admin logins at " |
| "service s#7169" |
| msgstr "" |
| "Στο sflvault sonarqube μπορείτε να βρείτε στο υπηρεσία m#2637 και " |
| "συνδεδεμένες σε admin στο υπηρεσία s#7169" |
| |
| #: ../../../developer/improving-quality-of-jami.md:36 |
| msgid "Doc and feedback:" |
| msgstr "Δόκ και σχόλια:" |
| |
| #: ../../../developer/improving-quality-of-jami.md:38 |
| msgid "You can find all the documentation on docs.jami.net" |
| msgstr "Μπορείτε να βρείτε όλη την τεκμηρίωση στο docs.jami.net" |
| |
| #: ../../../developer/improving-quality-of-jami.md:40 |
| msgid "Issues are made by developers or users on git.jami.net" |
| msgstr "" |
| "Τα ζητήματα γίνονται από τους προγραμματιστές ή τους χρήστες στο " |
| "git.jami.net" |
| |
| #: ../../../developer/improving-quality-of-jami.md:42 |
| msgid "Monitoring" |
| msgstr "Παρακολούθηση" |
| |
| #: ../../../developer/improving-quality-of-jami.md:44 |
| msgid "" |
| "A script is called every 30 minutes on a virtual machine jami-" |
| "monitorpeervm-01. You can find it on sflvault service s#7209 and is calling " |
| "an other client viratual jami- monitorpeer-02 (service s#7224). A series of " |
| "calls is being made and it returns the failure rate. You can find all the " |
| "details at https://wiki.savoirfairelinux.com/wiki/Jami-" |
| "monitorpeervm-01.mtl.sfl." |
| msgstr "" |
| "Ένα σκρίπτο καλείται κάθε 30 λεπτά σε μια εικονική μηχανή jami-" |
| "monitorpeervm-01. Μπορείτε να το βρείτε στην υπηρεσία s#7209 και καλεί έναν " |
| "άλλο πελάτη virtual jami-monitorpeer-02 (εξυπηρέτηση s#7224). Μια σειρά " |
| "κλήσεων γίνεται και επιστρέφει το ποσοστό αποτυχίας." |
| |
| #: ../../../developer/improving-quality-of-jami.md:46 |
| msgid "" |
| "If needed, the manual command is ./script.sh –peer " |
| "031acbb73f2a3385b2babc7161f13325be103431" |
| msgstr "" |
| "Αν χρειαστεί, η χειροκίνητη εντολή είναι./script.sh peer " |
| "031acbb73f2a3385b2babc7161f13325be103431" |
| |
| #: ../../../developer/improving-quality-of-jami.md:48 |
| msgid "" |
| "It traces a real time point by point graph on " |
| "https://monitoring.savoirfairelinux.com/grafana/dashboard/script/dyndash.js?host=jami-" |
| "monitorpeervm-01.mtl.sfl&service=Check%20JamiCall&panelId=1&fullscreen&orgId=1" |
| msgstr "" |
| "Παρακολουθεί ένα πραγματικό χρόνο σημείο-με-το σημείο γραφή στο " |
| "https://monitoring.savoirfairelinux.com/grafana/dashboard/script/dyndash.js?host=jami-" |
| "monitorpeervm-01.mtl.sfl&service=Check%20JamiCall&panelId=1&fullscreen&orgId=1" |
| |
| #: ../../../developer/improving-quality-of-jami.md:50 |
| msgid "Smoke tests" |
| msgstr "Δοκιμασίες καπνού" |
| |
| #: ../../../developer/improving-quality-of-jami.md:52 |
| msgid "Before each releases every clients MUST past a list of scenarios." |
| msgstr "" |
| "Πριν αποχωρήσουν, όλοι οι πελάτες πρέπει να περάσουν από μια λίστα σενάρων." |
| |
| #: ../../../developer/improving-quality-of-jami.md:54 |
| msgid "Scenarios are described here: [Jami smoke tests](jami-smoke-tests.ods)" |
| msgstr "Σεναρίου περιγράφονται εδώ: [έλεγχοι καπνού Jamie]" |
| |
| #: ../../../developer/improving-quality-of-jami.md:57 |
| msgid "" |
| "They are reviewed by QA dpt. before sending it to the developers if needed." |
| msgstr "" |
| "Εξετάζονται από την QA dpt. πριν τα στείλουν στους προγραμματιστές αν " |
| "χρειαστεί." |
| |
| #: ../../../developer/improving-quality-of-jami.md:59 |
| msgid "" |
| "If a release contains a network commit that has been merged, the QA dept. " |
| "Should be able to automate the different connectivity tests (as descibed " |
| "below in Calls configurations)" |
| msgstr "" |
| "Εάν μια έκδοση περιέχει ένα δεσμευμένο δίκτυο που έχει συγχωνευθεί, το τμήμα" |
| " QA θα πρέπει να είναι σε θέση να αυτοματοποιήσει τις διαφορετικές δοκιμές " |
| "συνδεσιμότητας (όπως περιγράφεται παρακάτω στις ρυθμίσεις Calls)" |
| |
| #: ../../../developer/improving-quality-of-jami.md:61 |
| msgid "Calls configurations." |
| msgstr "Καλεί τις ρυθμίσεις." |
| |
| #: ../../../developer/improving-quality-of-jami.md:63 |
| msgid "This is the list of network configurations that need to be tested:" |
| msgstr "Ορίστε η λίστα των διαμορφώσεων δικτύου που πρέπει να δοκιμαστούν:" |
| |
| #: ../../../developer/improving-quality-of-jami.md:65 |
| msgid "" |
| "(IPv4 | IPv6) + (TURN | !TURN) + (STUN | !STUN) + (UPnP | !UPnP) for both " |
| "sides." |
| msgstr "" |
| "(IPv4! IPv6) + (TURN!! TURN) + (STUN!! STUN) + (UPnP!! UPnP) για τις δύο " |
| "πλευρές." |
| |
| #: ../../../developer/improving-quality-of-jami.md:67 |
| msgid "" |
| "If both sides are IPv4 only without TURN/STUN/UPnP, the call should be only " |
| "local." |
| msgstr "" |
| "Εάν και οι δύο πλευρές είναι μόνο IPv4 χωρίς TURN/STUN/UPnP, η κλήση θα " |
| "πρέπει να είναι μόνο τοπική." |
| |
| #: ../../../developer/improving-quality-of-jami.md:69 |
| msgid "Special note: FDroid" |
| msgstr "Ειδική σημείωση: FDroid" |
| |
| #: ../../../developer/improving-quality-of-jami.md:71 |
| msgid "" |
| "The script to generate MR is in the client-android repo " |
| "(fdroidMergeRequest.sh)" |
| msgstr "" |
| "Το σενάριο για την παραγωγή MR είναι στο client-android repo " |
| "(fdroidMergeRequest.sh)" |
| |
| #: ../../../developer/improving-quality-of-jami.md:73 |
| msgid "What needs to be done" |
| msgstr "Τι πρέπει να γίνει" |
| |
| #: ../../../developer/improving-quality-of-jami.md:75 |
| msgid "Push coverage closer to 60%" |
| msgstr "Προς την κατεύθυνση της κάλυψης" |
| |
| #: ../../../developer/improving-quality-of-jami.md:77 |
| msgid "" |
| "Establish a system within the team to assure maintenance and creation of " |
| "unit-tests." |
| msgstr "" |
| "Να δημιουργηθεί σύστημα εντός της ομάδας για να εξασφαλίζεται η συντήρηση " |
| "και η δημιουργία δοκιμών μονάδας." |
| |
| #: ../../../developer/improving-quality-of-jami.md:79 |
| msgid "" |
| "Each major functionality should be tested as whole by adding a framework " |
| "test (i.e. making sure a message was received, the call was ended well on " |
| "both side, etc...)" |
| msgstr "" |
| "Κάθε σημαντική λειτουργία πρέπει να δοκιμάζεται ως σύνολο με την προσθήκη " |
| "ενός τεστ πλαίσιο (δηλαδή, να εξασφαλίζεται η λήψη ενός μηνύματος, η λήξη " |
| "της κλήσης και στις δύο πλευρές, κλπ.)" |
| |
| #: ../../../developer/improving-quality-of-jami.md:81 |
| msgid "" |
| "Each new functionality should be tested on each platform before merging it " |
| "to reduce regression" |
| msgstr "" |
| "Κάθε νέα λειτουργία θα πρέπει να δοκιμάζεται σε κάθε πλατφόρμα πριν από τη " |
| "συγχώνευση της για τη μείωση της υποτροπής" |
| |
| #: ../../../developer/improving-quality-of-jami.md:83 |
| msgid "Integrate sonarqube on each client" |
| msgstr "Ενσωματώστε σόναρκουμπ σε κάθε πελάτη" |
| |
| #: ../../../developer/improving-quality-of-jami.md:85 |
| msgid "Automate the testing of Jami’s behavior on network compatibility" |
| msgstr "" |
| "Αυτοματοποίηση των δοκιμών της συμπεριφοράς των Jami για τη συμβατότητα " |
| "δικτύου" |
| |
| #: ../../../developer/improving-quality-of-jami.md:87 |
| msgid "Make a make_ring.py script adaptable to windows also" |
| msgstr "Κάντε ένα script make_ring.py προσαρμόσιμο στα Windows επίσης" |
| |
| #: ../../../developer/index.rst:3 |
| msgid "Developer manual" |
| msgstr "Εγχειρίδιο προγραμματιστών" |
| |
| #: ../../../developer/index.rst:5 |
| msgid "" |
| "The Jami developer manual is a reference for Jami developers and " |
| "contributors, documenting the various aspects of hacking on and developing " |
| "Jami, including in-depth explanations of how Jami is designed and how its " |
| "various parts work together." |
| msgstr "" |
| "Το εγχειρίδιο των ανεπτυξιακών Jami είναι μια αναφορά για τους ανεπτυξιακούς" |
| " Jami και τους συνεισφέροντες, που τεκμηριώνει τις διάφορες πτυχές της χάκερ" |
| " και της ανάπτυξης της Jami, συμπεριλαμβανομένων των λεπτομερών εξηγήσεις " |
| "για το πώς σχεδιάζεται η Jami και πώς τα διάφορα μέρη της λειτουργούν μαζί." |
| |
| #: ../../../developer/introduction.md:4 |
| msgid "" |
| "Greetings! In the developer manual of Jami, you will learn about how Jami " |
| "works from the high level, to the low, with some examples." |
| msgstr "" |
| "Στο εγχειρίδιο των κατασκευαστών του Jami, θα μάθετε για το πώς λειτουργεί ο" |
| " Jami από το υψηλό επίπεδο, μέχρι το χαμηλό, με μερικά παραδείγματα." |
| |
| #: ../../../developer/introduction.md:7 |
| msgid "Table of contents" |
| msgstr "Πίνακας περιεχομένου" |
| |
| #: ../../../developer/introduction.md:9 |
| msgid "{doc}`apis-of-jami`" |
| msgstr "Τελευταία φορά" |
| |
| #: ../../../developer/introduction.md:10 |
| msgid "Basic features" |
| msgstr "Βασικά χαρακτηριστικά" |
| |
| #: ../../../developer/introduction.md:11 |
| msgid "{doc}`account-management`" |
| msgstr "Οικονομική και κοινωνική ανάπτυξη" |
| |
| #: ../../../developer/introduction.md:12 |
| msgid "{doc}`contact-management`" |
| msgstr "Επικοινωνιακή διαχείριση" |
| |
| #: ../../../developer/introduction.md:13 |
| msgid "{doc}`swarm`" |
| msgstr "Τελευταία φορά" |
| |
| #: ../../../developer/introduction.md:14 |
| msgid "{doc}`calls`" |
| msgstr "" |
| "Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα " |
| "Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα " |
| "Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα " |
| "Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα " |
| "Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα " |
| "Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα Τόλμα" |
| |
| #: ../../../developer/introduction.md:15 |
| msgid "{doc}`file-transfer` (deprecated; see {doc}`swarm`)" |
| msgstr "{doc}`file-transfer` (αποκατασταθεί· βλ. {doc}`swarm`)" |
| |
| #: ../../../developer/introduction.md:16 |
| msgid "{doc}`message-displayed-status`" |
| msgstr "{doc}`επιστολή-εμφανίζεται-κατάσταση`" |
| |
| #: ../../../developer/introduction.md:18 |
| msgid "Advanced features" |
| msgstr "Προχωρημένες δυνατότητες" |
| |
| #: ../../../developer/introduction.md:19 |
| msgid "Manage audio/videos" |
| msgstr "Διαχειρίστε ήχο/βίντεο" |
| |
| #: ../../../developer/introduction.md:20 |
| msgid "Call recording" |
| msgstr "Καταγραφή κλήσης" |
| |
| #: ../../../developer/introduction.md:21 |
| msgid "" |
| "[The push notifications " |
| "system](https://github.com/savoirfairelinux/opendht/wiki/Push-notifications-" |
| "support)" |
| msgstr "" |
| "[Σύστημα " |
| "προσανατολισμού]https://github.com/savoirfairelinux/opendht/wiki/Push-" |
| "notifications-support)" |
| |
| #: ../../../developer/introduction.md:22 |
| msgid "What is a DHTProxy" |
| msgstr "Τι είναι ένα DHTProxy" |
| |
| #: ../../../developer/introduction.md:23 |
| msgid "Supporting SIP" |
| msgstr "Υποστήριξη της SIP" |
| |
| #: ../../../developer/introduction.md:24 |
| msgid "{doc}`setting-up-your-own-turn-server`" |
| msgstr "{doc}`set-up-your-own-turn-server`" |
| |
| #: ../../../developer/introduction.md:25 |
| msgid "{doc}`synchronizing-profiles`" |
| msgstr "{doc}`συγχρονιστικά προφίλ`" |
| |
| #: ../../../developer/introduction.md:27 |
| msgid "{doc}`../contribute`" |
| msgstr "{doc}`../contribution`" |
| |
| #: ../../../developer/introduction.md:28 |
| msgid "{doc}`Build instructions <../build/building>`" |
| msgstr "Οδηγίες κατασκευής" |
| |
| #: ../../../developer/introduction.md:29 |
| msgid "{doc}`submitting-your-first-patch`" |
| msgstr "{doc}` υποβολή-το-πρώτη-πατς σας`" |
| |
| #: ../../../developer/introduction.md:30 |
| msgid "{doc}`feature-requests`" |
| msgstr "{doc}`απαιτήσεις χαρακτηριστικών" |
| |
| #: ../../../developer/introduction.md:32 |
| msgid "Group chats in details" |
| msgstr "Ομαδικές συνομιλίες λεπτομερώς" |
| |
| #: ../../../developer/introduction.md:33 ../../../developer/introduction.md:42 |
| msgid "Description" |
| msgstr "Περιγραφή" |
| |
| #: ../../../developer/introduction.md:34 |
| msgid "{doc}`connection-manager`" |
| msgstr "Διοικητής σύνδεσης" |
| |
| #: ../../../developer/introduction.md:35 |
| msgid "DRT" |
| msgstr "ΔΕΤ" |
| |
| #: ../../../developer/introduction.md:36 |
| msgid "{doc}`calls-in-swarm`" |
| msgstr "Τόσοι καλούν στο γκρουπ" |
| |
| #: ../../../developer/introduction.md:38 |
| msgid "Drafts" |
| msgstr "Σχέδια" |
| |
| #: ../../../developer/introduction.md:39 |
| msgid "{doc}`conference-protocol`" |
| msgstr "Πρωτοκόλλου σύσκεψης" |
| |
| #: ../../../developer/introduction.md:40 |
| msgid "{doc}`synchronization-protocol`" |
| msgstr "Συγχρονιστικό πρωτόκολλο" |
| |
| #: ../../../developer/introduction.md:44 |
| msgid "" |
| "If you are reading this, chances are you'd either like to contribute to one " |
| "of Jami's components/projects, or to implement your own client. There are " |
| "three main layers in this project:" |
| msgstr "" |
| "Αν διαβάζετε αυτό, είναι πιθανό να θέλετε είτε να συνεισφέρετε σε ένα από τα" |
| " στοιχεία/προγράμματα του Jami, είτε να εφαρμόσετε τον δικό σας πελάτη." |
| |
| #: ../../../developer/introduction.md:48 |
| msgid "" |
| "[OpenDHT](https://opendht.net), used for the p2p communication. You can " |
| "interact with this library like any C++ library, or using the Python " |
| "wrapper, or via its [REST " |
| "API](https://github.com/savoirfairelinux/opendht/wiki/REST-API)." |
| msgstr "" |
| "[OpenDHT](https://opendht.net), που χρησιμοποιείται για την p2p επικοινωνία." |
| " Μπορείτε να αλληλεπιδράσετε με αυτή τη βιβλιοθήκη όπως κάθε βιβλιοθήκη C " |
| "++, ή χρησιμοποιώντας το Python wrapper, ή μέσω της [REST API] " |
| "((https://github.com/savoirfairelinux/opendht/wiki/REST-API)." |
| |
| #: ../../../developer/introduction.md:53 |
| msgid "" |
| "The daemon, which is the main part. It's the part which does all the logic " |
| "for Jami and interacts with OpenDHT, pjsip, FFmpeg, and the other libraries," |
| " and implements the whole protocol. If you'd like to do create a new Jami " |
| "client, we recommend implementing it on top of this daemon, using one of its" |
| " many APIs (REST, DBus, libwrap, or JNI)." |
| msgstr "" |
| "Το δαίμον, το οποίο είναι το κύριο μέρος. Είναι το μέρος που κάνει όλη τη " |
| "λογική για το Jami και αλληλεπιδρά με το OpenDHT, pjsip, FFmpeg και τις " |
| "άλλες βιβλιοθήκες, και εφαρμόζει όλο το πρωτόκολλο." |
| |
| #: ../../../developer/introduction.md:60 |
| msgid "The client part, which is basically the *frontend*." |
| msgstr "Το μέρος του πελάτη, που είναι βασικά το \"frontend\"." |
| |
| #: ../../../developer/introduction.md:62 |
| msgid "" |
| "The developer manual of Jami will explain the different features from all of" |
| " these layers." |
| msgstr "" |
| "Το εγχειρίδιο ανάπτυξης του Jami θα εξηγήσει τα διαφορετικά χαρακτηριστικά " |
| "όλων αυτών των στρωμάτων." |
| |
| #: ../../../developer/jami-identifiers.md:1 |
| msgid "Jami identifiers" |
| msgstr "Ταυτοποιητές Jami" |
| |
| #: ../../../developer/jami-identifiers.md:4 |
| msgid "" |
| "There are many identifiers in Jami. We need to unify the naming of these " |
| "identifiers between all implementations. This page reference various kind of" |
| " identifiers used in Jami with relevant examples." |
| msgstr "" |
| "Υπάρχουν πολλοί αναγνωριστικοί στα Jami. Πρέπει να ενοποιήσουμε τη ονομασία " |
| "αυτών των αναγνωριστικών μεταξύ όλων των εφαρμογών." |
| |
| #: ../../../developer/jami-identifiers.md:8 |
| msgid "" |
| "**Jami Infohash** or **Jami public key fingerprint** : a public key " |
| "fingerprint such as `3d1112ab2bb089370c0744a44bbbb0786418d40b`" |
| msgstr "" |
| "**Jami Infohash** ή **Jami Public Key Fingerprint**: ένα αποτύπωμα από " |
| "δημόσιο κλειδί όπως `3d1112ab2bb089370c0744a44bb0786418d40b`" |
| |
| #: ../../../developer/jami-identifiers.md:10 |
| msgid "" |
| "**Registered name** : a username associated to a Jami Infohash on the " |
| "blockchain such as `jeandupont`" |
| msgstr "" |
| "**Καταχωρισμένο όνομα**: όνομα χρήστη που συνδέεται με μια Jami Infohash στο" |
| " blockchain όπως `jeandupont`" |
| |
| #: ../../../developer/jami-identifiers.md:12 |
| msgid "" |
| "**URI** : a Jami or SIP URI such as " |
| "`jami:3d1112ab2bb089370c0744a44bbbb0786418d40b` or `jami:jeandupont` or " |
| "`<sip:nnnnn@host:5060>`. Must be compliant with " |
| "[rfc3986](https://tools.ietf.org/html/rfc3986). If it's a SIP URI, it must " |
| "be compliant with " |
| "[rfc3261#19.1](https://tools.ietf.org/html/rfc3261#section-19.1)." |
| msgstr "" |
| "**URI**: ένα Jami ή SIP URI όπως " |
| "`jami:3d1112ab2bb089370c0744a44bb0786418d40b` ή `jami:jeandupont` ή " |
| "`<sip:nnnnn@host:5060>`. Πρέπει να συμμορφώνεται με " |
| "[rfc3986]https://tools.ietf.org/html/rfc3986)." |
| |
| #: ../../../developer/jami-identifiers.md:15 |
| msgid "" |
| "**Canonical URI** : `jami:3d1112ab2bb089370c0744a44bbbb0786418d40b` or " |
| "`sip:nnnnn@host:5060`. The most simplified form of the URI. Registered name " |
| "must be resolved, doesn't include <> brackets or display name. Prefixed with" |
| " the scheme (`jami:` or `sip:` or `sips:`)." |
| msgstr "" |
| "** Κανονικό URI**: `jami:3d1112ab2bb089370c0744a44bb0786418d40b` ή " |
| "`sip:nnnnn@host:5060`. Η πιο απλουστευμένη μορφή του URI. Το εγγεγραμμένο " |
| "όνομα πρέπει να διαλυθεί, δεν περιλαμβάνει <> δέσμους ή όνομα εμφάνισης. " |
| "Προπαραρτημένο με το σχήμα (`jami:` ή `sip:` ή `sips:`)." |
| |
| #: ../../../developer/jami-identifiers.md:16 |
| msgid "" |
| "**User ID**: registered name (preferred) or public key fingerprint. User-" |
| "facing identifier for an account public key." |
| msgstr "" |
| "**Παραγνωριστικό χρήστη**: εγγεγραμμένο όνομα (προτιθέμενο) ή αποτύπωμα του " |
| "δημόσιου κλειδιού." |
| |
| #: ../../../developer/jami-identifiers.md:17 |
| msgid "" |
| "**Display name** or **Profile name** : an editable user-defined profile name" |
| " such as `Jean Dupont`." |
| msgstr "" |
| "**Νόμος οθόνης** ή **Νόμος προφίλ**: ένα επεξεργαζόμενο όνομα προφίλ που " |
| "καθορίζεται από τον χρήστη, όπως `Jean Dupont`." |
| |
| #: ../../../developer/jami-identifiers.md:20 |
| msgid "When displaying a contact:" |
| msgstr "Κατά την εμφάνιση επαφής:" |
| |
| #: ../../../developer/jami-identifiers.md:28 |
| msgid "If Display name is empty, User ID is shown instead" |
| msgstr "" |
| "Εάν το όνομα της οθόνης είναι κενό, εμφανίζεται το αναγνωριστικό χρήστη αντί" |
| " αυτού" |
| |
| #: ../../../developer/jami-identifiers.md:29 |
| msgid "If both lines have the same content, only the first line is displayed" |
| msgstr "" |
| "Εάν και οι δύο γραμμές έχουν το ίδιο περιεχόμενο, εμφανίζεται μόνο η πρώτη " |
| "γραμμή" |
| |
| #: ../../../developer/jami-identifiers.md:31 |
| msgid "" |
| "If no photo is available and a registered name (ring) or display name (sip) " |
| "is available, the first letter of this name can be used to generate a " |
| "placeholder. Otherwise a generic placeholder is used." |
| msgstr "" |
| "Εάν δεν υπάρχει φωτογραφία και υπάρχει εγγεγραμμένο όνομα (περίχιο) ή όνομα " |
| "οθόνης (sip), το πρώτο γράμμα αυτού του ονόματος μπορεί να χρησιμοποιηθεί " |
| "για τη δημιουργία ενός διαχωριστικού σημείου." |
| |
| #: ../../../developer/jami-identifiers.md:32 |
| msgid "" |
| "If no photo is available, a placeholder with an Canonical URI-specific " |
| "background color can be used:" |
| msgstr "" |
| "Εάν δεν υπάρχει φωτογραφία, μπορεί να χρησιμοποιηθεί ένας διαστημικός " |
| "διακομιστής με χρώμα φόντου που είναι ειδικό για το Canonical URI:" |
| |
| #: ../../../developer/jami-identifiers.md:57 |
| msgid "" |
| "Color values are from the material palette: https://material.io/tools/color" |
| msgstr "" |
| "Οι τιμές χρωμάτων είναι από την παλέτα υλικών: " |
| "https://material.io/tools/color" |
| |
| #: ../../../developer/jami-identifiers.md:60 |
| msgid "![références_couleurs_jami](images/jami-reference-colours.png)" |
| msgstr "! [références_couleurs_jami]" |
| |
| #: ../../../developer/jami-identifiers.md:60 |
| msgid "références_couleurs_jami" |
| msgstr "références_couleurs_jami" |
| |
| #: ../../../developer/location-sharing.md:1 |
| msgid "Location Sharing on QT Client" |
| msgstr "Τοποθεσία Συμμετοχή στον πελάτη QT" |
| |
| #: ../../../developer/location-sharing.md:7 |
| msgid "Trivial use" |
| msgstr "Τριβαλή χρήση" |
| |
| #: ../../../developer/location-sharing.md:9 |
| msgid "" |
| "In a conversation, the user can click on the location icon to display a map." |
| " If `Location Services` is enabled on the device, the user's position will " |
| "be shown on the map, along with the locations of all other members who are " |
| "sharing their location (from all conversations of the selected account). The" |
| " user can toggle location sharing on and off by clicking the location " |
| "sharing buttons. By default, the user's location is shared for 15 minutes, " |
| "but this setting can be modified in the app's settings." |
| msgstr "" |
| "Σε μια συζήτηση, ο χρήστης μπορεί να κάνει κλικ στο εικονίδιο τοποθεσίας για" |
| " να εμφανίσει έναν χάρτη. Εάν είναι ενεργοποιημένες οι υπηρεσίες τοποθεσίας " |
| "`` στην συσκευή, η θέση του χρήστη θα εμφανίζεται στον χάρτη, μαζί με τις " |
| "τοποθεσίες όλων των άλλων μελών που μοιράζονται τη θέση τους (από όλες τις " |
| "συνομιλίες του επιλεγμένου λογαριασμού). Ο χρήστης μπορεί να ενεργοποιήσει " |
| "και να απενεργοποιήσει τη μοιράωση τοποθεσίας πατώντας τα κουμπιά μοιράσεως " |
| "τοποθεσίας. Κατά προεπιλογή, η θέση του χρήστη μοιράζεται για 15 λεπτά, αλλά" |
| " αυτή η ρύθμιση μπορεί να τροποποιηθεί στις ρυθμίσεις της εφαρμογής." |
| |
| #: ../../../developer/location-sharing.md:11 |
| msgid "" |
| "When a user is sharing their location in a conversation, a red location icon" |
| " will appear on the conversation icon. If the user receives a location from " |
| "another member, an orange location icon will be displayed on all " |
| "conversations in which the member is present." |
| msgstr "" |
| "Όταν ένας χρήστης μοιράζεται τη θέση του σε μια συζήτηση, ένα κόκκινο " |
| "εικονίδιο τοποθεσίας εμφανίζεται στο εικονίδιο συζήτησης. Εάν ο χρήστης " |
| "λαμβάνει μια θέση από άλλο μέλος, ένα πορτοκαλί εικονίδιο τοποθεσίας " |
| "εμφανίζεται σε όλες τις συνομιλίες στις οποίες είναι παρόν το μέλος." |
| |
| #: ../../../developer/location-sharing.md:13 |
| msgid "" |
| "The user can interact with the map by recentering, zooming in and out, " |
| "moving it, and closing it. The map can also be pinned or unpinned. When the " |
| "map is unpinned, it can be repinned if the user is in the right account. " |
| "This feature allows the user to keep the map visible while continuing to use" |
| " Jami." |
| msgstr "" |
| "Ο χρήστης μπορεί να αλληλεπιδράσει με τον χάρτη με πρόσφατη αναπροσαρμογή, " |
| "μεγέθυνση, μετακίνηση και κλείσιμο." |
| |
| #: ../../../developer/location-sharing.md:15 |
| msgid "Advanced use" |
| msgstr "Προχωρημένη χρήση" |
| |
| #: ../../../developer/location-sharing.md:17 |
| msgid "Multi-sharing" |
| msgstr "Πολλαπλές συμμετοχές" |
| |
| #: ../../../developer/location-sharing.md:19 |
| msgid "scenario" |
| msgstr "σενάριο" |
| |
| #: ../../../developer/location-sharing.md:21 |
| msgid "" |
| "The user is already sharing location with conversation A and conversation B." |
| msgstr "" |
| "Ο χρήστης μοιράζεται ήδη τοποθεσία με τη συζήτηση Α και τη συζήτηση Β." |
| |
| #: ../../../developer/location-sharing.md:23 |
| msgid "Feature" |
| msgstr "Ειδικότητα" |
| |
| #: ../../../developer/location-sharing.md:25 |
| msgid "" |
| "If the user switches to conversation C, the map is still visible and the " |
| "user has two options" |
| msgstr "" |
| "Αν ο χρήστης αλλάξει σε συζήτηση C, ο χάρτης είναι ακόμα ορατός και ο " |
| "χρήστης έχει δύο επιλογές" |
| |
| #: ../../../developer/location-sharing.md:27 |
| msgid "" |
| "Click on the location sharing button to also share location with the members" |
| " of conversation C." |
| msgstr "" |
| "Κάντε κλικ στο κουμπί μοιράζοντας τοποθεσίες για να μοιραστείτε τοποθεσίες " |
| "και με τα μέλη της συζήτησης C." |
| |
| #: ../../../developer/location-sharing.md:28 |
| msgid "" |
| "Click the location sharing end button. This will bring up a pop-up that " |
| "allows the user to either turn off location sharing entirely or only stop " |
| "sharing their location with the members of conversation C." |
| msgstr "" |
| "Κάντε κλικ στο κουμπί λήξης μοιράζοντας τοποθεσίες. Αυτό θα εμφανίσει ένα " |
| "pop-up που επιτρέπει στον χρήστη είτε να απενεργοποιήσει εντελώς τη " |
| "μοιράζωση τοποθεσιών ή να σταματήσει μόνο να μοιράζεται τη θέση του με τα " |
| "μέλη της συζήτησης C." |
| |
| #: ../../../developer/location-sharing.md:30 |
| msgid "Pinned window" |
| msgstr "Πινέζικο παράθυρο" |
| |
| #: ../../../developer/location-sharing.md:32 |
| msgid "" |
| "If the window is unpinned, the user will not be able to click on the " |
| "location sharing button because the window is no longer connected to a " |
| "conversation. To start sharing location with new people, the user must re-" |
| "pin the window. Note that unpinning the window does not affect any ongoing " |
| "location sharing. Additionally, clicking on the location sharing end button " |
| "while the window is unpinned will stop all current location sharing and no " |
| "pop-up will appear to allow the user to select a specific conversation to " |
| "stop sharing with." |
| msgstr "" |
| "Εάν το παράθυρο αφαιρεθεί, ο χρήστης δεν θα μπορεί να κάνει κλικ στο κουμπί " |
| "μοιράσεως τοποθεσίας επειδή το παράθυρο δεν συνδέεται πλέον με μια συζήτηση." |
| " Για να αρχίσει να μοιράζεται τοποθεσία με νέους ανθρώπους, ο χρήστης πρέπει" |
| " να επαναπαίξει το παράθυρο. Σημείωσε ότι το αφαιρέσιμο του παράθυρου δεν " |
| "επηρεάζει καμία συνεχή μοιράωση τοποθεσίας. Επιπλέον, το να κάνετε κλικ στο " |
| "κουμπί λήξης μοιράσεως τοποθεσίας ενώ το παράθυρο είναι αφαιρεμένο θα " |
| "σταματήσει όλη τη τρέχουσα μοιράωση τοποθεσίας και δεν θα εμφανιστεί κανένα " |
| "pop-up που να επιτρέπει στον χρήστη να επιλέξει μια συγκεκριμένη συζήτηση " |
| "για να σταματήσει να μοιράζεται με." |
| |
| #: ../../../developer/location-sharing.md:34 |
| msgid "Multi accounts" |
| msgstr "Πολλαπλά λογαριασμοί" |
| |
| #: ../../../developer/location-sharing.md:36 |
| msgid "" |
| "Each account has its own unique map. If the user unpins the map while on " |
| "account A, then switches to account B and unpins the map, two maps will be " |
| "visible. The maps for accounts A and B display positions shared with those " |
| "accounts, respectively, and are completely separate from each other" |
| msgstr "" |
| "Κάθε λογαριασμός έχει το δικό του μοναδικό χάρτη. Αν ο χρήστης αφαιρεί το " |
| "χάρτη ενώ είναι στο λογαριασμό A, μετά αλλάζει στο λογαριασμό B και αφαιρεί " |
| "το χάρτη, θα είναι ορατά δύο χάρτες. Οι χάρτες για λογαριασμούς A και B " |
| "εμφανίζουν τις θέσεις που μοιράζονται με αυτά τα λογαριασμούς, αντίστοιχα, " |
| "και είναι εντελώς ξεχωριστά ο ένας από τον άλλο" |
| |
| #: ../../../developer/location-sharing.md:44 |
| msgid "This feature is divided into three parts:" |
| msgstr "Το χαρακτηριστικό αυτό χωρίζεται σε τρία μέρη:" |
| |
| #: ../../../developer/location-sharing.md:46 |
| msgid "Sending one's position" |
| msgstr "Στέλνοντας τη θέση του" |
| |
| #: ../../../developer/location-sharing.md:47 |
| #: ../../../developer/location-sharing.md:78 |
| msgid "Receiving a position" |
| msgstr "Αποκτά θέση" |
| |
| #: ../../../developer/location-sharing.md:48 |
| #: ../../../developer/location-sharing.md:89 |
| msgid "Displaying a position" |
| msgstr "Εμφάνιση θέσης" |
| |
| #: ../../../developer/location-sharing.md:50 |
| msgid "" |
| "To determine the location, [Qt " |
| "Positioning](https://doc.qt.io/qt-6/qtpositioning-index.html) API is used. " |
| "Once the position is determined, it is sent as a message on the DHT and is " |
| "transmitted to the client. The received position is then displayed using the" |
| " [OpenLayers](https://openlayers.org/) JavaScript library." |
| msgstr "" |
| "Για να προσδιοριστεί η τοποθεσία, χρησιμοποιείται η API [Qt " |
| "Positioning]https://doc.qt.io/qt-6/qtpositioning-index.html). Μόλις " |
| "καθοριστεί η θέση, αποστέλλεται ως μήνυμα στο DHT και μεταδίδεται στον " |
| "πελάτη." |
| |
| #: ../../../developer/location-sharing.md:53 |
| msgid "Sending a position" |
| msgstr "Αποστέλλει θέση" |
| |
| #: ../../../developer/location-sharing.md:55 |
| msgid "" |
| "As soon as a map is opened, the `Positioning` class takes care of retrieving" |
| " the current position using the `QGeoPositionInfoSource` class of the " |
| "`QtPositioning` module. The position is then converted to JSON format and is" |
| " transmitted to the `positionManager`. This class coordinates the entire " |
| "position sharing process. The position is then shared through the " |
| "`sendPosition()` function. It is shared:" |
| msgstr "" |
| "Μόλις ανοίξει ένα χάρτη, η τάξη `Positioning` φροντίζει να ανακτήσει τη " |
| "τρέχουσα θέση χρησιμοποιώντας την τάξη `QGeoPositionInfoSource` της " |
| "`QtPositioning` module. Η θέση μετατρέπεται στη συνέχεια σε μορφή JSON και " |
| "μεταδίδεται στο `positionManager`. Αυτή η τάξη συντονίζει ολόκληρη τη " |
| "διαδικασία κοινοποίησης θέσεων. Η θέση στη συνέχεια μοιράζεται μέσω της " |
| "λειτουργίας `sendPosition()`." |
| |
| #: ../../../developer/location-sharing.md:61 |
| msgid "" |
| "Locally through the `localPositionReceived` signal so that the user can see " |
| "their own position" |
| msgstr "" |
| "Τοπικά μέσω του σήματος `localPositionReceived` ώστε ο χρήστης να μπορεί να " |
| "δει τη θέση του" |
| |
| #: ../../../developer/location-sharing.md:63 |
| msgid "" |
| "On the DHT to all conversations in the `positionShareConvIds_` list. This " |
| "list contains the keys of all conversations that the user wants to share " |
| "their position with. From this key, the URIs of all participants are " |
| "obtained and a position message is sent to each participant." |
| msgstr "Στο DHT, όλες οι συνομιλίες στο `positionShareConvIds_` κατάλογο." |
| |
| #: ../../../developer/location-sharing.md:65 |
| msgid "The JSON format of a position is as follows:" |
| msgstr "Η μορφή JSON μιας θέσης είναι η εξής:" |
| |
| #: ../../../developer/location-sharing.md:67 |
| msgid "Type (position or stop message)" |
| msgstr "Τύπος (ημερομηνία θέσης ή στάσης)" |
| |
| #: ../../../developer/location-sharing.md:68 |
| msgid "Latitude" |
| msgstr "Ακτινοδρόμιο" |
| |
| #: ../../../developer/location-sharing.md:69 |
| msgid "Longitude" |
| msgstr "Διάσημη" |
| |
| #: ../../../developer/location-sharing.md:70 |
| msgid "Time (unused by the QtClient)" |
| msgstr "Χρόνος (μη χρησιμοποιούμενος από τον QtClient)" |
| |
| #: ../../../developer/location-sharing.md:72 |
| msgid "" |
| "An example of data: " |
| "`{\\\"lat\\\":45.51616583988481,\\\"long\\\":-73.620693,\\\"time\\\":1671658862000,\\\"type\\\":\\\"Position\\\"}`" |
| msgstr "" |
| "Ένα παράδειγμα δεδομένων: " |
| "`{\\\"lat\\\":45.51616583988481,\\\"long\\\":-73.620693,\\\"time\\\":1671658862000,\\\"type\\\":\\\"Position\\\"}`" |
| |
| #: ../../../developer/location-sharing.md:74 |
| msgid "" |
| "When sending the position to the daemon, the author's URI is also " |
| "transmitted." |
| msgstr "" |
| "Όταν στέλνετε τη θέση στο δαίμονα, μεταδίδεται και το URI του συγγραφέα." |
| |
| #: ../../../developer/location-sharing.md:76 |
| msgid "" |
| "When the user stops sharing their position with a conversation, the " |
| "conversation's ID is simply removed from the `positionShareConvIds_` list. A" |
| " \"stop\" message is also sent to each participant." |
| msgstr "" |
| "Όταν ο χρήστης σταματά να μοιράζεται τη θέση του με μια συζήτηση, το ID της " |
| "συζήτησης απλά αφαιρείται από τη λίστα `positionShareConvIds_`." |
| |
| #: ../../../developer/location-sharing.md:80 |
| msgid "" |
| "When a position is received, it triggers the 'onPositionReceived()' slot. " |
| "Whether it is a local position from the `QtPositioning` module or a position" |
| " from another contact. At the `positionManager` level, the " |
| "`objectListSharingUris_` list stores all of the client's positions. The " |
| "position is either:" |
| msgstr "" |
| "Όταν λαμβάνεται μια θέση, ενεργοποιείται η θέση \"onPositionReceived() \". " |
| "Είτε πρόκειται για μια τοπική θέση από το `QtPositioning` module είτε για " |
| "μια θέση από άλλο άμεσο. Στο επίπεδο `positionManager`, η λίστα " |
| "`objectListSharingUris_` αποθηκεύει όλες τις θέσεις του πελάτη." |
| |
| #: ../../../developer/location-sharing.md:83 |
| msgid "Added (the URI is not present in the list)" |
| msgstr "Προσθήκη (το URI δεν περιλαμβάνεται στον κατάλογο)" |
| |
| #: ../../../developer/location-sharing.md:84 |
| msgid "Updated (the URI is already present in the list)" |
| msgstr "Ενημερωμένο (το URI είναι ήδη διαθέσιμο στον κατάλογο)" |
| |
| #: ../../../developer/location-sharing.md:85 |
| msgid "Deleted (type = \"Stop\")" |
| msgstr "Διαγραφή (τύπος = \"Σταμάτιση\")" |
| |
| #: ../../../developer/location-sharing.md:87 |
| msgid "" |
| "The position is stored in the list in the form of an object of type " |
| "`positionObject`. This type allows for a watchdog for each position. If the " |
| "position is not updated within a certain time frame, it is removed from the " |
| "list." |
| msgstr "" |
| "Η θέση αποθηκεύεται στον κατάλογο με τη μορφή αντικειμένου τύπου " |
| "`positionObject`." |
| |
| #: ../../../developer/location-sharing.md:91 |
| msgid "" |
| "When a position is received (slot `onPositionReceived()` triggered), the " |
| "position is transmitted to Qml which in turn sends the information to the " |
| "[OpenLayers](https://openlayers.org/) JavaScript library. The Qt `WebEngine`" |
| " module allows for the bridge between the library's web technology and Qml. " |
| "Each position is represented by a layer added to the map. The " |
| "`newPosition()` function adds a new layer, the `updatePosition()` function " |
| "updates the coordinates of the layer, and the `removePosition()` function " |
| "removes the layer." |
| msgstr "" |
| "Όταν λαμβάνεται μια θέση (slot `onPositionReceived() ` ενεργοποιείται), η " |
| "θέση μεταδίδεται στο Qml η οποία με τη σειρά της στέλνει τις πληροφορίες " |
| "στην βιβλιοθήκη JavaScript." |
| |
| #: ../../../developer/message-displayed-status.md:1 |
| msgid "Message displayed status" |
| msgstr "Κατάσταση που εμφανίζεται το μήνυμα" |
| |
| #: ../../../developer/message-displayed-status.md:4 |
| msgid "" |
| "Every client generally must be able to show what peer read what message and " |
| "get how many unread messages there is." |
| msgstr "" |
| "Κάθε πελάτης πρέπει γενικά να είναι σε θέση να δείξει ποιοι συνάδελφοί " |
| "διαβάζουν ποιο μήνυμα και να πάρει πόσα αδιαβασμένα μηνύματα υπάρχουν." |
| |
| #: ../../../developer/message-displayed-status.md:6 |
| msgid "For this, the daemon provides some APIs:" |
| msgstr "Για αυτό, ο δαίμονας παρέχει μερικές API:" |
| |
| #: ../../../developer/message-displayed-status.md:8 |
| msgid "Set a message displayed" |
| msgstr "Εποστήστε ένα μήνυμα που εμφανίζεται" |
| |
| #: ../../../developer/message-displayed-status.md:10 |
| msgid "The Configuration manager provides:" |
| msgstr "Ο διαχειριστής διαμόρφωσης παρέχει:" |
| |
| #: ../../../developer/message-displayed-status.md:46 |
| msgid "" |
| "to set a message as displayed. Should be done when the interaction is shown " |
| "and the conversation selected." |
| msgstr "" |
| "Πρέπει να γίνει όταν εμφανίζεται η αλληλεπίδραση και επιλέγεται η συζήτηση." |
| |
| #: ../../../developer/message-displayed-status.md:48 |
| msgid "" |
| "This sends a SIP messages to connected peers with the following format:" |
| msgstr "" |
| "Αυτό στέλνει μηνύματα SIP σε συνδεδεμένους ομοτίμους με την ακόλουθη μορφή:" |
| |
| #: ../../../developer/message-displayed-status.md:66 |
| msgid "" |
| "Then the peer will know this via `onMessageDisplayed` and emit a signal to " |
| "the client (`libjami::ConfigurationSignal::AccountMessageStatusChanged` with" |
| " status 3 (`libjami::Account::MessageStates::DISPLAYED`))" |
| msgstr "" |
| "Στη συνέχεια, ο συνάδελφος θα το γνωρίζει μέσω του `onMessageDisplayed` και " |
| "θα εκπέμπει ένα σήμα στον πελάτη " |
| "(`libjami::ConfigurationSignal::AccountMessageStatusChanged` με κατάσταση 3 " |
| "(`libjami::Account::MessageStates::DISPLAYED`))" |
| |
| #: ../../../developer/message-displayed-status.md:68 |
| msgid "Get unread messages" |
| msgstr "Να λαμβάνεις μη διαβάζοντα μηνύματα" |
| |
| #: ../../../developer/message-displayed-status.md:70 |
| msgid "" |
| "By knowing the lastDisplayedMessage for our account, we can use this " |
| "informations and `ConfigrationManager::countInteractionsSince` which count " |
| "interaction since last message to a given message (typically last displayed " |
| "interaction)" |
| msgstr "" |
| "Γνωρίζοντας το τελευταίοDisplayedMessage για το λογαριασμό μας, μπορούμε να " |
| "χρησιμοποιήσουμε αυτές τις πληροφορίες και " |
| "`ConfigrationManager::countInteractionsSince` που μετράνε την αλληλεπίδραση " |
| "από το τελευταίο μήνυμα σε ένα δεδομένο μήνυμα (συνήθως η τελευταία " |
| "αλληλεπίδραση που εμφανίζεται)" |
| |
| #: ../../../developer/message-displayed-status.md:72 |
| msgid "" |
| "To get last displayed message for a member, in " |
| "`Configuration::getConversationMembers` each member will have the last " |
| "displayed interaction available via `memberInfo[\"lastDisplayed\"]`" |
| msgstr "" |
| "Για να εμφανιστεί τελευταία αγγελία για ένα μέλος, στο " |
| "`Συσταθμό::getConversationMembers` κάθε μέλος θα έχει την τελευταία " |
| "εμφανισμένη αλληλεπίδραση διαθέσιμη μέσω `memberInfo[\"lastDisplayed\"]`" |
| |
| #: ../../../developer/message-displayed-status.md:74 |
| msgid "How this information is stored" |
| msgstr "Πώς αποθηκεύονται οι πληροφορίες αυτές" |
| |
| #: ../../../developer/message-displayed-status.md:76 |
| msgid "" |
| "In `src/jamidht/conversation.cpp` each conversation store the last displayed" |
| " messages in a map<string, string> (uri, interactionId) and this structure " |
| "is serialized in " |
| "`fileutils::get_data_dir()/getAccountID()/conversation_data/repository_->id()/lastDisplayed`" |
| msgstr "" |
| "Στο `src/jamidht/conversation.cpp` κάθε συζήτηση αποθηκεύει τα τελευταία " |
| "εμφανισμένα μηνύματα σε έναν χάρτη<string, string> (uri, interactionId) και " |
| "αυτή η δομή είναι σερριεσμένη σε " |
| "`fileutils::get_data_dir()/getAccountID()/conversation_data/repository_->id()/lastDisplayed`" |
| |
| #: ../../../developer/name-server-protocol.md:1 |
| msgid "Name Server protocol" |
| msgstr "Όνομα Προγραμματισμός του Server" |
| |
| #: ../../../developer/name-server-protocol.md:4 |
| msgid "" |
| "The protocol used by Jami to query and register a name is based on an HTTP " |
| "[REST](https://en.wikipedia.org/wiki/Representational_state_transfer) API " |
| "answering requests with JSON documents and regular HTTP status codes." |
| msgstr "" |
| "Το πρωτόκολλο που χρησιμοποιείται από τον Jami για να αναζητήσει και να " |
| "καταχωρήσει ένα όνομα βασίζεται σε HTTP [REST] " |
| "(https://en.wikipedia.org/wiki/Representational_state_transfer) API που " |
| "απαντά σε αιτήματα με έγγραφα JSON και κανονικούς κώδικες HTTP." |
| |
| #: ../../../developer/name-server-protocol.md:10 |
| msgid "" |
| "The public nameserver is hosted at `ns.jami.net` and uses a blockchain as " |
| "its backend. Another implementation could use any other database or " |
| "directory service making the nameserver protocol reusable." |
| msgstr "" |
| "Ο δημόσιος διακομιστής ονομάτων φιλοξενείται στο `ns.jami.net` και " |
| "χρησιμοποιεί ένα blockchain ως backend." |
| |
| #: ../../../developer/name-server-protocol.md:14 |
| msgid "" |
| "If you run your own nameserver, looking up a username in the form of " |
| "`username@example.com` will look up the name `username` with the nameserver " |
| "at `example.com`. (There is no need to add `@ns.jami.net` to use the " |
| "default nameserver.)" |
| msgstr "" |
| "Εάν εκτελείτε τον δικό σας Nameserver, αναζητώντας ένα όνομα χρήστη με τη " |
| "μορφή `username@example.com` θα αναζητήσει το όνομα `username` με το όνομα " |
| "του server στο `example.com`. (Δεν χρειάζεται να προσθέσετε `@ns.jami.net` " |
| "για να χρησιμοποιήσετε τον προεπιλεγμένο Nameserver)." |
| |
| #: ../../../developer/name-server-protocol.md:19 |
| msgid "Rules on name formatting" |
| msgstr "Κανόνες για τη διαμόρφωση ονομάτων" |
| |
| #: ../../../developer/name-server-protocol.md:22 |
| msgid "" |
| "Usernames are checked by a regex to ensure some rules about their format:" |
| msgstr "" |
| "Τα ονόματα χρήστη ελέγχονται από έναν regex για να εξασφαλίσουν ορισμένους " |
| "κανόνες σχετικά με τη μορφή τους:" |
| |
| #: ../../../developer/name-server-protocol.md:25 |
| msgid "Length must be between 3 and 32 characters" |
| msgstr "Το μήκος πρέπει να είναι μεταξύ 3 και 32 χαρακτήρων" |
| |
| #: ../../../developer/name-server-protocol.md:26 |
| msgid "" |
| "Those characters must be alphanumerical with dashes `-` being also accepted." |
| msgstr "" |
| |
| #: ../../../developer/name-server-protocol.md:29 |
| msgid "Querying a name" |
| msgstr "Αναζητώντας ένα όνομα" |
| |
| #: ../../../developer/name-server-protocol.md:32 |
| msgid "" |
| "This is the main service provided by a name server. It enables getting the " |
| "Jami ID corresponding to a username." |
| msgstr "" |
| "Αυτή είναι η κύρια υπηρεσία που παρέχεται από έναν διακομιστή ονομάτων." |
| |
| #: ../../../developer/name-server-protocol.md:35 |
| #: ../../../developer/name-server-protocol.md:83 |
| #: ../../../developer/name-server-protocol.md:131 |
| msgid "Request" |
| msgstr "Επαίτηση" |
| |
| #: ../../../developer/name-server-protocol.md:37 |
| msgid "" |
| "A request for the name `foobar` is a `GET` request with `/name/`*`foobar`* " |
| "as the URI." |
| msgstr "" |
| "Ένα αίτημα για το όνομα `foobar` είναι ένα `GET` αίτημα με " |
| "`/name/`*`foobar`* ως URI." |
| |
| #: ../../../developer/name-server-protocol.md:40 |
| #: ../../../developer/name-server-protocol.md:89 |
| #: ../../../developer/name-server-protocol.md:150 |
| msgid "Response (Success)" |
| msgstr "Απάντηση (Εκτυχία)" |
| |
| #: ../../../developer/name-server-protocol.md:42 |
| msgid "" |
| "If the name is found, a response with status code `200` `OK` must be sent to" |
| " the client with a `Content-type` field set as `application/json`." |
| msgstr "" |
| "Εάν βρεθεί το όνομα, μια απάντηση με κωδικό κατάστασης `200` `OK` πρέπει να " |
| "αποσταλεί στον πελάτη με ένα πεδίο τύπου περιεχομένου `` ορίζεται ως " |
| "`application/json`." |
| |
| #: ../../../developer/name-server-protocol.md:46 |
| msgid "" |
| "The body is a JSON documents with 2 string attributes : `name` and `addr`. " |
| "`name` is equal to the one requested and `addr` is an hexadecimal " |
| "representation of the Jami ID prefixed with `0x`." |
| msgstr "" |
| "Το σώμα είναι ένα έγγραφο JSON με 2 συρματολογικά χαρακτηριστικά: `name` και" |
| " `addr`. `name` ισούται με το ζητούμενο και `addr` είναι μια έξιδεκασιακή " |
| "αναπαράσταση του ID Jami προεπισημμένο με `0x`." |
| |
| #: ../../../developer/name-server-protocol.md:50 |
| #: ../../../developer/name-server-protocol.md:98 |
| msgid "In our example, the JSON answer would be:" |
| msgstr "Στο παράδειγμα μας, η απάντηση JSON θα ήταν:" |
| |
| #: ../../../developer/name-server-protocol.md:59 |
| #: ../../../developer/name-server-protocol.md:106 |
| msgid "Response (Not found)" |
| msgstr "Απάντηση (Δεν βρέθηκε)" |
| |
| #: ../../../developer/name-server-protocol.md:61 |
| msgid "" |
| "If the name is not found, a response with status code `404` `Not` `Found` " |
| "must be sent to the client with a `Content-type` field set as " |
| "`application/json`." |
| msgstr "" |
| "Εάν δεν βρεθεί το όνομα, μια απάντηση με κωδικό κατάστασης `404` `Not` " |
| "`Found` πρέπει να αποσταλεί στον πελάτη με ένα πεδίο τύπου περιεχομένου `` " |
| "ορίζεται ως `application/json`." |
| |
| #: ../../../developer/name-server-protocol.md:65 |
| #: ../../../developer/name-server-protocol.md:112 |
| msgid "" |
| "The body is a JSON documents with 1 string attribute : `error`. This " |
| "attribute is filled with an error message that explains the error (and could" |
| " be displayed in the client in the future)." |
| msgstr "" |
| "Το σώμα είναι ένα έγγραφο JSON με 1 συρματολογικό χαρακτηριστικό: `error`. " |
| "Αυτό το χαρακτηριστικό γεμίζεται με ένα μήνυμα σφάλματος που εξηγεί το " |
| "σφάλμα (και θα μπορούσε να εμφανιστεί στο πελάτη στο μέλλον)." |
| |
| #: ../../../developer/name-server-protocol.md:69 |
| #: ../../../developer/name-server-protocol.md:116 |
| msgid "On the reference implementation, the returned document is:" |
| msgstr "Για την εφαρμογή αναφοράς, το επιστροφικό έγγραφο είναι:" |
| |
| #: ../../../developer/name-server-protocol.md:77 |
| msgid "Querying an address" |
| msgstr "Αναζήτηση διεύθυνσης" |
| |
| #: ../../../developer/name-server-protocol.md:80 |
| msgid "" |
| "This service is a reverse lookup. You query for an address and a username " |
| "is returned if one is registered on the name server." |
| msgstr "" |
| "Αυτή η υπηρεσία είναι μια αναδρομική αναζήτηση. Αναζητάς μια διεύθυνση και " |
| "ένα όνομα χρήστη επιστρέφεται αν ένα είναι εγγεγραμμένο στον διακομιστή " |
| "ονομάτων." |
| |
| #: ../../../developer/name-server-protocol.md:85 |
| msgid "" |
| "A request for the ID `jami:29347542eb07159f316577e1ae16243d152f6b7b` is a " |
| "`GET` request with `/addr/`*`29347542eb07159f316577e1ae16243d152f6b7b`* as " |
| "the URI." |
| msgstr "" |
| "Η αίτηση για το ID `jami:29347542eb07159f316577e1ae16243d152f6b7b` είναι μια" |
| " αίτηση `GET` με `/addr/`*`29347542eb07159f316577e1ae16243d152f6b7b`* ως " |
| "URI." |
| |
| #: ../../../developer/name-server-protocol.md:91 |
| msgid "" |
| "If the address corresponds to a username, a response with status code `200` " |
| "`OK` must be sent to the client with a `Content-type` field set as " |
| "`application/json`." |
| msgstr "" |
| "Εάν η διεύθυνση αντιστοιχεί σε όνομα χρήστη, μια απάντηση με κωδικό " |
| "κατάστασης `200` `OK` πρέπει να αποσταλεί στον πελάτη με ένα πεδίο τύπου " |
| "περιεχομένου ` ` ο οποίος ορίζεται ως `application/json`." |
| |
| #: ../../../developer/name-server-protocol.md:95 |
| msgid "" |
| "The body is a JSON documents with 1 string attribute : `name`. The value of" |
| " this field is the name registered to this address" |
| msgstr "" |
| "Το σώμα είναι ένα έγγραφο JSON με 1 συρματολογικό χαρακτηριστικό: `name`. Η " |
| "τιμή αυτού του πεδίου είναι το όνομα που έχει καταχωριστεί σε αυτή τη " |
| "διεύθυνση" |
| |
| #: ../../../developer/name-server-protocol.md:108 |
| msgid "" |
| "If the address is not found, a response with status code `404` `Not` `Found`" |
| " must be sent to the client with a `Content-type` field set as " |
| "`application/json`." |
| msgstr "" |
| "Εάν η διεύθυνση δεν βρεθεί, μια απάντηση με κωδικό κατάστασης `404` `Not` " |
| "`Found` πρέπει να αποσταλεί στον πελάτη με ένα πεδίο τύπου περιεχομένου `` ο" |
| " οποίος ορίζεται ως `application/json`." |
| |
| #: ../../../developer/name-server-protocol.md:124 |
| msgid "Registering a name" |
| msgstr "Καταχώριση ονόματος" |
| |
| #: ../../../developer/name-server-protocol.md:127 |
| msgid "" |
| "This part of the protocol is used to register a new name/address pair. It is" |
| " used on the main public registry but may be optional in a custom " |
| "implementation." |
| msgstr "" |
| "Αυτό το μέρος του πρωτοκόλλου χρησιμοποιείται για την καταχώριση ενός νέου " |
| "ζεύγους ονόματος/εύθυνσης." |
| |
| #: ../../../developer/name-server-protocol.md:133 |
| msgid "" |
| "A request for registering the name `foobar` is a `POST` request with " |
| "`/name/`*`foobar`* as the URI. The header attribute `Content-type` must be " |
| "set to `application/json`." |
| msgstr "" |
| "Η αίτηση καταχώρισης του ονόματος `foobar` είναι μια αίτηση `POST` με " |
| "`/name/`*`foobar`* ως URI." |
| |
| #: ../../../developer/name-server-protocol.md:137 |
| msgid "" |
| "The body of the request is a JSON document with 2 string attributes: `addr` " |
| "and `owner`. `addr` contains the Jami ID prefixed with `0x` and `owner` is " |
| "the name to be registered." |
| msgstr "" |
| "Το σώμα του αιτήματος είναι ένα έγγραφο JSON με 2 συρματολογικά " |
| "χαρακτηριστικά: `addr` και `owner`. `addr` περιέχει το ID Jami προθεσμία με " |
| "`0x` και `owner` είναι το όνομα που πρέπει να καταχωρηθεί." |
| |
| #: ../../../developer/name-server-protocol.md:141 |
| msgid "An example for `foobar` could be:" |
| msgstr "Ένα παράδειγμα για `foobar` θα μπορούσε να είναι:" |
| |
| #: ../../../developer/name-server-protocol.md:152 |
| msgid "" |
| "If the name/address pair is successfully registered, a response with status " |
| "code `200` `OK` must be sent to the client with a `Content-type` field set " |
| "as `application/json`." |
| msgstr "" |
| "Εάν το ζεύγος ονομασίας/εύθυνσης καταχωρηθεί με επιτυχία, η απάντηση με " |
| "κωδικό κατάστασης `200` `OK` πρέπει να αποσταλεί στον πελάτη με ένα πεδίο " |
| "τύπου περιεχομένου ` ` ο οποίος ορίζεται ως `application/json`." |
| |
| #: ../../../developer/name-server-protocol.md:156 |
| msgid "" |
| "The body contain a JSON document with 1 boolean attribute `success` set to " |
| "`true`." |
| msgstr "" |
| "Το σώμα περιέχει ένα έγγραφο JSON με 1 χαρακτηριστικό boolean `success` που " |
| "ορίζεται σε `true`." |
| |
| #: ../../../developer/name-server-protocol.md:159 |
| msgid "As an example:" |
| msgstr "Για παράδειγμα:" |
| |
| #: ../../../developer/name-server-protocol.md:167 |
| msgid "" |
| "Further attempts to query the name or the address should then be successful." |
| msgstr "" |
| "Οι περαιτέρω προσπάθειες να αναζητηθεί το όνομα ή η διεύθυνση θα πρέπει να " |
| "είναι επιτυχείς." |
| |
| #: ../../../developer/name-server-protocol.md:170 |
| msgid "Response (Bad request)" |
| msgstr "Απάντηση (κακό αίτημα)" |
| |
| #: ../../../developer/name-server-protocol.md:172 |
| msgid "" |
| "If the registration cannot be achieved because of an error in the request " |
| "(formatting, missing attribute, etc.), a response with status code `400` " |
| "`Bad` `Request` must be sent to the client with a `Content-type` field set " |
| "as `application/json`." |
| msgstr "" |
| "Εάν η εγγραφή δεν μπορεί να επιτευχθεί λόγω σφάλματος στο αίτημα " |
| "(διαμόρφωση, απουσία χαρακτηριστικού κλπ.), η απάντηση με κωδικό κατάστασης " |
| "`400` `Bad` `Request` πρέπει να αποσταλεί στον πελάτη με ένα πεδίο τύπου " |
| "περιεχομένου` ορίζεται ως `application/json`." |
| |
| #: ../../../developer/name-server-protocol.md:177 |
| msgid "" |
| "The body is a JSON documents with 2 attributes: `success` which is a boolean" |
| " and `error` which is a string. `success` is set to `false` and `error` is " |
| "filled with an error message that explains the error (and could be displayed" |
| " in the client in the future)." |
| msgstr "" |
| "Το σώμα είναι ένα έγγραφο JSON με 2 χαρακτηριστικά: `success` που είναι μια " |
| "μπολ και `error` που είναι μια σειρά. `success` είναι ρυθμισμένο σε `false` " |
| "και `error` είναι γεμάτο με ένα μήνυμα σφάλματος που εξηγεί το σφάλμα (και " |
| "θα μπορούσε να εμφανιστεί στον πελάτη στο μέλλον)." |
| |
| #: ../../../developer/name-server-protocol.md:182 |
| msgid "For an invalid formatting of the username, the body could be:" |
| msgstr "Για άκυρη μορφοποίηση του ονόματος χρήστη, το σώμα μπορεί να είναι:" |
| |
| #: ../../../developer/name-server-protocol.md:191 |
| msgid "Response (Forbidden)" |
| msgstr "Απάντηση (απαγορεύεται)" |
| |
| #: ../../../developer/name-server-protocol.md:193 |
| msgid "" |
| "If the registration cannot be achieved because the name is already taken, a " |
| "response with status code `403` `Forbidden` must be sent to the client with " |
| "a `Content-type` field set as `application/json`." |
| msgstr "" |
| "Εάν η εγγραφή δεν μπορεί να επιτευχθεί επειδή το όνομα έχει ήδη ληφθεί, " |
| "πρέπει να αποσταλεί στην πελάτη μια απάντηση με κωδικό κατάστασης `403` " |
| "`Forbidden` με ένα πεδίο τύπου περιεχομένου ` οριζόμενο ως " |
| "`application/json`." |
| |
| #: ../../../developer/name-server-protocol.md:197 |
| msgid "" |
| "The body is a JSON documents with 3 attributes: `success` which is a boolean" |
| " set to `false`, `name` and `addr` which are both strings replicated from " |
| "the original request." |
| msgstr "" |
| "Το σώμα είναι ένα έγγραφο JSON με 3 χαρακτηριστικά: `success`, το οποίο " |
| "είναι ένα σύνολο boolean σε `false`, `name` και `addr`, τα οποία είναι και " |
| "τα δύο συρματολόγια που αναπαράγονται από το αρχικό αίτημα." |
| |
| #: ../../../developer/name-server-protocol.md:201 |
| msgid "" |
| "Registering `foobar`, with it being already registered, would lead to the " |
| "following response:" |
| msgstr "" |
| "Η καταχώριση `foobar`, εφόσον έχει ήδη καταχωρηθεί, θα οδηγούσε στην " |
| "ακόλουθη απάντηση:" |
| |
| #: ../../../developer/name-server-protocol.md:212 |
| msgid "Some links" |
| msgstr "Μερικά συνδέσμους" |
| |
| #: ../../../developer/name-server-protocol.md:215 |
| msgid "" |
| "{gitlab-project}`jami-nameservice`: reference NodeJS implementation used by " |
| "`ns.jami.net` and querying an Ethereum node." |
| msgstr "" |
| "{gitlab-project}`jami-nameservice`: αναφορά NodeJS εφαρμογή που " |
| "χρησιμοποιείται από `ns.jami.net` και αναζήτηση ενός κόμβου Ethereum." |
| |
| #: ../../../developer/protocol.md:1 ../../../developer/swarm.md:401 |
| msgid "Protocol" |
| msgstr "Πρωτοκόλλιο" |
| |
| #: ../../../developer/protocol.md:4 |
| msgid "Jami account creation" |
| msgstr "" |
| |
| #: ../../../developer/protocol.md:7 |
| msgid "" |
| "A **Jami account** is defined by an **RSA key pair** with a key length of at" |
| " least 4096 bits." |
| msgstr "" |
| |
| #: ../../../developer/protocol.md:10 |
| msgid "" |
| "The standard x509 160-bits fingerprint of the account public key is called " |
| "the **RingID**." |
| msgstr "" |
| "Το τυποποιημένο x509 160-bit δακτυλικό αποτύπωμα του δημόσιου κλειδιού του " |
| "λογαριασμού ονομάζεται RINGID." |
| |
| #: ../../../developer/protocol.md:13 |
| msgid "" |
| "The account public key is used as the subject of an x509 certificate that " |
| "must be valid, have the Certificate Authority flag set, and can be self-" |
| "signed. This certificate is called the **Jami account certificate**." |
| msgstr "" |
| |
| #: ../../../developer/protocol.md:18 |
| msgid "" |
| "The subject UID field of the account certificate must be the hexadecimal " |
| "form of the public key fingerprint. The issuer UID field must be the " |
| "hexadecimal form of the issuer public key fingerprint." |
| msgstr "" |
| "Το πεδίο UID του αντικειμένου του πιστοποιητικού λογαριασμού πρέπει να είναι" |
| " η εξιδεκασιακή μορφή του δακτυλικού αποτυπώματος του δημόσιου κλειδιού." |
| |
| #: ../../../developer/protocol.md:22 |
| msgid "Persisting the account" |
| msgstr "Συνεχίζοντας το λογαριασμό" |
| |
| #: ../../../developer/protocol.md:24 |
| msgid "" |
| "Persisting a Jami account private key and certificate is implementation " |
| "defined." |
| msgstr "" |
| |
| #: ../../../developer/protocol.md:27 |
| msgid "" |
| "Access to a saved Jami account private key must be authenticated and " |
| "authorized. Authentication and authorization method to access the account " |
| "private key is implementation defined." |
| msgstr "" |
| |
| #: ../../../developer/protocol.md:31 |
| msgid "Adding a device to a Jami account" |
| msgstr "" |
| |
| #: ../../../developer/protocol.md:33 |
| msgid "*See [RFC 5280](https://tools.ietf.org/html/rfc5280)*" |
| msgstr "*Βλέπε [RFC 5280]*https://tools.ietf.org/html/rfc5280)*" |
| |
| #: ../../../developer/protocol.md:35 |
| msgid "" |
| "A **device** is defined by an RSA key pair with a key length of at least " |
| "4096 bits." |
| msgstr "" |
| "Μια ** συσκευή** ορίζεται από ζεύγος κλειδιών RSA με μήκος κλειδιών " |
| "τουλάχιστον 4096 bits." |
| |
| #: ../../../developer/protocol.md:38 |
| msgid "" |
| "A **device certificate** is defined as an x509 certificate whose subject is " |
| "a device public key, signed with an account private key. The certificate " |
| "MUST be valid. The issuer UID field MUST be the hexadecimal form of the " |
| "account public key fingerprint." |
| msgstr "" |
| "Ένα πιστοποιητικό συσκευής ορίζεται ως πιστοποιητικό x509 το οποίο αποτελεί " |
| "αντικείμενο δημόσιου κλειδιού συσκευής, υπογεγραμμένο με ιδιωτικό κλειδί " |
| "λογαριασμού. Το πιστοποιητικό ΑΠΕΙΝΑ να είναι έγκυρο. Το πεδίο UID του " |
| "εκδότη ΑΠΕΙΝΑ να είναι η εξιδεκασιακή μορφή του δακτυλικού αποτυπώματος του " |
| "δημόσιου κλειδιού λογαριασμού." |
| |
| #: ../../../developer/protocol.md:43 |
| msgid "" |
| "Persisting a device private key and certificate is implementation defined. " |
| "Access to a saved device private key should be authenticated. Authentication" |
| " method to access the device private key is implementation defined." |
| msgstr "" |
| "Η παραμονή ενός ιδιωτικού κλειδιού και πιστοποιητικού συσκευής είναι η " |
| "εφαρμογή ορίζεται. Η πρόσβαση σε ένα αποθηκευμένο κλειδί ιδιωτικής κλειδιού " |
| "συσκευής πρέπει να είναι επαληθευμένη." |
| |
| #: ../../../developer/protocol.md:48 |
| msgid "Removing a device from a Jami account" |
| msgstr "" |
| |
| #: ../../../developer/protocol.md:50 |
| msgid "" |
| "A device can be \"removed\" from a Jami account through revocation of the " |
| "device certificate. Revoked device certificates are added to one or more " |
| "standard x509 Certificate Revocation List (CRL). CRLs for revoked device " |
| "must be valid and signed with the corresponding CA key, which is the Jami " |
| "account private key." |
| msgstr "" |
| |
| #: ../../../developer/protocol.md:56 |
| msgid "Account transmission format" |
| msgstr "Τμήμα μεταφοράς λογαριασμού" |
| |
| #: ../../../developer/protocol.md:58 |
| msgid "" |
| "The **account archive format** defines how to serialize an account private " |
| "key for transmission, for instance to sign a new device certificate." |
| msgstr "" |
| "Η μορφή αρχείου λογαριασμού** καθορίζει τον τρόπο κατά τον οποίο μπορεί να " |
| "παραδοθεί ένα ιδιωτικό κλειδί λογαριασμού για μετάδοση, για παράδειγμα για " |
| "την υπογραφή ενός πιστοποιητικού νέας συσκευής." |
| |
| #: ../../../developer/protocol.md:62 |
| msgid "" |
| "The account archive is an encrypted JSON object with the following " |
| "structure:" |
| msgstr "" |
| "Το αρχείο λογαριασμού είναι ένα κρυπτογραφημένο αντικείμενο JSON με την " |
| "ακόλουθη δομή:" |
| |
| #: ../../../developer/protocol.md:73 |
| msgid "" |
| "The JSON object can contain additional implementation-defined key-value " |
| "pairs. Implementation-defined key names shouldn't start with \"ring\"." |
| msgstr "" |
| "Το αντικείμενο JSON μπορεί να περιέχει επιπλέον ζεύγη τιμών κλειδιών που " |
| "καθορίζονται από την εφαρμογή." |
| |
| #: ../../../developer/protocol.md:76 |
| msgid "The string JSON object is encrypted using a key defined as :" |
| msgstr "" |
| "Το αντικείμενο JSON συρράκτη κρυπτογραφηθεί χρησιμοποιώντας ένα κλειδί που " |
| "ορίζεται ως:" |
| |
| #: ../../../developer/protocol.md:83 |
| msgid "" |
| "Where PIN is a random 32bits number in hexadecimal form, \"+\" is string " |
| "concatenation, timestamp is the current UNIX timestamp divided by 1200 (20 " |
| "minutes) and password is a user-chosen password." |
| msgstr "" |
| "Όταν το PIN είναι τυχαίο αριθμός 32bit σε εξιδεκασιακή μορφή, \"+\" είναι " |
| "συνδεδεμένη σειρά, το timestamp είναι το τρέχον timestamp UNIX διαιρεμένο με" |
| " 1200 (20 λεπτά) και το κωδικό πρόσβασης είναι ένα κωδικό πρόσβασης που " |
| "επιλέγει ο χρήστης." |
| |
| #: ../../../developer/protocol.md:87 |
| msgid "" |
| "The PIN should be shown to the user to be copied manually on the new " |
| "physical device along with the password." |
| msgstr "" |
| "Το PIN πρέπει να εμφανίζεται στον χρήστη για να αντιγραφεί με το χέρι στην " |
| "νέα φυσική συσκευή μαζί με το κωδικό πρόσβασης." |
| |
| #: ../../../developer/protocol.md:90 |
| msgid "Contacting another account" |
| msgstr "Επικοινωνία με άλλο λογαριασμό" |
| |
| #: ../../../developer/protocol.md:93 |
| msgid "ICE descriptor exchange over OpenDHT" |
| msgstr "Ανταλλαγή περιγραφών ICE σε OpenDHT" |
| |
| #: ../../../developer/protocol.md:95 |
| msgid "**Listening for incoming calls**" |
| msgstr "**Ακούστε τις εισερχόμενες κλήσεις**" |
| |
| #: ../../../developer/protocol.md:97 |
| msgid "" |
| "A device listens for incoming call by performing a listen OpenDHT operation " |
| "on" |
| msgstr "" |
| "Μια συσκευή ακούει για εισερχόμενη κλήση εκτελώντας μια λειτουργία OpenDHT " |
| "ακουστικής σε" |
| |
| #: ../../../developer/protocol.md:100 |
| msgid "`h(\"callto\"+deviceID)`" |
| msgstr "`h(\"κλήση\"+έγκριση ID) `" |
| |
| #: ../../../developer/protocol.md:102 |
| msgid "" |
| "where h is SHA1, \"+\" is the string concatenation and deviceID is the " |
| "hexadecimal form of the deviceID." |
| msgstr "" |
| "όπου h είναι SHA1, \"+\" είναι η συνδεδεμένη σειρά και το deviceID είναι η " |
| "εξιδεκατη μορφή του deviceID." |
| |
| #: ../../../developer/protocol.md:105 |
| msgid "" |
| "Received OpenDHT values that are not encrypted or not properly signed must " |
| "be dropped. The value must be encrypted with the called device public key " |
| "and signed with the calling device private key according to OpenDHT " |
| "specifications." |
| msgstr "" |
| "Οι παραλαβμένες τιμές OpenDHT που δεν είναι κρυπτογραφημένες ή δεν " |
| "υπογράφονται σωστά πρέπει να αφαιρούνται." |
| |
| #: ../../../developer/protocol.md:110 |
| msgid "**Sending the Initial Offer**" |
| msgstr "**Επισάγει την αρχική προσφορά**" |
| |
| #: ../../../developer/protocol.md:112 |
| msgid "*See [RFC 5245](https://tools.ietf.org/html/rfc5245)*" |
| msgstr "*Βλέπε [RFC 5245]*https://tools.ietf.org/html/rfc5245)*" |
| |
| #: ../../../developer/protocol.md:114 |
| msgid "" |
| "RFC 5245 defines ICE (Interactive Connectivity Establishment), a protocol " |
| "for NAT traversal." |
| msgstr "" |
| "Η RFC 5245 ορίζει το ICE (Interactive Connectivity Establishment), ένα " |
| "πρωτόκολλο για την διέλευση NAT." |
| |
| #: ../../../developer/protocol.md:117 |
| #: ../../../developer/technical-overview.md:173 |
| msgid "" |
| "ICE is used in Jami to establish a peer-to-peer communication between two " |
| "devices." |
| msgstr "" |
| "Το ICE χρησιμοποιείται στο Τζάμι για να δημιουργήσει μια επικοινωνία μεταξύ " |
| "δύο συσκευών." |
| |
| #: ../../../developer/protocol.md:120 |
| msgid "" |
| "The calling device gathers candidates and build an Initial Offer according " |
| "to the ICE specifications and starts the ICE negotiation process." |
| msgstr "" |
| "Η συσκευή κλήσης συγκεντρώνει υποψηφίους και δημιουργεί αρχική προσφορά " |
| "σύμφωνα με τις προδιαγραφές της ICE και ξεκινά τη διαδικασία διαπραγμάτευσης" |
| " της ICE." |
| |
| #: ../../../developer/protocol.md:124 |
| msgid "" |
| "The calling device puts the encrypted ICE offer (the Initial Offer) on the " |
| "DHT at h(\"callto\"+deviceID) where deviceID is the hexadecimal form of the " |
| "called deviceID." |
| msgstr "" |
| "Η συσκευή κλήσης αναθέτει την κρυπτογραφημένη προσφορά ICE (η αρχική " |
| "προσφορά) στο DHT στο h(\"callto\"+deviceID) όπου το deviceID είναι η " |
| "εξιδεκασιακή μορφή του καλούμενου deviceID." |
| |
| #: ../../../developer/protocol.md:128 |
| msgid "**ICE serialization format**" |
| msgstr "**Σύμφωνα με την ISO/IEC" |
| |
| #: ../../../developer/protocol.md:130 |
| msgid "" |
| "ICE messages exchanged between peers during a call setup use following " |
| "format. An ICE message is a chunk of binary data, following " |
| "[msgpack](http://msgpack.org/) data format." |
| msgstr "" |
| "Τα μηνύματα ICE που ανταλλάσσονται μεταξύ ομοτίμων κατά τη διάρκεια μιας " |
| "κλήσης χρησιμοποιούν τη μορφή που ακολουθεί." |
| |
| #: ../../../developer/protocol.md:134 |
| msgid "" |
| "This protocol is a compound of msgpack values, successively packed in this " |
| "order:" |
| msgstr "" |
| "Αυτό το πρωτόκολλο είναι μια σύνθεση των τιμών msgpack, που συσκευάζονται " |
| "διαδοχικά με αυτή την σειρά:" |
| |
| #: ../../../developer/protocol.md:138 |
| msgid "" |
| "an integer giving the version of ICE message format protocol used for the " |
| "rest of the data. Current defined protocol version is **1**." |
| msgstr "" |
| "Ένα ακέραιο αριθμό που δίνει την έκδοση του πρωτοκόλλου ICE που " |
| "χρησιμοποιείται για τα υπόλοιπα δεδομένα." |
| |
| #: ../../../developer/protocol.md:139 |
| msgid "" |
| "a 2-elements array of strings of the ICE local session ufrag and the ICE " |
| "local session password" |
| msgstr "" |
| "μια σειρά από 2 στοιχεία συρμάτων της τοπικής συνεδρίασης ICE ufrag και του " |
| "κωδικού πρόσβασης της τοπικής συνεδρίασης ICE" |
| |
| #: ../../../developer/protocol.md:140 |
| msgid "an integer giving the number of components in the ICE session" |
| msgstr "Ο αριθμός των στοιχείων που περιλαμβάνονται στην συνεδρίαση ICE" |
| |
| #: ../../../developer/protocol.md:141 |
| msgid "" |
| "an array of string, of the previous number entries, where each string " |
| "describe the ICE candidate, formated as an \"a=\" line (without the \"a=\" " |
| "header) described in [rfc5245, section " |
| "4.3](https://tools.ietf.org/html/rfc5245#page-26)" |
| msgstr "" |
| "μια σειρά από συρράκια, των προηγούμενων αριθμητικών εγγραφών, όπου κάθε " |
| "συρράκια περιγράφει τον υποψήφιο ICE, μορφοποιημένη ως γραμμή \"a=\" (χωρίς " |
| "την επικεφαλίδα \"a=\") που περιγράφεται στο [rfc5245, τμήμα " |
| "4.3](https://tools.ietf.org/html/rfc5245#page-26)" |
| |
| #: ../../../developer/protocol.md:143 |
| msgid "**Sending the Answer**" |
| msgstr "**Επισάνοντας την απάντηση**" |
| |
| #: ../../../developer/protocol.md:145 |
| msgid "" |
| "Upon reception of the encrypted and signed Initial ICE Offer (through the " |
| "listen operation), a called device should perform authorization checks of " |
| "the calling device, identified as the Initial Offer signer. Authorization " |
| "rules are implementation defined, but a typical implementation would " |
| "authorize known or trusted contacts." |
| msgstr "" |
| "Μετά την παραλαβή της κρυπτογραφημένης και υπογεγραμμένης αρχικής προσφοράς " |
| "ICE (μέσω της λειτουργίας ακουστικής), μια καλούμενη συσκευή πρέπει να " |
| "εκτελεί ελέγχους εξουσιοδότησης της συσκευής κλήσης, που προσδιορίζεται ως " |
| "υπογράφων της αρχικής προσφοράς." |
| |
| #: ../../../developer/protocol.md:151 |
| #: ../../../developer/technical-overview.md:232 |
| msgid "" |
| "If the calling device is not authorized or if for any implementation defined" |
| " reason the called device refuses the incoming connection request, the " |
| "called device must ignore the Initial Offer and may log the event." |
| msgstr "" |
| "Εάν η συσκευή κλήσης δεν είναι εξουσιοδοτημένη ή εάν για ορισμένους λόγους " |
| "εφαρμογής η καλούμενη συσκευή αρνηθεί το αίτημα εισόδου σύνδεσης, η " |
| "καλούμενη συσκευή πρέπει να αγνοεί την αρχική προσφορά και μπορεί να " |
| "καταχωρήσει το γεγονός." |
| |
| #: ../../../developer/protocol.md:156 |
| #: ../../../developer/technical-overview.md:236 |
| msgid "" |
| "If the called device authorizes the caller and wish to accept the connection" |
| " it must build an ICE answer, start the ICE negotiation process and send the" |
| " encrypted and signed ICE answer at the same DHT key." |
| msgstr "" |
| "Εάν η καλούμενη συσκευή εξουσιοδοτεί τον καλούμενο και επιθυμεί να δεχθεί τη" |
| " σύνδεση, πρέπει να δημιουργήσει μια απάντηση ICE, να ξεκινήσει τη " |
| "διαδικασία διαπραγμάτευσης ICE και να στείλει την κρυπτογραφημένη και " |
| "υπογεγραμμένη απάντηση ICE στο ίδιο κλειδί DHT." |
| |
| #: ../../../developer/protocol.md:161 |
| #: ../../../developer/technical-overview.md:241 |
| msgid "DTLS negotiation" |
| msgstr "Διαπραγματεύσεις DTLS" |
| |
| #: ../../../developer/protocol.md:163 |
| msgid "" |
| "Once a peer-to-peer communication channel has been established, the called " |
| "device listens on it for incoming DTLS connections (acting as a DTLS server)" |
| " while the caller initiates an outgoing DTLS connection (acting as a DTLS " |
| "client)." |
| msgstr "" |
| "Μόλις δημιουργηθεί ένα κανάλι επικοινωνίας μεταξύ ατόμων, η καλούμενη " |
| "συσκευή ακούει για εισερχόμενες συνδέσεις DTLS (που λειτουργεί ως " |
| "διακομιστής DTLS), ενώ ο καλούμενος ξεκινά μια έξοδος σύνδεση DTLS (που " |
| "λειτουργεί ως πελάτης DTLS)." |
| |
| #: ../../../developer/protocol.md:168 |
| msgid "" |
| "The DTLS communication must be RFC6347 compliant " |
| "([1](https://tools.ietf.org/html/rfc6347))." |
| msgstr "" |
| "Η επικοινωνία DTLS πρέπει να είναι σύμφωνη με την RFC6347 " |
| "([1](https://tools.ietf.org/html/rfc6347))." |
| |
| #: ../../../developer/protocol.md:171 |
| msgid "" |
| "Peers must only support PFS cypher suites. The set of supported cypher " |
| "suites is implementation defined but should include at least ECDHE-AES-GCM " |
| "(TODO: specify the exact suites recommended to support)." |
| msgstr "" |
| "Οι συνάδελφοί πρέπει να υποστηρίζουν μόνο τις συνδυαστικές συνδυαστικές " |
| "συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές " |
| "συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές " |
| "συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές " |
| "συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές " |
| "συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές " |
| "συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές " |
| "συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές " |
| "συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές " |
| "συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές " |
| "συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές " |
| "συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές " |
| "συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές " |
| "συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές " |
| "συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές " |
| "συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές " |
| "συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές " |
| "συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές " |
| "συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές συνδυαστικές " |
| "συνδυαστικές συνδυαστικές συνδυαστικές συν." |
| |
| #: ../../../developer/protocol.md:175 |
| msgid "" |
| "During the DTLS handshake, both peers must provide their respective device " |
| "certificate chain and must authenticate the other peer, checking that its " |
| "public key is the same used during the DHT ICE exchange." |
| msgstr "" |
| "Κατά τη διάρκεια της χειραψίας DTLS, και οι δύο ομολόγοι πρέπει να παρέχουν " |
| "την αντίστοιχη αλυσίδα πιστοποιητικών συσκευής τους και πρέπει να " |
| "πιστοποιούν τον άλλο ομολόγο, ελέγχοντας ότι το δημόσιο κλειδί του είναι το " |
| "ίδιο που χρησιμοποιείται κατά τη διάρκεια της ανταλλαγής DHT ICE." |
| |
| #: ../../../developer/protocol.md:179 |
| msgid "SIP call" |
| msgstr "Επικοινωνία SIP" |
| |
| #: ../../../developer/protocol.md:181 |
| msgid "*See [Important\\_RFC](Important_RFC \"wikilink\")*" |
| msgstr "*Βλέπε [Important\\_RFC]" |
| |
| #: ../../../developer/protocol.md:183 |
| msgid "" |
| "Once an encrypted and authenticated peer-to-peer communication channel is " |
| "available, the SIP protocol [2](https://tools.ietf.org/html/rfc3261) must be" |
| " used to place a call and send messages. The caller might send a SIP INVITE " |
| "as soon as the DTLS channel is established." |
| msgstr "" |
| "Μόλις είναι διαθέσιμος ένας κρυπτογραφημένος και αυθεντικός κανάλι " |
| "επικοινωνίας μεταξύ ατόμων, πρέπει να χρησιμοποιηθεί το πρωτόκολλο SIP " |
| "[2](https://tools.ietf.org/html/rfc3261) για τη θέση μιας κλήσης και την " |
| "αποστολή μηνυμάτων." |
| |
| #: ../../../developer/protocol.md:188 |
| #: ../../../developer/technical-overview.md:277 |
| msgid "The SIP implementation must support ICE and SRTP." |
| msgstr "Η εφαρμογή του SIP πρέπει να υποστηρίζει το ICE και το SRTP." |
| |
| #: ../../../developer/protocol.md:190 |
| #: ../../../developer/technical-overview.md:278 |
| msgid "" |
| "Supported codecs are implementation defined, but Jami clients should support" |
| " the Opus audio coded and the H264 video codec." |
| msgstr "" |
| "Υποστηριζόμενοι κοντέκοι είναι ορισμένοι στην εφαρμογή, αλλά οι πελάτες Jami" |
| " θα πρέπει να υποστηρίζουν τον κοντέκ ήχου Opus και τον κοντέκ βίντεο H264." |
| |
| #: ../../../developer/protocol.md:193 |
| #: ../../../developer/technical-overview.md:280 |
| msgid "" |
| "SRTP must be used when negotiating media with SIP, using a new random key " |
| "for each media and each negotiation. ICE should be used when negotiating " |
| "media with SIP." |
| msgstr "" |
| "Η SRTP πρέπει να χρησιμοποιείται κατά τη διαπραγμάτευση μέσων ενημέρωσης με " |
| "το SIP, χρησιμοποιώντας ένα νέο τυχαίο κλειδί για κάθε μέσο ενημέρωσης και " |
| "κάθε διαπραγμάτευση." |
| |
| #: ../../../developer/protocol.md:197 |
| msgid "Cryptographic primitives" |
| msgstr "Κρυπτογραφικές πρωτόγονες" |
| |
| #: ../../../developer/protocol.md:200 |
| msgid "Password stretching" |
| msgstr "Επεκταση κωδικού πρόσβασης" |
| |
| #: ../../../developer/protocol.md:202 |
| msgid "" |
| "*See [Argon2 specifications](https://github.com/P-H-C/phc-winner-" |
| "argon2/blob/master/argon2-specs.pdf)*" |
| msgstr "" |
| "*Βλέπε [ειδικασίες Argon2](https://github.com/P-H-C/phc-winner-" |
| "argon2/blob/master/argon2-specs.pdf) *" |
| |
| #: ../../../developer/protocol.md:205 |
| msgid "" |
| "Passwords are stretched using argon2i using t\\_cost = 16, m\\_cost = 2\\^16" |
| " (64 MiB), mono-threaded, to generate a 512 bits hash." |
| msgstr "" |
| "Τα κωδικά πρόσβασης εκτείνονται χρησιμοποιώντας argon2i χρησιμοποιώντας " |
| "t\\_cost = 16, m\\_cost = 2\\^16 (64 MiB), μονό-νήματα, για να παράγουν ένα " |
| "hash 512 bits." |
| |
| #: ../../../developer/protocol.md:208 |
| msgid "" |
| "The result is then hashed again using SHA{1, 256, 512} depending on the " |
| "requested key size." |
| msgstr "" |
| "Το αποτέλεσμα στη συνέχεια χασάζεται ξανά χρησιμοποιώντας SHA{1, 256, 512} " |
| "ανάλογα με το απαιτούμενο μέγεθος κλειδιού." |
| |
| #: ../../../developer/protocol.md:211 |
| msgid "Encryption" |
| msgstr "Κρυπτογράφηση" |
| |
| #: ../../../developer/protocol.md:213 |
| msgid "Using a provided key (128, 192 or 256 bits)" |
| msgstr "Χρησιμοποιώντας ένα προετοιμαζόμενο κλειδί (128, 192 ή 256 bits)" |
| |
| #: ../../../developer/protocol.md:215 |
| msgid "" |
| "Encryption uses standard AES-GCM as implemented by Nettle using a random IV " |
| "for each encryption." |
| msgstr "" |
| "Η κρυπτογράφηση χρησιμοποιεί το τυποποιημένο AES-GCM όπως εφαρμόζεται από " |
| "την Nettle χρησιμοποιώντας τυχαία IV για κάθε κρυπτογράφηση." |
| |
| #: ../../../developer/protocol.md:218 |
| msgid "Using a text password" |
| msgstr "Χρησιμοποιώντας κωδικό πρόσβασης" |
| |
| #: ../../../developer/protocol.md:220 |
| msgid "" |
| "The password is stretched to generate a 256 bits key and a random salt of " |
| "128 bits." |
| msgstr "" |
| "Το κωδικό πρόσβασης είναι εκτεινόμενο για να παράγει ένα κλειδί 256 bits και" |
| " ένα τυχαίο αλάτι 128 bits." |
| |
| #: ../../../developer/protocol.md:223 |
| msgid "" |
| "The input data is encrypted using AES-GCM (see above) and the salt is " |
| "appended at the beginning of the resulting cypher-text." |
| msgstr "" |
| "Τα δεδομένα εισόδου κρυπτογραφούνται με τη χρήση AES-GCM (βλ. παραπάνω) και " |
| "το αλάτι προστίθεται στην αρχή του εγγεγραμμένου κειμένου." |
| |
| #: ../../../developer/protocol.md:226 |
| msgid "During a call" |
| msgstr "Κατά τη διάρκεια μιας κλήσης" |
| |
| #: ../../../developer/protocol.md:228 |
| msgid "" |
| "Audio/video data are exchanged using encrypted RTP channels between peers." |
| msgstr "" |
| "Τα αρχικά ή βίντεο δεδομένα ανταλλάσσονται με κρυπτογραφημένα κανάλια RTP " |
| "μεταξύ ομοτίμων." |
| |
| #: ../../../developer/protocol.md:231 |
| msgid "" |
| "The protocol is a classic SRTP, with following supported crypto suites:" |
| msgstr "" |
| "Το πρωτόκολλο είναι ένα κλασικό SRTP, με τις ακόλουθες υποστηριζόμενες " |
| "κρυπτονομιστικές σουίτες:" |
| |
| #: ../../../developer/protocol.md:233 |
| msgid "Jami account force AES\\_CM\\_128\\_HMAC\\_SHA1\\_80" |
| msgstr "" |
| |
| #: ../../../developer/protocol.md:234 |
| msgid "SIP can use AES\\_CM\\_128\\_HMAC\\_SHA1\\_80 or AES\\_CM\\_128\\_HMAC\\_SHA1\\_32" |
| msgstr "" |
| "Το SIP μπορεί να χρησιμοποιήσει AES\\_CM\\_128\\_HMAC\\_SHA1\\_80 ή " |
| "AES\\_CM\\_128\\_HMAC\\_SHA1\\_32" |
| |
| #: ../../../developer/protocol.md:237 |
| msgid "" |
| "The master key and salt is a random number, different for each call. On " |
| "call's master key is constant during the full live of a call." |
| msgstr "" |
| "Το κύριο κλειδί και το αλάτι είναι ένα τυχαίο αριθμό, διαφορετικό για κάθε " |
| "κλήση." |
| |
| #: ../../../developer/protocol.md:240 |
| msgid "" |
| "The keys are exchanged using SDES method: keys are written into the SIP SDP " |
| "messages during the SIP INVITE negotiation. When SDES is used, Ring forces " |
| "the underlaying transport to be secure (encrypted) to not disclose these " |
| "keys. Jami supports DTLS natively for SIP and Ring accounts for such. The " |
| "call cannot be done if this condition is not fulfilled." |
| msgstr "" |
| |
| #: ../../../developer/qt-qml-coding-style.md:1 |
| msgid "Qt and QML coding style" |
| msgstr "Στυλ κωδικοποίησης Qt και QML" |
| |
| #: ../../../developer/qt-qml-coding-style.md:4 |
| msgid "Qt/c++" |
| msgstr "Qt/c++" |
| |
| #: ../../../developer/qt-qml-coding-style.md:5 |
| msgid "Signal and slot naming" |
| msgstr "Ονομασία σήματος και χώρου" |
| |
| #: ../../../developer/qt-qml-coding-style.md:6 |
| msgid "" |
| "Both signals and slots should use camelCase. A signal should use the simple " |
| "past tense or past participle of some verb, likely prefixed by a short " |
| "subject. A corresponding slot should be the signal prefixed with the word " |
| "\"on\" and not the word \"slot\". Here are some examples:" |
| msgstr "" |
| "Τα σήματα και οι σλότ πρέπει να χρησιμοποιούν camelCase. Ένα σήμα πρέπει να " |
| "χρησιμοποιεί το απλό παρελθόν ή το παρελθόν συμμετοχή κάποιου ρήματος, " |
| "πιθανότατα προεπισημαίνεται από ένα σύντομο θέμα." |
| |
| #: ../../../developer/qt-qml-coding-style.md:29 |
| #: ../../../developer/qt-qml-testing-tools.md:4 |
| #: ../../../developer/qt-qml-testing-tools.md:105 |
| msgid "QML" |
| msgstr "ΚΑΜ" |
| |
| #: ../../../developer/qt-qml-coding-style.md:30 |
| msgid "Code formatting" |
| msgstr "Τροποποίηση κωδικού" |
| |
| #: ../../../developer/qt-qml-coding-style.md:31 |
| msgid "" |
| "The Qt 5.15.0 version of qmlformat has some issues dealing with comment " |
| "sections and currently does not discriminate against max columns, so we will" |
| " continue to format using these guidelines for now. The following is a " |
| "comprehensive sample component, adapted from https://doc.qt.io/qt-5/qml-" |
| "codingconventions.html, that attempts to illustrate the ideally formatted " |
| "component." |
| msgstr "" |
| "Η έκδοση Qt 5.15.0 του qmlformat έχει κάποια προβλήματα που αφορούν τις " |
| "ενότητες σχολίων και δεν διακρίνει προς το παρόν τις κολόνες max, οπότε θα " |
| "συνεχίσουμε να μορφοποιούμε χρησιμοποιώντας αυτές τις κατευθυντήριες γραμμές" |
| " για το παρόν. Το παρακάτω είναι ένα ολοκληρωμένο δείγμα συνιστώμενο, " |
| "προσαρμοσμένο από https://doc.qt.io/qt-5/qml-codingconventions.html, που " |
| "προσπαθεί να απεικονίσει το ιδανικά μορφοποιημένο συνιστώμενο." |
| |
| #: ../../../developer/qt-qml-testing-tools.md:1 |
| msgid "Qt and QML testing tools" |
| msgstr "Εργαλεία δοκιμών Qt και QML" |
| |
| #: ../../../developer/qt-qml-testing-tools.md:6 |
| msgid "" |
| "qml_tests launch all the tests related to the interface. The daemon and " |
| "libclient SHOULD be trusted in this part, we do not want to test scenarios " |
| "related to connectivity. Ideally, we should work on fake data to avoid " |
| "depending on network events. This may be difficult sometimes and some tools " |
| "may be missed because tests in this part are a work in progress. Here are " |
| "some tools/principles to be able to quickly write tests." |
| msgstr "" |
| |
| #: ../../../developer/qt-qml-testing-tools.md:8 |
| msgid "Mocking Data" |
| msgstr "" |
| |
| #: ../../../developer/qt-qml-testing-tools.md:10 |
| msgid "" |
| "Let's say I want to test the UI for an AccountComboBox depending on a list " |
| "of accounts. Instead of creating accounts, we should create a fake list. The" |
| " easy way to do this is to serialize/unserialize a real AccountComboBox " |
| "model. First, we need to get a serialized model:" |
| msgstr "" |
| |
| #: ../../../developer/qt-qml-testing-tools.md:44 |
| msgid "" |
| "`saveModel()` will print the serialized structure whenever the developer " |
| "will click on the combobox. Here's the result:" |
| msgstr "" |
| |
| #: ../../../developer/qt-qml-testing-tools.md:50 |
| msgid "" |
| "Now, the developper can easily use it in a test. The best way is to add this" |
| " data in a variable or a separated js file (cf https://doc.qt.io/qt-6/qtqml-" |
| "documents-networktransparency.html). And use it in a test e.g.:" |
| msgstr "" |
| |
| #: ../../../developer/qt-qml-testing-tools.md:77 |
| msgid "C++" |
| msgstr "Κ++" |
| |
| #: ../../../developer/qt-qml-testing-tools.md:79 |
| msgid "Google Test" |
| msgstr "Δοκιμασία Google" |
| |
| #: ../../../developer/qt-qml-testing-tools.md:80 |
| msgid "Google's c++ test framework." |
| msgstr "Το πλαίσιο δοκιμών C++ της Google." |
| |
| #: ../../../developer/qt-qml-testing-tools.md:82 |
| #: ../../../developer/qt-qml-testing-tools.md:109 |
| msgid "Installation" |
| msgstr "Εγκατάσταση" |
| |
| #: ../../../developer/qt-qml-testing-tools.md:83 |
| msgid "Ubuntu / Debian: `apt install googletest libgtest-dev`" |
| msgstr "Ubuntu / Debian: `apt να εγκαταστήσετε το libgtest-dev`" |
| |
| #: ../../../developer/qt-qml-testing-tools.md:86 |
| #: ../../../developer/qt-qml-testing-tools.md:112 |
| msgid "Example main.cpp" |
| msgstr "Παραδείγματος χάρη main.cpp" |
| |
| #: ../../../developer/qt-qml-testing-tools.md:107 |
| msgid "QtQuickTest" |
| msgstr "QtQuickTest" |
| |
| #: ../../../developer/qt-qml-testing-tools.md:110 |
| msgid "Ubuntu / Debian: `apt install qml-module-qqtest libqt5quicktest5`" |
| msgstr "" |
| "Ubuntu / Debian: `apt να εγκαταστήσετε qml-module-qqtest libqt5quicktest5`" |
| |
| #: ../../../developer/release-process.md:1 |
| msgid "Release process" |
| msgstr "Διαδικασία απελευθέρωσης" |
| |
| #: ../../../developer/release-process.md:4 |
| msgid "" |
| "Each Jami sub-project has its own repository, build process, integration " |
| "cycle and so on. More over the **Jami architecture is split into two " |
| "independent modules**: LibRing *(daemon)* and clients." |
| msgstr "" |
| |
| #: ../../../developer/release-process.md:8 |
| msgid "" |
| "Having a unique revision is not a solution in this situation. The retained " |
| "idea is having a global \"state\" and **various updates per module**." |
| msgstr "" |
| "Η διατήρηση της ιδέας είναι να έχει μια παγκόσμια \"κράση\" και ** διάφορες " |
| "ενημερώσεις ανά μονάδα**." |
| |
| #: ../../../developer/release-process.md:12 |
| msgid "" |
| "For consistency, **each Jami module has to follow the same process** as " |
| "described in following points. But not all modules have to be modified in " |
| "same time." |
| msgstr "" |
| |
| #: ../../../developer/release-process.md:18 |
| msgid "**PROCESS FLOW:**" |
| msgstr "" |
| "**ΠΡΟΣΕΣ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ" |
| " ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ" |
| " ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ ΤΟΥ" |
| " ΤΟΥ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ" |
| " ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ " |
| "ΤΟ ΤΟ ΤΟ ΤΟ ΤΟ Τ ΤΟ ΤΟ Τ Τ Τ ΤΟ ΤΟ Τ Τ ΤΟ ΤΟ Τ Τ Τ Τ ΤΟ Τ Τ Τ Τ ΤΟ Τ Τ ΤΟ ΤΟ" |
| " Τ Τ Τ ΤΟ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ " |
| "Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ " |
| "Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ " |
| "Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ " |
| "Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ Τ" |
| |
| #: ../../../developer/release-process.md:0 |
| msgid "1" |
| msgstr "1" |
| |
| #: ../../../developer/release-process.md:0 |
| msgid "2" |
| msgstr "2 Ειδικότερα" |
| |
| #: ../../../developer/release-process.md:0 |
| msgid "3" |
| msgstr "3 Ειδικότερα" |
| |
| #: ../../../developer/release-process.md:0 |
| msgid "4" |
| msgstr "4 Ειδικότερα" |
| |
| #: ../../../developer/release-process.md:0 |
| msgid "5" |
| msgstr "5 Κύκλος" |
| |
| #: ../../../developer/release-process.md:0 |
| msgid "6" |
| msgstr "6" |
| |
| #: ../../../developer/release-process.md:0 |
| #: ../../../developer/release-process.md:26 |
| msgid "Redmine Ticket" |
| msgstr "Το εισιτήριο Redmine" |
| |
| #: ../../../developer/release-process.md:0 |
| #: ../../../developer/release-process.md:33 |
| msgid "Repository Preparation" |
| msgstr "Προετοιμασία αποθεματικών" |
| |
| #: ../../../developer/release-process.md:0 |
| #: ../../../developer/release-process.md:38 |
| msgid "Testing" |
| msgstr "Εξετάσεις" |
| |
| #: ../../../developer/release-process.md:0 |
| #: ../../../developer/release-process.md:54 |
| msgid "Push tags" |
| msgstr "Σημίδες ώθησης" |
| |
| #: ../../../developer/release-process.md:0 |
| #: ../../../developer/release-process.md:178 |
| msgid "Advertisement" |
| msgstr "Διαφήμιση" |
| |
| #: ../../../developer/release-process.md:29 |
| msgid "" |
| "Create a new Task on redmine attached to the release story, for the right " |
| "sub-module. Set the title to \"Release Major.Minor.Micro\", with the " |
| "appropriate version number." |
| msgstr "" |
| "Δημιουργήστε μια νέα Δράση στο redmine που επισυνάπτεται στην ιστορία " |
| "κυκλοφορίας, για τη σωστή υπομονή." |
| |
| #: ../../../developer/release-process.md:36 |
| msgid "**This section was outdated and removed**" |
| msgstr "**Αυτή η ενότητα ήταν παρωχημένη και αφαιρέθηκε**" |
| |
| #: ../../../developer/release-process.md:41 |
| msgid "Remove any existing Jami installations from your machine." |
| msgstr "" |
| |
| #: ../../../developer/release-process.md:42 |
| msgid "" |
| "Start with clean git tree by running `git clean -d -f -x` from the top level" |
| " directory of the project." |
| msgstr "" |
| "Ξεκινήστε με καθαρό δέντρο git εκτελώντας `git καθαρό -d -f -x` από τον " |
| "κατάλογο ανώτερου επιπέδου του έργου." |
| |
| #: ../../../developer/release-process.md:44 |
| msgid "Build and install the daemon and client, see How\\\\\\_to\\\\\\_build" |
| msgstr "Χτίστε και εγκαταστήστε το δήμονο και τον πελάτη, δείτε Πώς\\\\\\_to\\\\\\_build" |
| |
| #: ../../../developer/release-process.md:45 |
| msgid "" |
| "Run the test suite in daemon and client, on different distributions and " |
| "machines." |
| msgstr "" |
| "Εκτελέστε το δοκιμαστικό σύνολο σε δήμονες και πελάτες, σε διαφορετικές " |
| "διανομές και μηχανές." |
| |
| #: ../../../developer/release-process.md:47 |
| msgid "Run manual tests" |
| msgstr "Δοκιμάστε εγχειρησιακές δοκιμές" |
| |
| #: ../../../developer/release-process.md:48 |
| msgid "Try registering and using different accounts." |
| msgstr "" |
| "Δοκιμάστε να εγγραφείτε και να χρησιμοποιείτε διαφορετικά λογαριασμούς." |
| |
| #: ../../../developer/release-process.md:49 |
| msgid "" |
| "Try making calls between Jami and other free softphones (Ekiga, Linphone), " |
| "as well as hardware VoIP phones." |
| msgstr "" |
| |
| #: ../../../developer/release-process.md:51 |
| msgid "" |
| "To catch uninitialized values being used, memory leaks, invalid frees, etc. " |
| "run `valgrind --track-origins=yes --db-attach=yes ./bin/dring`" |
| msgstr "" |
| "Για να εντοπίσει τις χρησιμοποιούμενες μη αρχιερωμένες τιμές, διαρροές " |
| "μνήμης, άκυρες ελευθερίες κλπ. τρέξτε `valgrind --track-origin=yes --db-" |
| "attach=yes./bin/dring`" |
| |
| #: ../../../developer/release-process.md:57 |
| msgid "`git push --tags`" |
| msgstr "`git πιέστε --tags`" |
| |
| #: ../../../developer/release-process.md:68 |
| #: ../../../developer/release-process.md:119 |
| msgid "RPM" |
| msgstr "ΡΡΜ" |
| |
| #: ../../../developer/release-process.md:84 |
| #: ../../../developer/release-process.md:137 |
| msgid "DEB" |
| msgstr "ΔΕΒ" |
| |
| #: ../../../developer/release-process.md:98 |
| #: ../../../developer/release-process.md:162 |
| msgid "Release" |
| msgstr "Ελευθερία" |
| |
| #: ../../../developer/release-process.md:100 |
| #: ../../../developer/release-process.md:165 |
| msgid "" |
| "You just have to launch release script. This script launch build, download " |
| "and update files and repositories..." |
| msgstr "" |
| "Αυτό το σενάριο δημιουργεί, κατεβάζει και ενημερώνει αρχεία και αποθήκες..." |
| |
| #: ../../../developer/release-process.md:121 |
| msgid "vim ring-daemon.spec" |
| msgstr "Βιμ δαχτυλίδι-daemon.spec" |
| |
| #: ../../../developer/release-process.md:181 |
| msgid "" |
| "When the packaging is finished, test that they are installable. Then " |
| "announce the release" |
| msgstr "Όταν ολοκληρωθεί η συσκευασία, δοκιμάστε αν είναι εγκατάστατη." |
| |
| #: ../../../developer/release-process.md:184 |
| msgid "on the official website <https://ring.cx>" |
| msgstr "στην επίσημη ιστοσελίδα <https://ring.cx>" |
| |
| #: ../../../developer/release-process.md:185 |
| msgid "on Twitter <https://twitter.com/JoinTheRing>" |
| msgstr "Στο Twitter <https://twitter.com/JoinTheRing>" |
| |
| #: ../../../developer/release-process.md:186 |
| msgid "" |
| "by email to ring@lists.savoirfairelinux.net with the subject line: \"Ring " |
| "Major.Minor.Patch released\"" |
| msgstr "" |
| "μέσω ηλεκτρονικού ταχυδρομείου στο ring@lists.savoirfairelinux.net με θέμα: " |
| "\"Ring Major.Minor.Patch released\"" |
| |
| #: ../../../developer/setting-up-your-own-turn-server.md:1 |
| msgid "Setting up your own TURN server" |
| msgstr "Εγκατάσταση του δικού σας διακομιστή TURN" |
| |
| #: ../../../developer/setting-up-your-own-turn-server.md:4 |
| msgid "" |
| "Jami can be configured to use TURN or STUN servers ([RFC " |
| "5766](https://tools.ietf.org/html/rfc5766)) to establish a connection " |
| "between two peers." |
| msgstr "" |
| "Το Jami μπορεί να ρυθμιστεί με τη χρήση διακομιστών TURN ή STUN ([RFC " |
| "5766](https://tools.ietf.org/html/rfc5766)) για τη δημιουργία σύνδεσης " |
| "μεταξύ δύο ομοτίμων." |
| |
| #: ../../../developer/setting-up-your-own-turn-server.md:8 |
| msgid "" |
| "The default TURN server is \"turn.jami.net\", with username \"ring\", " |
| "password \"ring\", and realm \"ring\"." |
| msgstr "" |
| "Ο προεπιλεγμένος διακομιστής του TURN είναι \"turn.jami.net\", με όνομα " |
| "χρήστη \"ring\", κωδικό πρόσβασης \"ring\" και χώρο \"ring\"." |
| |
| #: ../../../developer/setting-up-your-own-turn-server.md:11 |
| msgid "" |
| "In this guide, we will setup a [coturn](https://github.com/coturn/coturn) " |
| "server. There are other TURN/STUN server implementations available under a " |
| "free license, such as [TurnServer](http://turnserver.sourceforge.net/) and " |
| "[Restund](http://www.creytiv.com/restund.html)." |
| msgstr "" |
| "Σε αυτό το οδηγό, θα ρυθμίσουμε έναν διακομιστή " |
| "[coturn]https://github.com/coturn/coturn). Υπάρχουν άλλες εφαρμογές " |
| "διακομιστή TURN/STUN που είναι διαθέσιμες υπό δωρεάν άδεια, όπως " |
| "[TurnServer](http://turnserver.sourceforge.net/) και " |
| "[Restund](http://www.creytiv.com/restund.html)." |
| |
| #: ../../../developer/setting-up-your-own-turn-server.md:17 |
| msgid "Installing" |
| msgstr "Εγκατάσταση" |
| |
| #: ../../../developer/setting-up-your-own-turn-server.md:19 |
| msgid "" |
| "COTURN is available in most Linux distributions. On Debian, install it with " |
| "the following command:" |
| msgstr "Το COTURN είναι διαθέσιμο στις περισσότερες διανομές Linux." |
| |
| #: ../../../developer/setting-up-your-own-turn-server.md:25 |
| msgid "Configuring" |
| msgstr "Προγραμματισμός" |
| |
| #: ../../../developer/setting-up-your-own-turn-server.md:27 |
| msgid "Here is a basic `turnserver.conf` file:" |
| msgstr "Εδώ είναι ένα βασικό αρχείο `turnserver.conf`:" |
| |
| #: ../../../developer/setting-up-your-own-turn-server.md:38 |
| msgid "" |
| "This also will function as a STUN server. The STUN server does not require a" |
| " username and password (STUN uses very little bandwidth)." |
| msgstr "" |
| "Ο διακομιστής STUN δεν απαιτεί όνομα χρήστη και κωδικό πρόσβασης (η STUN " |
| "χρησιμοποιεί πολύ μικρό εύρος ζώνης)." |
| |
| #: ../../../developer/setting-up-your-own-turn-server.md:41 |
| msgid "Creating users on your TURN server" |
| msgstr "Δημιουργία χρηστών στον διακομιστή TURN" |
| |
| #: ../../../developer/setting-up-your-own-turn-server.md:43 |
| msgid "" |
| "To create users on your TURN server, use the `turnadmin` binary (this might " |
| "require superuser permissions)." |
| msgstr "" |
| "Για να δημιουργήσετε χρήστες στον διακομιστή TURN σας, χρησιμοποιήστε το " |
| "δυαδικό `turnadmin` (αυτό μπορεί να απαιτήσει δικαιώματα υπερυπαχών)." |
| |
| #: ../../../developer/setting-up-your-own-turn-server.md:50 |
| msgid "Launching the TURN server" |
| msgstr "Ξεκινάμε τον διακομιστή TURN" |
| |
| #: ../../../developer/setting-up-your-own-turn-server.md:56 |
| msgid "Configuring Jami to authenticate with the TURN server" |
| msgstr "Προγραμματίζοντας Jami για να επαληθεύσει με τον διακομιστή TURN" |
| |
| #: ../../../developer/setting-up-your-own-turn-server.md:58 |
| msgid "" |
| "You can configure Jami to use your TURN server from the advanced section of " |
| "your account settings:" |
| msgstr "" |
| "Μπορείτε να ρυθμίσετε το Jami να χρησιμοποιεί τον διακομιστή TURN σας από " |
| "την προηγμένη ενότητα των ρυθμίσεων του λογαριασμού σας:" |
| |
| #: ../../../developer/setting-up-your-own-turn-server.md:0 |
| msgid "Field" |
| msgstr "Επαγγελματικό τομέα" |
| |
| #: ../../../developer/setting-up-your-own-turn-server.md:0 |
| msgid "Value" |
| msgstr "Αξία" |
| |
| #: ../../../developer/setting-up-your-own-turn-server.md:0 |
| msgid "**server url**" |
| msgstr "**server url**" |
| |
| #: ../../../developer/setting-up-your-own-turn-server.md:0 |
| msgid "host and port of your server" |
| msgstr "Διοίκηση και θύρα του διακομιστή σας" |
| |
| #: ../../../developer/setting-up-your-own-turn-server.md:0 |
| msgid "0.0.0.0:10000" |
| msgstr "0,0.0.0:10000" |
| |
| #: ../../../developer/setting-up-your-own-turn-server.md:0 |
| msgid "**username**" |
| msgstr "**χρήστη**" |
| |
| #: ../../../developer/setting-up-your-own-turn-server.md:0 |
| msgid "username" |
| msgstr "όνομα χρήστη" |
| |
| #: ../../../developer/setting-up-your-own-turn-server.md:0 |
| msgid "bob" |
| msgstr "Μπομπ" |
| |
| #: ../../../developer/setting-up-your-own-turn-server.md:0 |
| msgid "**password**" |
| msgstr "** κωδικό πρόσβασης**" |
| |
| #: ../../../developer/setting-up-your-own-turn-server.md:0 |
| msgid "password" |
| msgstr "κωδικό πρόσβασης" |
| |
| #: ../../../developer/setting-up-your-own-turn-server.md:0 |
| msgid "secretpassword" |
| msgstr "μυστικό κωδικό πρόσβασης" |
| |
| #: ../../../developer/setting-up-your-own-turn-server.md:0 |
| msgid "**realm**" |
| msgstr "**από το βασίλειο**" |
| |
| #: ../../../developer/setting-up-your-own-turn-server.md:0 |
| msgid "realm" |
| msgstr "Το βασίλειο" |
| |
| #: ../../../developer/setting-up-your-own-turn-server.md:0 |
| msgid "sfl" |
| msgstr "Σφλ" |
| |
| #: ../../../developer/submitting-your-first-patch.md:1 |
| msgid "Submitting your first patch" |
| msgstr "Υποβάλλω την πρώτη πακέτα" |
| |
| #: ../../../developer/submitting-your-first-patch.md:4 |
| msgid "Setting up git and ssh" |
| msgstr "Ετοιμάζοντας git και ssh" |
| |
| #: ../../../developer/submitting-your-first-patch.md:6 |
| msgid "(**to work smoothly with Gerrit.**)" |
| msgstr "(**να δουλέψουμε ομαλά με τον Gerrit.**)" |
| |
| #: ../../../developer/submitting-your-first-patch.md:9 |
| msgid "first see:" |
| msgstr "Πρώτα, βλέπε:" |
| |
| #: ../../../developer/submitting-your-first-patch.md:11 |
| msgid "" |
| "{ref}`Creating a gerrit review <developer/working-with-gerrit:To Create the " |
| "Review>`" |
| msgstr "" |
| "{ref}`Δημιουργία αναθεώρησης gerrit <developer/working-with-gerrit:To Create" |
| " the Review>`" |
| |
| #: ../../../developer/submitting-your-first-patch.md:13 |
| msgid "SSH setup" |
| msgstr "Εγκατάσταση SSH" |
| |
| #: ../../../developer/submitting-your-first-patch.md:15 |
| msgid "https://review.jami.net/Documentation/user-upload.html#ssh" |
| msgstr "https://review.jami.net/Documentation/user-upload.html#ssh" |
| |
| #: ../../../developer/submitting-your-first-patch.md:17 |
| msgid "Generate a personal dedicated public / private key set." |
| msgstr "Γενεύετε ένα προσωπικό ειδικό σύνολο δημόσιων / ιδιωτικών κλειδιών." |
| |
| #: ../../../developer/submitting-your-first-patch.md:22 |
| msgid "" |
| "Your identification has been saved in `jami_gerrit_review_rsa`. Your public " |
| "key has been saved in `jami_gerrit_review_rsa.pub.`" |
| msgstr "" |
| "Η ταυτότητά σας έχει αποθηκευτεί στο `jami_gerrit_review_rsa`. Το δημόσιο " |
| "κλειδί σας έχει αποθηκευτεί στο `jami_gerrit_review_rsa.pub.`" |
| |
| #: ../../../developer/submitting-your-first-patch.md:25 |
| msgid "Tell gerrit your public key" |
| msgstr "Πες στον Τζέριτ το δημόσιο κλειδί σου." |
| |
| #: ../../../developer/submitting-your-first-patch.md:26 |
| msgid "" |
| "Login to [gerrit](https://review.jami.net) via your Gitlab account (Sign-" |
| "in=>OAuth Gitlab)" |
| msgstr "" |
| "Εισαγωγή στο [gerrit](https://review.jami.net) μέσω του λογαριασμού Gitlab " |
| "σας (Sign-in=>OAuth Gitlab)" |
| |
| #: ../../../developer/submitting-your-first-patch.md:27 |
| msgid "" |
| "Follow the ssh key instructions found from (your) user options " |
| "[settings](https://review.jami.net/settings/)" |
| msgstr "" |
| "Ακολουθήστε τις οδηγίες κλειδιού ssh που βρίσκονται από τις επιλογές χρήστη " |
| "[settings] (https://review.jami.net/settings/)" |
| |
| #: ../../../developer/submitting-your-first-patch.md:29 |
| msgid "Set up your local ssh (via `ssh-add` or in `~/.ssh/config`)" |
| msgstr "Εγκαταστήστε το τοπικό ssh σας (μέσω `ssh-add` ή σε `~/.ssh/config`)" |
| |
| #: ../../../developer/submitting-your-first-patch.md:30 |
| msgid "" |
| "Test all of the above (ssh on the service or just try to clone a repo on " |
| "gerrit via ssh)" |
| msgstr "" |
| "Δοκιμάστε όλα τα παραπάνω (ssh στην υπηρεσία ή απλά προσπαθήστε να " |
| "κλωνοποιήσετε μια repo σε gerrit μέσω ssh)" |
| |
| #: ../../../developer/submitting-your-first-patch.md:33 |
| msgid "Your Repository" |
| msgstr "Το Αποθετήριο Σας" |
| |
| #: ../../../developer/submitting-your-first-patch.md:35 |
| msgid "" |
| "This *assumes* you have moved any existing project clone out of the way." |
| msgstr "" |
| "Αυτό *ανέχει* ότι έχετε μεταφέρει από το δρόμο οποιοδήποτε υπάρχον κλώνο του" |
| " έργου." |
| |
| #: ../../../developer/submitting-your-first-patch.md:37 |
| msgid "" |
| "Clone a (fresh) copy of the project. `git clone " |
| "ssh://USERNAME@review.jami.net:29420/PROJECT_NAME_GOES_HERE.git`; e.g. `git " |
| "clone ssh://foo@review.jami.net:29420/jami-project.git`." |
| msgstr "" |
| "Κλωνόρισμα (φρέσκης) αντίγραφα του έργου. `git clone " |
| "ssh://USERNAME@review.jami.net:29420/PROJECT_NAME_GOES_HERE.git`; π.χ. `git " |
| "clone ssh://foo@review.jami.net:29420/jami-project.git`." |
| |
| #: ../../../developer/submitting-your-first-patch.md:38 |
| msgid "Configure this clones local .git/config (optional)" |
| msgstr "Προγραμματήστε αυτό το κλώνο τοπική.git/config (προαιρετική)" |
| |
| #: ../../../developer/submitting-your-first-patch.md:39 |
| msgid "Generate commit Change-Ids aka: commit-msg hook script" |
| msgstr "Γενεύει commit- Change-Ids aka: commit-msg script" |
| |
| #: ../../../developer/submitting-your-first-patch.md:42 |
| msgid "A shell script, to be installed to .git/hooks/commit-msg." |
| msgstr "" |
| "Ένα σενάριο shell, που πρέπει να εγκατασταθεί σε.git/hooks/commit-msg." |
| |
| #: ../../../developer/submitting-your-first-patch.md:45 |
| msgid "" |
| "The script creates a unique Change_Id:hash for each commit made from your " |
| "repository." |
| msgstr "" |
| "Το σενάριο δημιουργεί μια μοναδική Change_Id:hash για κάθε commit που " |
| "γίνεται από το αποθετήριο σας." |
| |
| #: ../../../developer/submitting-your-first-patch.md:48 |
| msgid "" |
| "The first time you attempt a _push_ to review `git push origin " |
| "HEAD:refs/for/master`, gerrit will notice a lack of Change-Id." |
| msgstr "" |
| "Την πρώτη φορά που προσπαθείτε να κάνετε ένα _push_ για να αναθεωρήσετε την " |
| "`git push origin HEAD:refs/for/master`, ο gerrit θα παρατηρήσει έλλειψη " |
| "Change-Id." |
| |
| #: ../../../developer/submitting-your-first-patch.md:51 |
| msgid "" |
| "Gerrit will also present a secure copy (scp) string. Use *that* to download " |
| "a copy of .git/hooks/commit-msg." |
| msgstr "" |
| "Ο Gerrit θα παρουσιάσει επίσης μια ασφαλή κειμένου (scp) string. " |
| "Χρησιμοποιήστε *that* για να κατεβάσετε ένα αντίγραφο του.git/hooks/commit-" |
| "msg." |
| |
| #: ../../../developer/submitting-your-first-patch.md:55 |
| msgid "References" |
| msgstr "Αναφορές" |
| |
| #: ../../../developer/submitting-your-first-patch.md:58 |
| msgid "" |
| "[Some Gritty Details](https://review.jami.net/Documentation/user-" |
| "upload.html#_gritty_details)" |
| msgstr "" |
| "[Κάποια Γκριτι Ντεταλ](https://review.jami.net/Documentation/user-" |
| "upload.html#_gritty_details)" |
| |
| #: ../../../developer/submitting-your-first-patch.md:62 |
| msgid "Original author: *Peter Gossner*" |
| msgstr "Πρωτογραφιστής: *Πίτερ Γκόσνερ*" |
| |
| #: ../../../developer/swarm.md:1 |
| msgid "Swarm" |
| msgstr "Σκάζες" |
| |
| #: ../../../developer/swarm.md:3 |
| msgid "Synospis" |
| msgstr "Συναπίσματα" |
| |
| #: ../../../developer/swarm.md:5 |
| msgid "" |
| "The goal of this document is to describe how group chats (a.k.a. **swarm " |
| "chat**) will be implemented in Jami." |
| msgstr "" |
| "Στόχος του παρόντος εγγράφου είναι να περιγράψει πώς θα εφαρμοστούν οι " |
| "ομαδικές συνομιλίες (α.χ. **swarm chat**) στο Jami." |
| |
| #: ../../../developer/swarm.md:7 |
| msgid "" |
| "A *swarm* is a group able to discuss without any central authority in a " |
| "resilient way. Indeed, if two person doesn't have any connectivity with the " |
| "rest of the group (ie Internet outage) but they can contact each other (in a" |
| " LAN for example or in a subnetwork), they will be able to send messages to " |
| "each other and then, will be able to sync with the rest of the group when " |
| "it's possible." |
| msgstr "" |
| "Ένα *swarm* είναι μια ομάδα που μπορεί να συζητήσει χωρίς καμία κεντρική " |
| "αρχή με ανθεκτικό τρόπο. Πράγματι, αν δύο άτομα δεν έχουν καμία σύνδεση με " |
| "την υπόλοιπη ομάδα (δηλαδή διακοπή του Διαδικτύου), αλλά μπορούν να " |
| "επικοινωνήσουν μεταξύ τους (σε ένα LAN για παράδειγμα ή σε ένα υποσύστημα), " |
| "θα μπορούν να στείλουν μηνύματα ο ένας στον άλλο και στη συνέχεια, θα " |
| "μπορούν να συγχρονιστούν με την υπόλοιπη ομάδα όταν είναι δυνατόν." |
| |
| #: ../../../developer/swarm.md:9 |
| msgid "So, the *swarm* is defined by:" |
| msgstr "Έτσι, το σάρο ορίζεται από:" |
| |
| #: ../../../developer/swarm.md:10 |
| msgid "Ability to split and merge following the connectivity." |
| msgstr "Δυνατότητα διαίρεσης και συγχώνευσης μετά την σύνδεση." |
| |
| #: ../../../developer/swarm.md:11 |
| msgid "" |
| "Syncing of the history. Anyone must be able to send a message to the whole " |
| "group." |
| msgstr "Ο καθένας πρέπει να μπορεί να στείλει ένα μήνυμα σε όλη την ομάδα." |
| |
| #: ../../../developer/swarm.md:12 |
| msgid "No central authority. Can not rely on any server." |
| msgstr "" |
| "Δεν υπάρχει κεντρική αρχή, δεν μπορεί να βασιστεί σε κανένα διακομιστή." |
| |
| #: ../../../developer/swarm.md:13 |
| msgid "" |
| "Non-repudiation. Devices must be able to verify old messages' validity and " |
| "to replay the whole history." |
| msgstr "" |
| "Οι συσκευές πρέπει να είναι σε θέση να επαληθεύσουν την εγκυρότητα των " |
| "παλιών μηνυμάτων και να αναπαράγουν ολόκληρο το ιστορικό." |
| |
| #: ../../../developer/swarm.md:14 |
| msgid "PFS on the transport. Storage is managed by the device." |
| msgstr "Η αποθήκευση διαχειρίζεται η συσκευή." |
| |
| #: ../../../developer/swarm.md:16 |
| msgid "" |
| "The main idea is to get a synchronized Merkle tree with the participants." |
| msgstr "" |
| "Η βασική ιδέα είναι να έχουμε ένα συγχρονισμένο δέντρο Merkle με τους " |
| "συμμετέχοντες." |
| |
| #: ../../../developer/swarm.md:18 |
| msgid "We identified four modes for swarm chat that we want to implement:" |
| msgstr "" |
| "Αναγνώρισαν τέσσερις τρόπους για συνομιλία σμήνος που θέλουμε να " |
| "εφαρμόσουμε:" |
| |
| #: ../../../developer/swarm.md:19 |
| msgid "" |
| "**ONE_TO_ONE**, basically the case we have today when you discuss to a " |
| "friend" |
| msgstr "" |
| "Ο ΜΟΝΟΣ ΠΟΥ ΜΟΝΟΣ, βασικά η υπόθεση που έχουμε σήμερα όταν συζητάμε με έναν " |
| "φίλο" |
| |
| #: ../../../developer/swarm.md:20 |
| msgid "" |
| "**ADMIN_INVITES_ONLY** generally a class where the teacher can invite " |
| "people, but not students" |
| msgstr "" |
| "**ΑΔΜΙΝΟΣ_ΣΥΜΜΜΙΝΟΣ** γενικά μια τάξη όπου ο δάσκαλος μπορεί να προσκαλέσει " |
| "ανθρώπους, αλλά όχι μαθητές" |
| |
| #: ../../../developer/swarm.md:21 |
| msgid "**INVITES_ONLY** a private group of friends" |
| msgstr "**Καλούμε μόνο** μια ιδιωτική ομάδα φίλων" |
| |
| #: ../../../developer/swarm.md:22 |
| msgid "**PUBLIC** basically an opened forum" |
| msgstr "**ΠΟΛΙΚΟ** βασικά ένα ανοιχτό φόρουμ" |
| |
| #: ../../../developer/swarm.md:24 |
| msgid "Scenarios" |
| msgstr "Σενάρια" |
| |
| #: ../../../developer/swarm.md:26 |
| msgid "Create a Swarm" |
| msgstr "Δημιουργήστε ένα Σπάρμ" |
| |
| #: ../../../developer/swarm.md:28 |
| msgid "*Bob wants to create a new swarm*" |
| msgstr "*Ο Μπομπ θέλει να δημιουργήσει ένα νέο σμήνος*" |
| |
| #: ../../../developer/swarm.md:30 |
| msgid "Bob creates a local git repository." |
| msgstr "Ο Μπομπ δημιουργεί ένα τοπικό αποθετήριο git." |
| |
| #: ../../../developer/swarm.md:31 |
| msgid "Then, he creates an initial signed commit with the following:" |
| msgstr "" |
| "Στη συνέχεια, δημιουργεί μια αρχική υπογεγραμμένη δέσμευση με τα ακόλουθα:" |
| |
| #: ../../../developer/swarm.md:32 |
| msgid "His public key in `/admins`" |
| msgstr "Το δημόσιο κλειδί του σε `/admins`" |
| |
| #: ../../../developer/swarm.md:33 |
| msgid "His device certificate in ̀ /devices`" |
| msgstr "Το πιστοποιητικό του συσκευής του σε ̀ / συσκευές" |
| |
| #: ../../../developer/swarm.md:34 |
| msgid "His CRL in ̀ /crls`" |
| msgstr "Η ΚΡΑ του είναι στο ̀ /crls`" |
| |
| #: ../../../developer/swarm.md:35 |
| msgid "The hash of the first commit becomes the **ID** of the conversation" |
| msgstr "Το χασάι του πρώτου commit γίνεται το **ID** της συζήτησης" |
| |
| #: ../../../developer/swarm.md:36 |
| msgid "" |
| "Bob announces to his other devices that he creates a new conversation. This " |
| "is done via an invite to join the swarm sent through the DHT to other " |
| "devices linked to that account." |
| msgstr "" |
| "Ο Bob ανακοινώνει στις άλλες συσκευές του ότι δημιουργεί μια νέα συζήτηση." |
| |
| #: ../../../developer/swarm.md:38 |
| msgid "Adding someone" |
| msgstr "Προσθήκη κάποιου" |
| |
| #: ../../../developer/swarm.md:40 |
| msgid "*Alice adds Bob*" |
| msgstr "*Η Άλις προσθέτει τον Μπομπ*" |
| |
| #: ../../../developer/swarm.md:42 |
| msgid "Alice adds Bob to the repo:" |
| msgstr "Η Άλις προσθέτει τον Μπομπ στο ρεπό:" |
| |
| #: ../../../developer/swarm.md:43 |
| msgid "Adds the invited URI in `/invited`" |
| msgstr "Προσθέτει το καλεσμένο URI σε `/invited`" |
| |
| #: ../../../developer/swarm.md:44 |
| msgid "Adds the CRL into `/crls`" |
| msgstr "Προσθέτει την ΚΑΣ σε `/crls`" |
| |
| #: ../../../developer/swarm.md:45 |
| msgid "Alice sends a request on the DHT" |
| msgstr "Η Άλις στέλνει αίτηση για το DHT" |
| |
| #: ../../../developer/swarm.md:47 |
| msgid "Receiving an invite" |
| msgstr "Αποκλήση πρόσκλησης" |
| |
| #: ../../../developer/swarm.md:49 |
| msgid "*Alice gets the invite to join the previously create swarm*" |
| msgstr "*Η Άλις καλείται να συμμετάσχει στο πλήθος που είχε δημιουργήσει*" |
| |
| #: ../../../developer/swarm.md:51 |
| msgid "" |
| "She accepts the invite (if decline, do nothing, it will just stay into " |
| "invited and Alice will never receive any message)" |
| msgstr "" |
| "Αποδέχεται την πρόσκληση (αν αρνηθεί, δεν κάνει τίποτα, θα μείνει μόνο στην " |
| "προσκλημένη και η Άλις δεν θα λάβει ποτέ κανένα μήνυμα)" |
| |
| #: ../../../developer/swarm.md:52 |
| msgid "A peer-to-peer connection between Alice and Bob is done." |
| msgstr "Μια σύνδεση μεταξύ ατόμων μεταξύ Αλίκης και Μπομπ έχει γίνει." |
| |
| #: ../../../developer/swarm.md:53 |
| msgid "" |
| "Alice pull the git repo of Bob. **WARNING this means that messages need a " |
| "connection, not from the DHT like today**" |
| msgstr "" |
| "Η Άλις τραβάει το git repo του Μπομπ. Αυτό σημαίνει ότι τα μηνύματα " |
| "χρειάζονται σύνδεση, όχι από το DHT όπως σήμερα." |
| |
| #: ../../../developer/swarm.md:54 |
| msgid "Alice validates commits from Bob" |
| msgstr "Η Άλις επικυρώνει τις δεσμεύσεις του Μπομπ." |
| |
| #: ../../../developer/swarm.md:55 |
| msgid "" |
| "To validate that Alice is a member, she removes the invite from `/invited` " |
| "directory, then adds her certificate into the `/members` directory" |
| msgstr "" |
| "Για να επικυρώσει ότι η Άλις είναι μέλος, αφαιρεί την πρόσκληση από τον " |
| "κατάλογο `/invited`, στη συνέχεια προσθέτει το πιστοποιητικό της στον " |
| "κατάλογο `/members`" |
| |
| #: ../../../developer/swarm.md:56 |
| msgid "" |
| "Once all commits validated and on her device, other members of the group are" |
| " discovered by Alice. with these peers, she will construct the **DRT** " |
| "(explained below) with Bob as a bootstrap." |
| msgstr "" |
| "Μόλις όλα τα δεσμεύματα επικυρωθούν και στη συσκευή της, τα άλλα μέλη της " |
| "ομάδας ανακαλύπτονται από την Άλις. Με αυτούς τους ομοτίμους, θα " |
| "κατασκευάσει το **DRT** (που εξηγείται παρακάτω) με τον Μπομπ ως bootstrap." |
| |
| #: ../../../developer/swarm.md:58 |
| msgid "Sending a message" |
| msgstr "Στείλουμε μήνυμα" |
| |
| #: ../../../developer/swarm.md:60 |
| msgid "*Alice sends a message*" |
| msgstr "*Η Άλις στέλνει μήνυμα*" |
| |
| #: ../../../developer/swarm.md:62 |
| msgid "" |
| "Sending a message is pretty simple. Alice writes a commit-message in the " |
| "following format:" |
| msgstr "Η Αλίκη γράφει ένα μήνυμα διαβεβαίωσης με την ακόλουθη μορφή:" |
| |
| #: ../../../developer/swarm.md:64 |
| msgid "**TODO format unclear**" |
| msgstr "**Το σχήμα TODO ασαφές**" |
| |
| #: ../../../developer/swarm.md:66 |
| msgid "" |
| "and adds her device and CRL to the repository if missing (others must be " |
| "able to verify the commit). Merge conflicts are avoided because we are " |
| "mostly based on commit messages, not files (unless CRLS + certificates but " |
| "they are located). then she announces the new commit via the **DRT** with a " |
| "service message (explained later) and pings the DHT for mobile devices (they" |
| " must receive a push notification)." |
| msgstr "" |
| "Η εταιρεία προσθέτει τη συσκευή και το CRL της στο αποθετήριο εάν λείπει (οι" |
| " άλλοι πρέπει να είναι σε θέση να επαληθεύσουν το commit). Οι συγκρούσεις " |
| "συγχώνευσης αποφεύγονται επειδή βασίζονται κυρίως σε μηνύματα commit, όχι σε" |
| " αρχεία (εκτός αν υπάρχουν πιστοποιητικά CRLS + αλλά βρίσκονται)." |
| |
| #: ../../../developer/swarm.md:68 |
| msgid "" |
| "For pinging other devices, the sender sends to other members a SIP message " |
| "with mimetype = \"application/im-gitmessage-id\" containing a JSON with the " |
| "\"deviceId\" which sends the message, the \"id\" of the conversation " |
| "related, and the \"commit\"" |
| msgstr "" |
| "Για την πιγκ άλλων συσκευών, ο αποστολέας στέλνει σε άλλα μέλη ένα μήνυμα " |
| "SIP με mimetype = \"application/im-gitmessage-id\" που περιέχει ένα JSON με " |
| "το \"deviceId\" που στέλνει το μήνυμα, το \"id\" της συνομιλίας που " |
| "σχετίζεται, και το \"commit\"" |
| |
| #: ../../../developer/swarm.md:70 |
| msgid "Receiving a message" |
| msgstr "Αποκάλυψη μηνύματος" |
| |
| #: ../../../developer/swarm.md:72 |
| msgid "*Bob receives the message from Alice*" |
| msgstr "*Ο Μπομπ λαμβάνει το μήνυμα από την Άλις*" |
| |
| #: ../../../developer/swarm.md:74 |
| msgid "*Bob* do a git pull on *Alice*" |
| msgstr "Ο Μπομπ κάνει μια στροφή στην Άλις." |
| |
| #: ../../../developer/swarm.md:75 |
| msgid "Commits MUST be verified via a hook" |
| msgstr "Οι δεσμεύσεις πρέπει να επαληθεύονται μέσω ενός χανκού" |
| |
| #: ../../../developer/swarm.md:76 |
| msgid "" |
| "If all commits are valid, commits are stored and displayed. Then *Bob* " |
| "announces the message via the DRT for other devices." |
| msgstr "" |
| "Εάν όλα τα commit είναι έγκυρα, τα commit αποθηκεύονται και εμφανίζονται." |
| |
| #: ../../../developer/swarm.md:77 |
| msgid "" |
| "If all commits are not valid, pull is canceled. *Alice* must reestablish her" |
| " state to a correct state. **TODO process*" |
| msgstr "" |
| "Αν όλα τα δεσμεύματα δεν είναι έγκυρα, το pull ακυρώνεται. *Αλίς* πρέπει να " |
| "αποκαταστήσει την κατάσταση της σε μια σωστή κατάσταση. *Πρόγραμμα TODO*" |
| |
| #: ../../../developer/swarm.md:79 |
| msgid "Validating a commit" |
| msgstr "Επαλήθευση της δέσμευσης" |
| |
| #: ../../../developer/swarm.md:81 |
| msgid "" |
| "To avoid users pushing some unwanted commits (with conflicts, false " |
| "messages, etc), this is how each commit (from the oldest to the newest one) " |
| "MUST be validated before merging a remote branch:" |
| msgstr "" |
| "Για να αποφευχθεί η επιβολή κάποιων ανεπιθύμητων δεσμεύσεων από τους χρήστες" |
| " (με συγκρούσεις, ψευδείς μηνύματα κλπ.), έτσι κάθε δεσμεύση (από την " |
| "παλαιότερη έως την νεότερη) ΑΠΟΥΡΕΙ να επικυρωθεί πριν συγχωνευτεί ένα " |
| "απομακρυσμένο κλάδο:" |
| |
| #: ../../../developer/swarm.md:83 |
| msgid "" |
| "Note: if the validation fails, the fetch is ignored and we do not merge the " |
| "branch (and remove the data), and the user should be notified Note2: If a " |
| "fetch is too big, it's not done (**TODO**)" |
| msgstr "" |
| "Σημείωση: αν η επικύρωση αποτύχει, η λήψη αγνοείται και δεν συγχωνεύουμε το " |
| "κλάδο (και αφαιρούμε τα δεδομένα), και ο χρήστης πρέπει να ειδοποιείται " |
| "Σημείωση2: Αν η λήψη είναι πολύ μεγάλη, δεν γίνεται (** TODO**)" |
| |
| #: ../../../developer/swarm.md:86 |
| msgid "" |
| "For each commits, check that the device that tries to send the commit is " |
| "authorized at this moment and that the certificates are present (in /devices" |
| " for the device, and in /members or /admins for the issuer)." |
| msgstr "" |
| "Για κάθε δέσμευση, ελέγξτε ότι η συσκευή που προσπαθεί να στείλει την " |
| "δέσμευση είναι εγκεκριμένη αυτή τη στιγμή και ότι τα πιστοποιητικά είναι " |
| "παρόντα (σε /τις συσκευές για τη συσκευή και σε /τους μέλη ή /τους " |
| "διαχειριστές για τον εκδότη)." |
| |
| #: ../../../developer/swarm.md:87 |
| msgid "" |
| "3 cases. The commit has 2 parents, so it's a merge, nothing more to validate" |
| " here" |
| msgstr "" |
| "Η αναφορά έχει δύο γονείς, οπότε είναι συγχώνευση, δεν υπάρχει τίποτα άλλο " |
| "να επικυρώσουμε εδώ." |
| |
| #: ../../../developer/swarm.md:88 |
| msgid "The commit has 0 parents, it's the initial commit:" |
| msgstr "Το δέσμευση έχει 0 γονείς, είναι η αρχική δέσμευση:" |
| |
| #: ../../../developer/swarm.md:89 |
| msgid "Check that admin cert is added" |
| msgstr "Ελέγξτε ότι το πιστοποιητικό διαχειριστή έχει προστεθεί" |
| |
| #: ../../../developer/swarm.md:90 |
| msgid "Check that device cert is added" |
| msgstr "Ελέγξτε ότι το πιστοποιητικό συσκευής έχει προστεθεί" |
| |
| #: ../../../developer/swarm.md:91 |
| msgid "Check CRLs added" |
| msgstr "Προσθήκη CRL ελέγχου" |
| |
| #: ../../../developer/swarm.md:92 |
| msgid "Check that no other file is added" |
| msgstr "Ελέγξτε ότι δεν προστέθηκε άλλο αρχείο" |
| |
| #: ../../../developer/swarm.md:93 |
| msgid "The commit has 1 parent, commit message is a JSON with a type:" |
| msgstr "Το commit έχει 1 γονέα, το μήνυμα commit είναι ένα JSON με τύπο:" |
| |
| #: ../../../developer/swarm.md:94 |
| msgid "If text (or other mime-type that doesn't change files)" |
| msgstr "Αν το κείμενο (ή άλλο είδος μειμ που δεν αλλάζει αρχεία)" |
| |
| #: ../../../developer/swarm.md:95 |
| msgid "Check signature from certificate in the repo" |
| msgstr "Ελέγχουσα υπογραφή από πιστοποιητικό στο repo" |
| |
| #: ../../../developer/swarm.md:96 |
| msgid "Check that no weird file is added outside device cert nor removed" |
| msgstr "" |
| "Ελέγξτε ότι δεν έχει προστεθεί παράξενο αρχείο εκτός πιστοποιητικού συσκευής" |
| " ούτε έχει αφαιρεθεί" |
| |
| #: ../../../developer/swarm.md:97 |
| msgid "If vote" |
| msgstr "Αν ψηφίσει" |
| |
| #: ../../../developer/swarm.md:98 |
| msgid "Check that voteType is supported (ban, unban)" |
| msgstr "Ελέγξτε ότι υποστηρίζεται το voteType (απαγόρευση, άπακτηση)" |
| |
| #: ../../../developer/swarm.md:99 |
| msgid "Check that vote is for the user that signs the commit" |
| msgstr "Ελέγξτε ότι η ψήφος είναι για τον χρήστη που υπογράφει την δέσμευση" |
| |
| #: ../../../developer/swarm.md:100 |
| msgid "Check that vote is from an admin and device present & not banned" |
| msgstr "" |
| "Ελέγξτε ότι η ψήφος είναι από έναν διαχειριστή και συσκευή που είναι παρόντα" |
| " & δεν απαγορεύεται" |
| |
| #: ../../../developer/swarm.md:101 ../../../developer/swarm.md:106 |
| #: ../../../developer/swarm.md:113 ../../../developer/swarm.md:119 |
| msgid "Check that no weird file is added nor removed" |
| msgstr "Ελέγξτε ότι δεν προστέθηκε ή αφαιρέθηκε κανένα παράξενο αρχείο" |
| |
| #: ../../../developer/swarm.md:102 |
| msgid "If member" |
| msgstr "Αν μέλος" |
| |
| #: ../../../developer/swarm.md:103 |
| msgid "If adds" |
| msgstr "Αν προσθέτει" |
| |
| #: ../../../developer/swarm.md:104 ../../../developer/swarm.md:110 |
| msgid "Check that the commit is correctly signed" |
| msgstr "Ελέγξτε ότι η ανακοίνωση υπογράφεται σωστά" |
| |
| #: ../../../developer/swarm.md:105 |
| msgid "Check that certificate is added in /invited" |
| msgstr "Ελέγξτε ότι το πιστοποιητικό έχει προστεθεί στο / προσκαλείται" |
| |
| #: ../../../developer/swarm.md:107 |
| msgid "If ONE_TO_ONE, check that we only have one admin, one member" |
| msgstr "Αν ONE_TO_ONE, ελέγξτε ότι έχουμε μόνο έναν διαχειριστή, ένα μέλος" |
| |
| #: ../../../developer/swarm.md:108 |
| msgid "If ADMIN_INVITES_ONLY, check that invite is from an admin" |
| msgstr "" |
| "Αν ADMIN_INVITES_ONLY, ελέγξτε ότι η πρόσκληση είναι από έναν διαχειριστή" |
| |
| #: ../../../developer/swarm.md:109 |
| msgid "If joins" |
| msgstr "Αν ενταχθεί" |
| |
| #: ../../../developer/swarm.md:111 |
| msgid "Check that device is added" |
| msgstr "Ελέγξτε ότι η συσκευή έχει προστεθεί" |
| |
| #: ../../../developer/swarm.md:112 |
| msgid "Check that invitation is moved to members" |
| msgstr "Ελέγξτε αν η πρόσκληση μεταφέρεται στα μέλη" |
| |
| #: ../../../developer/swarm.md:114 |
| msgid "If banned" |
| msgstr "Αν απαγορευθεί" |
| |
| #: ../../../developer/swarm.md:115 |
| msgid "Check that vote is valid" |
| msgstr "Ελέγξτε αν η ψήφος είναι έγκυρη." |
| |
| #: ../../../developer/swarm.md:116 |
| msgid "Check that the user is ban via an admin" |
| msgstr "Ελέγξτε ότι ο χρήστης απαγορεύεται μέσω διαχειριστής" |
| |
| #: ../../../developer/swarm.md:117 |
| msgid "Check that member or device certificate is moved to banned/" |
| msgstr "" |
| "Ελέγξτε αν το πιστοποιητικό μέλους ή συσκευής μεταφέρεται σε απαγορευμένο." |
| |
| #: ../../../developer/swarm.md:118 |
| msgid "Check that only files related to the vote are removed" |
| msgstr "Ελέγξτε ότι μόνο αρχεία που σχετίζονται με την ψηφοφορία αφαιρούνται" |
| |
| #: ../../../developer/swarm.md:120 |
| msgid "" |
| "else fail. Notify the user that they may be with an old version or that peer" |
| " tried to submit unwanted commits" |
| msgstr "" |
| "Ενημερώστε τον χρήστη ότι μπορεί να είναι με μια παλιά έκδοση ή ότι ο " |
| "συνάδελφος προσπάθησε να υποβάλει ανεπιθύμητες υποχρεώσεις" |
| |
| #: ../../../developer/swarm.md:123 |
| msgid "Ban a device" |
| msgstr "Απαγορεύστε μια συσκευή" |
| |
| #: ../../../developer/swarm.md:125 |
| msgid "*Alice, Bob, Carla, Denys are in a swarm. Alice bans Denys*" |
| msgstr "Η Άλις, ο Μπομπ, η Κάρλα, ο Ντένις είναι σε σμήνος." |
| |
| #: ../../../developer/swarm.md:127 |
| msgid "" |
| "This is one of the most difficult scenarios in our context. Without central " |
| "authority we can not trust:" |
| msgstr "Η Επιτροπή θα πρέπει να λάβει υπόψη την έκθεση αυτή." |
| |
| #: ../../../developer/swarm.md:129 |
| msgid "Timestamps of generated commits" |
| msgstr "Χρονοσημεία των υποχρεώσεων που δημιουργούνται" |
| |
| #: ../../../developer/swarm.md:130 |
| msgid "" |
| "Conflicts with banned devices. If multiple admin devices are present and if " |
| "Alice can speak with Bob but not Denys and Carla; Carla can speak with " |
| "Denys; Denys bans Alice, Alice bans Denys, what will be the state when the 4" |
| " members will merge the conversations." |
| msgstr "" |
| "Αν υπάρχουν πολλές συσκευές διοίκησης και αν η Άλις μπορεί να μιλήσει με τον" |
| " Μπομπ αλλά όχι με τον Ντένις και την Κάρλα, η Κάρλα μπορεί να μιλήσει με " |
| "τον Ντένις, ο Ντένις απαγορεύει την Άλις, η Άλις απαγορεύει τον Ντένις, ποια" |
| " θα είναι η κατάσταση όταν τα 4 μέλη θα συγχωνεύσουν τις συνομιλίες." |
| |
| #: ../../../developer/swarm.md:131 |
| msgid "" |
| "A device can be compromised, stolen or its certificate can expire. We should" |
| " be able to ban a device and avoid that it lies about its expiration or send" |
| " messages in the past (by changing its certificate or the timestamp of its " |
| "commit)." |
| msgstr "" |
| "Η Επιτροπή θα πρέπει να είναι σε θέση να απαγορεύσει μια συσκευή και να " |
| "αποφύγει το γεγονός ότι λέει ψέματα για την λήξη της ισχύος της ή να στέλνει" |
| " μηνύματα στο παρελθόν (με την αλλαγή του πιστοποιητικού της ή την " |
| "χρονοσημίδα της δέσμευσής της)." |
| |
| #: ../../../developer/swarm.md:133 |
| msgid "" |
| "Similar systems (with distributed group systems) are not so much, but these " |
| "are some examples:" |
| msgstr "" |
| "Τα παρόμοια συστήματα (με διανεμημένα συστήματα ομάδων) δεν είναι τόσο " |
| "πολλά, αλλά αυτά είναι μερικά παραδείγματα:" |
| |
| #: ../../../developer/swarm.md:135 |
| msgid "" |
| "[mpOTR doesn't define how to ban " |
| "someone](https://www.cypherpunks.ca/~iang/pubs/mpotr.pdf)" |
| msgstr "[Η MPOTR δεν ορίζει πώς να απαγορεύσεις κάποιον]" |
| |
| #: ../../../developer/swarm.md:136 |
| msgid "" |
| "Signal, without any central server for group chat (EDIT: they recently " |
| "change that point), doesn't give the ability to ban someone from a group." |
| msgstr "" |
| "Το σήμα, χωρίς κεντρικό διακομιστή για ομαδική συνομιλία (EDIT: πρόσφατα " |
| "άλλαξαν αυτό το σημείο), δεν δίνει τη δυνατότητα να απαγορεύσει κάποιος από " |
| "μια ομάδα." |
| |
| #: ../../../developer/swarm.md:138 |
| msgid "" |
| "This voting system needs a human action to ban someone or must be based on " |
| "the CRLs info from the repository (because we can not trust external CRLs)" |
| msgstr "" |
| "Αυτό το σύστημα ψήφου χρειάζεται ανθρώπινη δράση για να απαγορεύσει κάποιον " |
| "ή πρέπει να βασίζεται στις πληροφορίες των ΚΑΣ από το αποθετήριο (γιατί δεν " |
| "μπορούμε να εμπιστευτούμε εξωτερικούς ΚΑΣ)" |
| |
| #: ../../../developer/swarm.md:140 |
| msgid "Remove a device from a conversation" |
| msgstr "Αφαιρέστε μια συσκευή από μια συζήτηση" |
| |
| #: ../../../developer/swarm.md:142 |
| msgid "" |
| "This is the only part that MUST have a consensus to avoid conversation's " |
| "split, like if two members kick each other from the conversation, what will " |
| "see the third one?" |
| msgstr "" |
| "Αυτό είναι το μόνο μέρος που πρέπει να υπάρχει συναίνεση για να αποφευχθεί η" |
| " διαίρεση της συζήτησης, όπως αν δύο μέλη κλωτσήσουν ο ένας τον άλλο από τη " |
| "συζήτηση, τι θα δει το τρίτο;" |
| |
| #: ../../../developer/swarm.md:144 |
| msgid "" |
| "This is needed to detect revoked devices, or simply avoid getting unwanted " |
| "people present in a public room. The process is pretty similar between a " |
| "member and a device:" |
| msgstr "" |
| "Αυτό είναι απαραίτητο για να εντοπίσουμε ακυρωμένες συσκευές ή απλά να " |
| "αποφύγουμε την παρουσία ανεπιθύμητων ανθρώπων σε δημόσιο χώρο." |
| |
| #: ../../../developer/swarm.md:146 |
| msgid "*Alice removes Bob*" |
| msgstr "*Η 'λις βγάζει τον Μπομπ*" |
| |
| #: ../../../developer/swarm.md:148 |
| msgid "Note: Alice MUST be admins to vote" |
| msgstr "Σημείωση: Η Αλίκη πρέπει να είναι διοικητής για να ψηφίσει" |
| |
| #: ../../../developer/swarm.md:150 |
| msgid "" |
| "First, she votes for banning Bob. To do that, she creates the file in " |
| "/votes/ban/members/uri_bob/uri_alice (members can be replaced by devices for" |
| " a device, or invited for invites or admins for admins) and commits" |
| msgstr "" |
| "Πρώτα, ψηφίζει για την απαγόρευση του Bob. Για να το κάνει αυτό, δημιουργεί " |
| "το αρχείο σε /votes/ban/members/uri_bob/uri_alice (τα μέλη μπορούν να " |
| "αντικατασταθούν από συσκευές για μια συσκευή, ή να καλούνται για προσκλήσεις" |
| " ή διαχειριστές για διαχειριστές) και δεσμεύεται" |
| |
| #: ../../../developer/swarm.md:151 ../../../developer/swarm.md:157 |
| msgid "" |
| "Then she checks if the vote is resolved. This means that >50% of the admins " |
| "agree to ban Bob (if she is alone, it's sure it's more than 50%)." |
| msgstr "" |
| "Αυτό σημαίνει ότι >50% των διαχειριστών συμφωνούν να απαγορεύσουν τον Bob " |
| "(αν είναι μόνη, είναι σίγουρο ότι είναι πάνω από 50%)." |
| |
| #: ../../../developer/swarm.md:152 |
| msgid "" |
| "If the vote is resolved, files into /votes/ban can be removed, all files for" |
| " Bob in /members, /admins, /invited, /CRLs, /devices can be removed (or only" |
| " in /devices if it's a device that is banned) and Bob's certificate can be " |
| "placed into /banned/members/bob_uri.crt (or /banned/devices/uri.crt if a " |
| "device is banned) and committed to the repo" |
| msgstr "" |
| "Εάν η ψηφοφορία επιλυθεί, τα αρχεία που είναι /votes/ban μπορούν να " |
| "αφαιρεθούν, όλα τα αρχεία για τον Bob στα /members, /admins, /invited, " |
| "/CRLs, /devices μπορούν να αφαιρεθούν (ή μόνο στα /devices αν είναι συσκευή " |
| "που απαγορεύεται) και το πιστοποιητικό του Bob μπορεί να τοποθετηθεί στο " |
| "/banned/members/bob_uri.crt (ή /banned/devices/uri.crt αν μια συσκευή " |
| "απαγορεύεται) και να ανατεθεί στο repo" |
| |
| #: ../../../developer/swarm.md:153 |
| msgid "Then, Alice informs other users (outside Bob)" |
| msgstr "" |
| "Στη συνέχεια, η Alice ενημερώνει τους άλλους χρήστες (εκτός από τον Bob)" |
| |
| #: ../../../developer/swarm.md:155 |
| msgid "*Alice (admin) re-adds Bob (banned member)" |
| msgstr "*Η Άλις (διαχειριστής) προσθέτει ξανά τον Μπομπ (απαγορευμένο μέλος)" |
| |
| #: ../../../developer/swarm.md:156 |
| msgid "" |
| "Fir she votes for unbanning Bob. To do that, she creates the file in " |
| "/votes/unban/members/uri_bob/uri_alice (members can be replaced by devices " |
| "for a device, or invited for invites or admins for admins) and commits" |
| msgstr "" |
| "Για να το κάνει αυτό, δημιουργεί το αρχείο σε " |
| "/votes/unban/members/uri_bob/uri_alice (τα μέλη μπορούν να αντικατασταθούν " |
| "από συσκευές για μια συσκευή, ή να καλούνται για προσκλήσεις ή διαχειριστές " |
| "για διαχειριστές) και δεσμεύεται να" |
| |
| #: ../../../developer/swarm.md:158 |
| msgid "" |
| "If the vote is resolved, files into /votes/unban can be removed, all files " |
| "for Bob in /members, /admins, /invited, /CRLs, can be re-added (or only in " |
| "/devices if it's a device that is unbanned) and committed to the repo" |
| msgstr "" |
| "Εάν η ψηφοφορία επιλυθεί, τα αρχεία σε /votes/unban μπορούν να αφαιρεθούν, " |
| "όλα τα αρχεία για τον Bob σε /members, /admins, /invited, /CRLs, μπορούν να " |
| "προστεθούν ξανά (ή μόνο σε /devices αν είναι μια συσκευή που δεν " |
| "απαγορεύεται) και να δεσμευτούν στην repo" |
| |
| #: ../../../developer/swarm.md:160 |
| msgid "Remove a conversation" |
| msgstr "Αποσύρουμε μια συζήτηση" |
| |
| #: ../../../developer/swarm.md:162 |
| msgid "" |
| "Save in convInfos removed=time::now() (like removeContact saves in contacts)" |
| " that the conversation is removed and sync with other user's devices" |
| msgstr "" |
| "Αποθηκεύστε στο convInfos removed=time::now() (όπως αποθηκεύστεContact σε " |
| "επαφές) ότι η συζήτηση αφαιρείται και συγχρονίζεται με τις συσκευές άλλων " |
| "χρηστών" |
| |
| #: ../../../developer/swarm.md:163 |
| msgid "Now, if a new commit is received for this conversation it's ignored" |
| msgstr "Αν λάβει κανείς νέα ανακοίνωση για αυτή τη συζήτηση, αγνοείται." |
| |
| #: ../../../developer/swarm.md:164 |
| msgid "" |
| "Now, if Jami startup and the repo is still present, the conversation is not " |
| "announced to clients" |
| msgstr "" |
| "Αν η Τζάμι ξεκινά και η αναθεώρηση είναι ακόμα παρούσα, η συζήτηση δεν " |
| "ανακοινώνεται στους πελάτες." |
| |
| #: ../../../developer/swarm.md:165 |
| msgid "" |
| "Two cases: a. If no other member in the conversation we can immediately " |
| "remove the repository b. If still other members, commit that we leave the " |
| "conversation, and now wait that at least another device sync this message. " |
| "This avoids the fact that other members will still detect the user as a " |
| "valid member and still sends new message notifications." |
| msgstr "" |
| "Δύο περιπτώσεις: α. Αν δεν υπάρχει άλλος μέλος στη συζήτηση μπορούμε να " |
| "αφαιρέσουμε αμέσως το αποθετήριο β. Αν υπάρχουν ακόμα άλλοι μέλη, δεσμεύστε " |
| "να αφήσουμε τη συζήτηση και τώρα περιμένετε τουλάχιστον μια άλλη συσκευή να " |
| "συγχρονίσει αυτό το μήνυμα. Αυτό αποφεύγει το γεγονός ότι άλλοι μέλη θα " |
| "εντοπίσουν τον χρήστη ως έγκυρο μέλος και εξακολουθεί να στέλνει νέες " |
| "ειδοποιήσεις μηνυμάτων." |
| |
| #: ../../../developer/swarm.md:168 |
| msgid "" |
| "When we are sure that someone is synched, remove erased=time::now() and sync" |
| " with other user's devices" |
| msgstr "" |
| "Όταν είμαστε σίγουροι ότι κάποιος συγχρονίζεται, αφαιρέστε " |
| "διαγράφηκε=time::now() και συγχρονίστε με τις συσκευές άλλων χρηστών" |
| |
| #: ../../../developer/swarm.md:169 |
| msgid "" |
| "All devices owned by the user can now erase the repository and related files" |
| msgstr "" |
| "Όλες οι συσκευές που ανήκουν στον χρήστη μπορούν τώρα να διαγράψουν το " |
| "αποθετήριο και τα σχετικά αρχεία" |
| |
| #: ../../../developer/swarm.md:171 |
| msgid "How to specify a mode" |
| msgstr "Πώς να καθορίσετε τη λειτουργία" |
| |
| #: ../../../developer/swarm.md:173 |
| msgid "" |
| "Modes can not be changed through time. Or it's another conversation. So, " |
| "this data is stored in the initial commit message. The commit message will " |
| "be the following:" |
| msgstr "" |
| "Οι λειτουργίες δεν μπορούν να αλλάξουν με την πάροδο του χρόνου. Ή είναι μια" |
| " άλλη συζήτηση. Έτσι, αυτά τα δεδομένα αποθηκεύονται στο αρχικό μήνυμα " |
| "δέσμευσης." |
| |
| #: ../../../developer/swarm.md:184 |
| msgid "" |
| "For now, \"mode\" accepts values 0 (ONE_TO_ONE), 1 (ADMIN_INVITES_ONLY), 2 " |
| "(INVITES_ONLY), 3 (PUBLIC)" |
| msgstr "" |
| "Για την ώρα, η \"modality\" δέχεται τιμές 0 (ONE_TO_ONE), 1 " |
| "(ADMIN_INVITES_ONLY), 2 (INVITES_ONLY), 3 (PUBLIC)" |
| |
| #: ../../../developer/swarm.md:186 |
| msgid "Processus for 1:1 swarms" |
| msgstr "Διαδικασία για σμήνους 1:1" |
| |
| #: ../../../developer/swarm.md:188 |
| msgid "" |
| "The goal here is to keep the old API (addContact/removeContact, " |
| "sendTrustRequest/acceptTrustRequest/discardTrustRequest) to generate swarm " |
| "with a peer and its contact. This still implies some changes that we cannot " |
| "ignore:" |
| msgstr "" |
| "Ο στόχος εδώ είναι να διατηρηθεί η παλιά API (addContact/removeContact, " |
| "sendTrustRequest/acceptTrustRequest/discardTrustRequest) για να δημιουργηθεί" |
| " σμήνος με έναν ομοτίμο και τον επαφή του." |
| |
| #: ../../../developer/swarm.md:190 |
| msgid "" |
| "The process is still the same, an account can add a contact via addContact, " |
| "then send a TrustRequest via the DHT. But two changes are necessary:" |
| msgstr "" |
| "Η διαδικασία είναι ακόμα η ίδια, ένας λογαριασμός μπορεί να προσθέσει μια " |
| "επαφή μέσω addContact, στη συνέχεια να στείλει μια αίτηση εμπιστοσύνης μέσω " |
| "του DHT." |
| |
| #: ../../../developer/swarm.md:191 |
| msgid "" |
| "The TrustRequest embeds a \"conversationId\" to inform the peer what " |
| "conversation to clone when accepting the request" |
| msgstr "" |
| "Το TrustRequest ενσωματώνει ένα \"conversationId\" για να ενημερώσει τον " |
| "συνάδελφο για ποια συζήτηση να κλωνοποιήσει όταν αποδεχτεί το αίτημα" |
| |
| #: ../../../developer/swarm.md:192 |
| msgid "" |
| "TrustRequest are retried when contact come backs online. It's not the case " |
| "today (as we don't want to generate a new TrustRequest if the peer discard " |
| "the first). So, if an account receives a trust request, it will be " |
| "automatically ignored if the request with a related conversation is declined" |
| " (as convRequests are synched)" |
| msgstr "" |
| "Το TrustRequest δοκιμάζεται ξανά όταν η επαφή επιστρέφει στο διαδίκτυο. Δεν " |
| "είναι η περίπτωση σήμερα (όπως δεν θέλουμε να δημιουργήσουμε ένα νέο " |
| "TrustRequest αν ο συνάδελφος απορρίψει το πρώτο)." |
| |
| #: ../../../developer/swarm.md:194 |
| msgid "" |
| "Then, when a contact accepts the request, a period of sync is necessary, " |
| "because the contact now needs to clone the conversation." |
| msgstr "" |
| "Μετά, όταν ένας επαφές δέχεται το αίτημα, είναι απαραίτητη μια περίοδος " |
| "συγχρονισμού, επειδή ο επαφές τώρα χρειάζεται να κλωνοποιήσει τη συζήτηση." |
| |
| #: ../../../developer/swarm.md:196 |
| msgid "" |
| "removeContact() will remove the contact and related 1:1 conversations (with " |
| "the same process as \"Remove a conversation\"). The only note here is that " |
| "if we ban a contact, we don't wait for sync, we just remove all related " |
| "files." |
| msgstr "" |
| "removeContact() θα αφαιρέσει την επαφή και τις σχετικές συζητήσεις 1:1 (με " |
| "την ίδια διαδικασία με την \"Αφαίρεση μιας συζήτησης\"). Το μόνο σημείωμα " |
| "εδώ είναι ότι αν απαγορεύσουμε μια επαφή, δεν περιμένουμε την συγχρονισμό, " |
| "απλά αφαιρούμε όλα τα σχετικά αρχεία." |
| |
| #: ../../../developer/swarm.md:198 |
| msgid "Tricky scenarios" |
| msgstr "Δυσκολότερα σενάρια" |
| |
| #: ../../../developer/swarm.md:200 |
| msgid "" |
| "There are some cases where two conversations can be created. This is at " |
| "least two of those scenarios:" |
| msgstr "" |
| "Υπάρχουν ορισμένες περιπτώσεις όπου μπορεί να δημιουργηθούν δύο συζητήσεις." |
| |
| #: ../../../developer/swarm.md:202 ../../../developer/swarm.md:205 |
| msgid "Alice adds Bob" |
| msgstr "Η Άλις προσθέτει τον Μπομπ." |
| |
| #: ../../../developer/swarm.md:203 |
| msgid "Bob accepts" |
| msgstr "Ο Μπομπ δέχεται." |
| |
| #: ../../../developer/swarm.md:204 |
| msgid "Alice removes Bob" |
| msgstr "Η Άλις αφαιρεί τον Μπομπ." |
| |
| #: ../../../developer/swarm.md:207 |
| msgid "or" |
| msgstr "ή" |
| |
| #: ../../../developer/swarm.md:209 |
| msgid "" |
| "1, Alice adds Bob & Bob adds Alice at the same time, but both are not " |
| "connected together" |
| msgstr "" |
| "1, η Αλίκη προσθέτει τον Μπομπ και ο Μπομπ προσθέτει την Αλίκη ταυτόχρονα, " |
| "αλλά και οι δύο δεν συνδέονται μεταξύ τους" |
| |
| #: ../../../developer/swarm.md:211 |
| msgid "" |
| "In this case, two conversations are generated. We don't want to remove " |
| "messages from users or choose one conversation here. So, sometimes two 1:1 " |
| "swarm between the same members will be shown. It will generate some bugs " |
| "during the transition time (as we don't want to break API, the inferred " |
| "conversation will be one of the two shown conversations, but for now it's " |
| "\"ok-ish\", will be fixed when clients will fully handle conversationId for " |
| "all APIs (calls, file transfer, etc))." |
| msgstr "" |
| "Σε αυτή την περίπτωση, δημιουργούνται δύο συνομιλίες. Δεν θέλουμε να " |
| "αφαιρέσουμε μηνύματα από τους χρήστες ή να επιλέξουμε μια συνομιλία εδώ. " |
| "Έτσι, μερικές φορές θα εμφανίζονται δύο σμήνος 1: 1 μεταξύ των ίδιων μελών. " |
| "Θα δημιουργήσει κάποια σφάλματα κατά τη διάρκεια του χρόνου μετάβασης (καθώς" |
| " δεν θέλουμε να σπάσουμε την API, η υποτεθείσα συνομιλία θα είναι μία από " |
| "τις δύο συνομιλίες που εμφανίζονται, αλλά για τώρα είναι \"ok-ish\", θα " |
| "διορθωθεί όταν οι πελάτες θα χειρίζονται πλήρως τη συνομιλία ID για όλες τις" |
| " API (καλέσεις, μεταφορά αρχείων, κλπ))." |
| |
| #: ../../../developer/swarm.md:213 |
| msgid "Note while syncing" |
| msgstr "Σημείωση κατά την συγχρονισμό" |
| |
| #: ../../../developer/swarm.md:215 |
| msgid "" |
| "After accepting a conversation's request, there is a time the daemon needs " |
| "to retrieve the distant repository. During this time, clients MUST show a " |
| "syncing view to give informations to the user. Note, while syncing:" |
| msgstr "" |
| "Μετά την αποδοχή του αιτήματος μιας συζήτησης, υπάρχει μια περίοδος κατά την" |
| " οποία ο δήμος χρειάζεται να ανακτήσει το απομακρυσμένο αποθετήριο. Κατά τη " |
| "διάρκεια αυτής της περιόδου, οι πελάτες ΑΠΟΥΠΕΙ να δείξουν μια προβολή " |
| "συγχρονισμού για να δώσουν πληροφορίες στον χρήστη." |
| |
| #: ../../../developer/swarm.md:218 |
| msgid "" |
| "ConfigurationManager::getConversations() will return the conversation's id " |
| "even while syncing" |
| msgstr "" |
| "ConfigurationManager::getConversations() θα επιστρέψει το id της συζήτησης " |
| "ακόμη και κατά τη συγχρονισμό" |
| |
| #: ../../../developer/swarm.md:219 |
| msgid "" |
| "ConfigurationManager::conversationInfos() will return {{\"syncing\": " |
| "\"true\"}} if syncing." |
| msgstr "" |
| "ConfigurationManager::conversationInfos() θα επιστρέψει {{\"σύγχρονση\": " |
| "\"σωστό\"}} εάν συγχρονιστεί." |
| |
| #: ../../../developer/swarm.md:220 |
| msgid "" |
| "ConfigurationManager::getConversationMembers() will return a map of two URIs" |
| " (the current account and the peer who sent the request)" |
| msgstr "" |
| "ConfigurationManager::getConversationMembers() θα επιστρέψει έναν χάρτη δύο " |
| "URI (το τρέχον λογαριασμό και τον συνάδελφο που έστειλε το αίτημα)" |
| |
| #: ../../../developer/swarm.md:222 |
| msgid "Conversations requests specification" |
| msgstr "Συζητήσεις ζητούν προδιαγραφή" |
| |
| #: ../../../developer/swarm.md:224 |
| msgid "" |
| "Conversations requests are represented by a **Map<String, String>** with the" |
| " following keys:" |
| msgstr "" |
| "Οι αιτήσεις συνομιλιών εκπροσωπούνται από ένα **Map<String, String>** με τα " |
| "ακόλουθα κλειδιά:" |
| |
| #: ../../../developer/swarm.md:226 |
| msgid "id: the conversation id" |
| msgstr "id: το id συζήτησης" |
| |
| #: ../../../developer/swarm.md:227 |
| msgid "from: uri of the sender" |
| msgstr "από: uri του αποστολέα" |
| |
| #: ../../../developer/swarm.md:228 |
| msgid "received: timestamp" |
| msgstr "Έκδοση: χρονοσημείο" |
| |
| #: ../../../developer/swarm.md:229 |
| msgid "title: (optional) name for the conversation" |
| msgstr "τίτλος: (προαιρετικό) όνομα για τη συζήτηση" |
| |
| #: ../../../developer/swarm.md:230 |
| msgid "description: (optional)" |
| msgstr "περιγραφή: (προαιρετική)" |
| |
| #: ../../../developer/swarm.md:231 |
| msgid "avatar: (optional)" |
| msgstr "avatar: (προαιρετική)" |
| |
| #: ../../../developer/swarm.md:233 |
| msgid "Conversation's profile synchronization" |
| msgstr "Συγχρονισμός προφίλ συνομιλίας" |
| |
| #: ../../../developer/swarm.md:235 |
| msgid "" |
| "To be identifiable, a conversation generally needs some metadata, like a " |
| "title (eg: Jami), a description (eg: some links, what is the project, etc), " |
| "and an image (the logo of the project). Those metadata are optional but " |
| "shared across all members, so need to be synced and incorporated in the " |
| "requests." |
| msgstr "" |
| "Για να είναι αναγνωρίσιμη, μια συζήτηση γενικά χρειάζεται κάποια " |
| "μεταδεδομένα, όπως ένα τίτλο (π.χ. Jami), μια περιγραφή (π.χ. κάποια " |
| "συνδέσμους, τι είναι το έργο, κλπ.), και μια εικόνα (το λογότυπο του έργου)." |
| |
| #: ../../../developer/swarm.md:237 |
| msgid "Storage in the repository" |
| msgstr "Αποθήκευση στο αποθετήριο" |
| |
| #: ../../../developer/swarm.md:239 |
| msgid "" |
| "The profile of the conversation is stored in a classic vCard file at the " |
| "root (`/profile.vcf`) like:" |
| msgstr "" |
| "Το προφίλ της συζήτησης αποθηκεύεται σε κλασικό αρχείο vCard στη ρίζα " |
| "(`/profile.vcf`) όπως:" |
| |
| #: ../../../developer/swarm.md:249 |
| msgid "Synchronization" |
| msgstr "Συγχρονισμός" |
| |
| #: ../../../developer/swarm.md:251 |
| msgid "" |
| "To update the vCard, a user with enough permissions (by default: =ADMIN) " |
| "needs to edit `/profile.vcf`. and will commit the file with the mimetype " |
| "`application/update-profile`. The new message is sent via the same mechanism" |
| " and all peers will receive the **MessageReceived** signal from the daemon. " |
| "The branch is dropped if the commit contains other files or too big or if " |
| "done by a non-authorized member (by default: <ADMIN)." |
| msgstr "" |
| "Για να ενημερώσει την vCard, ένας χρήστης με αρκετές άδειες (συνειδητά: " |
| "=ADMIN) πρέπει να επεξεργαστεί `/profile.vcf`. και θα δεσμεύσει το αρχείο με" |
| " το mimetype `application/update-profile`. Το νέο μήνυμα αποστέλλεται μέσω " |
| "του ίδιου μηχανισμού και όλοι οι συνάδελφοί θα λάβουν το σήμα " |
| "**MessageReceived** από το δαίμονα. Το κλάδο αποσύρεται εάν το commit " |
| "περιέχει άλλα αρχεία ή είναι πολύ μεγάλο ή εάν το κάνει ένα μη " |
| "εξουσιοδοτημένο μέλος (συνειδητά: <ADMIN)." |
| |
| #: ../../../developer/swarm.md:253 |
| msgid "Last Displayed" |
| msgstr "Τελευταία Εμφάνιση" |
| |
| #: ../../../developer/swarm.md:255 |
| msgid "" |
| "In the synchronized data, each devices sends to other devices the state of " |
| "the conversations. In this state, the last displayed is sent. However, " |
| "because each device can have its own state for each conversation, and " |
| "probably without the same last commit at some point, there is several " |
| "scenarios to take into account:" |
| msgstr "" |
| "Σε κάθε συσκευή, η ανακοίνωση αυτή είναι η τελευταία που εμφανίζεται. " |
| "Ωστόσο, επειδή κάθε συσκευή μπορεί να έχει τη δική της κατάσταση για κάθε " |
| "συζήτηση και πιθανότατα χωρίς την ίδια τελευταία δέσμευση σε κάποιο σημείο, " |
| "υπάρχουν διάφορα σενάρια που πρέπει να ληφθούν υπόψη:" |
| |
| #: ../../../developer/swarm.md:257 |
| msgid "5 scenarios are supported:" |
| msgstr "Υποστηρίζονται πέντε σενάρια:" |
| |
| #: ../../../developer/swarm.md:258 |
| msgid "" |
| "if the last displayed sent by other devices is the same as the current one, " |
| "there is nothing to do." |
| msgstr "" |
| "Αν η τελευταία εμφάνιση που αποστέλλεται από άλλες συσκευές είναι η ίδια με " |
| "την τρέχουσα, δεν υπάρχει τίποτα να γίνει." |
| |
| #: ../../../developer/swarm.md:259 |
| msgid "" |
| "if there is no last displayed for the current device, the remote displayed " |
| "message is used." |
| msgstr "" |
| "αν δεν υπάρχει τελευταία προβολή για την τρέχουσα συσκευή, χρησιμοποιείται " |
| "το τηλεπροβληθέν μήνυμα." |
| |
| #: ../../../developer/swarm.md:260 |
| msgid "" |
| "if the remote last displayed is not present in the repo, it means that the " |
| "commit will be fetched later, so cache the result" |
| msgstr "" |
| "Αν η τηλεχειρίνη που εμφανίστηκε τελευταία δεν είναι παρούσα στην αναφορά, " |
| "σημαίνει ότι το commit θα ληφθεί αργότερα, οπότε cache το αποτέλεσμα" |
| |
| #: ../../../developer/swarm.md:261 |
| msgid "" |
| "if the remote is already fetched, we check that the local last displayed is " |
| "before in the history to replace it" |
| msgstr "" |
| "Αν το τηλεχειριστήριο έχει ήδη φέρει, ελέγξουμε ότι το τοπικό τελευταίο " |
| "εμφανίζεται είναι πριν από την ιστορία για να το αντικαταστήσει" |
| |
| #: ../../../developer/swarm.md:262 |
| msgid "" |
| "Finally if a message is announced from the same author, it means that we " |
| "need to update the last displayed." |
| msgstr "" |
| "Τέλος, αν ανακοινωθεί ένα μήνυμα από τον ίδιο συγγραφέα, σημαίνει ότι πρέπει" |
| " να ενημερώσουμε το τελευταίο που εμφανίστηκε." |
| |
| #: ../../../developer/swarm.md:264 |
| msgid "Preferences" |
| msgstr "Προτιμήσεις" |
| |
| #: ../../../developer/swarm.md:266 |
| msgid "" |
| "Every conversation has attached preferences set by the user. Those " |
| "preferences are synced across user's devices. This can be the color of the " |
| "conversation, if the user wants to ignore notifications, file transfer size " |
| "limit, etc. For now, the recognized keys are:" |
| msgstr "" |
| "Κάθε συζήτηση έχει προσαρτηθεί προτιμήσεις που ορίζονται από τον χρήστη. " |
| "Αυτές οι προτιμήσεις συγχρονίζονται σε όλες τις συσκευές του χρήστη. Αυτό " |
| "μπορεί να είναι το χρώμα της συζήτησης, εάν ο χρήστης θέλει να αγνοήσει " |
| "ειδοποιήσεις, όριο μεγέθους μεταφοράς αρχείων, κλπ. Για το παρόν, τα " |
| "αναγνωρισμένα κλειδιά είναι:" |
| |
| #: ../../../developer/swarm.md:268 |
| msgid "\"color\" - the color of the conversation (#RRGGBB format)" |
| msgstr "" |
| |
| #: ../../../developer/swarm.md:269 |
| msgid "" |
| "\"ignoreNotifications\" - to ignore notifications for new messages in this " |
| "conversation" |
| msgstr "" |
| "\"αποκλείστε τις ειδοποιήσεις\" - να αγνοήσετε τις ειδοποιήσεις για νέα " |
| "μηνύματα σε αυτή τη συζήτηση" |
| |
| #: ../../../developer/swarm.md:270 |
| msgid "\"symbol\" - to define a default emoji." |
| msgstr "\"σύμβολο\" - για να καθορίσετε ένα προεπιλεγμένο emoji." |
| |
| #: ../../../developer/swarm.md:272 |
| msgid "" |
| "Those preferences are stored in a packet MapStringString, stored in " |
| "`accountDir/conversation_data/conversationId/preferences` and only sent " |
| "across devices of the same user via SyncMsg." |
| msgstr "" |
| "Οι προτιμήσεις αυτές αποθηκεύονται σε ένα πακέτο MapStringString, " |
| "αποθηκεύονται στο `accountDir/conversation_data/conversationId/preferences` " |
| "και διαβιβάζονται μόνο μεταξύ συσκευών του ίδιου χρήστη μέσω SyncMsg." |
| |
| #: ../../../developer/swarm.md:274 |
| msgid "The API to interact with the preferences are:" |
| msgstr "Η API για να αλληλεπιδρά με τις προτιμήσεις είναι:" |
| |
| #: ../../../developer/swarm.md:294 |
| msgid "Merge conflicts management" |
| msgstr "Διαχείριση συγκρούσεων συγχώνευσης" |
| |
| #: ../../../developer/swarm.md:296 |
| msgid "" |
| "Because two admins can change the description at the same time, a merge " |
| "conflict can occur on `profile.vcf`. In this case, the commit with the " |
| "higher hash (eg ffffff > 000000) will be chosen." |
| msgstr "" |
| "Επειδή δύο διαχειριστές μπορούν να αλλάξουν την περιγραφή ταυτόχρονα, μπορεί" |
| " να συμβεί σύγκρουση συγχώνευσης στο `profile.vcf`. Σε αυτή την περίπτωση, " |
| "θα επιλεγεί το commit με το υψηλότερο hash (π.χ. ffffff > 000000)." |
| |
| #: ../../../developer/swarm.md:298 |
| msgid "APIs" |
| msgstr "Επικοινωνιακές μονάδες" |
| |
| #: ../../../developer/swarm.md:300 |
| msgid "The user got 2 methods to get and set conversation's metadatas:" |
| msgstr "" |
| "Ο χρήστης έχει 2 μεθόδους για να πάρει και να ρυθμίσει τα μεταδεδομένα της " |
| "συζήτησης:" |
| |
| #: ../../../developer/swarm.md:326 |
| msgid "where `infos` is a `map<str, str>` with the following keys:" |
| msgstr "όπου `info` είναι `map<str, str>` με τα ακόλουθα κλειδιά:" |
| |
| #: ../../../developer/swarm.md:328 |
| msgid "mode: READ-ONLY" |
| msgstr "Τρόπος: Μόνο ανάγνωση" |
| |
| #: ../../../developer/swarm.md:329 |
| msgid "title" |
| msgstr "τίτλος" |
| |
| #: ../../../developer/swarm.md:330 |
| msgid "description" |
| msgstr "περιγραφή" |
| |
| #: ../../../developer/swarm.md:331 |
| msgid "avatar" |
| msgstr "Αβάταρ" |
| |
| #: ../../../developer/swarm.md:333 |
| msgid "Re-import an account (link/export)" |
| msgstr "Επαναεξαγωγή λογαριασμού (σύνδεση/εξαγωγή)" |
| |
| #: ../../../developer/swarm.md:335 |
| msgid "" |
| "The archive MUST contain conversationId to be able to retrieve conversations" |
| " on new commits after a re-import (because there is no invite at this " |
| "point). If a commit comes for a conversation not present there are two " |
| "possibilities:" |
| msgstr "" |
| "Το αρχείο πρέπει να περιέχει conversationId για να είναι σε θέση να " |
| "ανακτήσει συνομιλίες σε νέες commits μετά από επανεξαγωγή (γιατί δεν υπάρχει" |
| " πρόσκληση σε αυτό το σημείο)." |
| |
| #: ../../../developer/swarm.md:337 |
| msgid "" |
| "The conversationId is there, in this case, the daemon is able to re-clone " |
| "this conversation" |
| msgstr "" |
| "Η συζήτηση είναι εκεί, σε αυτή την περίπτωση, ο δαίμονας είναι σε θέση να " |
| "κλωνοποιήσει ξανά αυτή τη συζήτηση" |
| |
| #: ../../../developer/swarm.md:338 |
| msgid "" |
| "The conversationId is missing, so the daemon asks (via a message " |
| "`{{\"application/invite\", conversationId}}`) a new invite that the user " |
| "needs to (re)accepts" |
| msgstr "" |
| "Η συζήτησηId λείπει, οπότε το δαίμονο ζητά (μέσω ενός μηνύματος " |
| "`{{\"ειστολή/καλίδα\", conversationId}}`) μια νέα πρόσκληση που ο χρήστης " |
| "πρέπει να (επαν) αποδεχθεί" |
| |
| #: ../../../developer/swarm.md:340 |
| msgid "" |
| "Note, a conversation can only be retrieved if a contact or another device is" |
| " there, else it will be lost. There is no magic." |
| msgstr "" |
| "Σημείωση, μια συζήτηση μπορεί να ανακτηθεί μόνο αν υπάρχει μια επαφή ή άλλη " |
| "συσκευή, αλλιώς θα χαθεί." |
| |
| #: ../../../developer/swarm.md:342 |
| msgid "Used protocols" |
| msgstr "Χρησιμοποιημένα πρωτόκολλα" |
| |
| #: ../../../developer/swarm.md:344 |
| msgid "Git" |
| msgstr "- Αρκετά." |
| |
| #: ../../../developer/swarm.md:346 |
| msgid "Why this choice" |
| msgstr "Γιατί αυτή η επιλογή" |
| |
| #: ../../../developer/swarm.md:348 |
| msgid "" |
| "Each conversation will be a git repository. This choice is motivated by:" |
| msgstr "Κάθε συζήτηση θα είναι ένα αποθετήριο git." |
| |
| #: ../../../developer/swarm.md:350 |
| msgid "" |
| "We need to sync and order messages. The Merkle Tree is the perfect structure" |
| " to do that and can be linearized by merging branches. Moreover, because " |
| "it's massively used by Git, it's easy to sync between devices." |
| msgstr "" |
| "Πρέπει να συγχρονίσουμε και να παραγγείλουμε μηνύματα. Το Merkle Tree είναι " |
| "η τέλεια δομή για να το κάνουμε αυτό και μπορεί να γίνει γραμμισμένη με τη " |
| "συγχώνευση των κλάδων. Επιπλέον, επειδή χρησιμοποιείται σε μαζική βάση από " |
| "το Git, είναι εύκολο να συγχρονιστεί μεταξύ των συσκευών." |
| |
| #: ../../../developer/swarm.md:351 |
| msgid "Distributed by nature. Massively used. Lots of backends and pluggable." |
| msgstr "" |
| "Διανέμεται από τη φύση, χρησιμοποιείται σε μεγάλο βαθμό, έχει πολλά backend " |
| "και είναι συνδεδετέα." |
| |
| #: ../../../developer/swarm.md:352 |
| msgid "Can verify commits via hooks and massively used crypto" |
| msgstr "" |
| "Μπορεί να επαληθεύσει τις δεσμεύσεις μέσω χανκς και ευρέως χρησιμοποιούμενων" |
| " κρυπτονομισμάτων" |
| |
| #: ../../../developer/swarm.md:353 |
| msgid "Can be stored in a database if necessary" |
| msgstr "Μπορεί να αποθηκευτεί σε βάση δεδομένων, εάν είναι απαραίτητο" |
| |
| #: ../../../developer/swarm.md:354 |
| msgid "Conflicts are avoided by using commit messages, not files." |
| msgstr "" |
| "Οι συγκρούσεις αποφεύγονται χρησιμοποιώντας μηνύματα commit, όχι αρχεία." |
| |
| #: ../../../developer/swarm.md:356 |
| msgid "What we have to validate" |
| msgstr "Τι πρέπει να επιβεβαιώσουμε" |
| |
| #: ../../../developer/swarm.md:358 |
| msgid "Performance? `git.lock` can be low" |
| msgstr "Δοκιμασία: `git.lock` μπορεί να είναι χαμηλή" |
| |
| #: ../../../developer/swarm.md:359 |
| msgid "Hooks in libgit2" |
| msgstr "Κάντρα σε libgit2" |
| |
| #: ../../../developer/swarm.md:360 |
| msgid "Multiple pulls at the same time?" |
| msgstr "Πολλαπλές τραβήξεις ταυτόχρονα;" |
| |
| #: ../../../developer/swarm.md:362 |
| msgid "Limits" |
| msgstr "Περιορισμοί" |
| |
| #: ../../../developer/swarm.md:364 |
| msgid "" |
| "History can not be deleted. To delete a conversation, the device has to " |
| "leave the conversation and create another one." |
| msgstr "" |
| "Για να διαγράψει μια συζήτηση, η συσκευή πρέπει να φύγει από τη συζήτηση και" |
| " να δημιουργήσει μια άλλη." |
| |
| #: ../../../developer/swarm.md:366 |
| msgid "" |
| "However, non-permanent messages (like messages readable only for some " |
| "minutes) can be sent via a special message via the DRT (like Typing or Read" |
| " notifications)." |
| msgstr "" |
| "Ωστόσο, μη μόνιμα μηνύματα (όπως μηνύματα που μπορούν να διαβάζονται μόνο " |
| "για μερικά λεπτά) μπορούν να αποσταλούν μέσω ειδικού μηνύματος μέσω του DRT " |
| "(όπως ειδοποιήσεις Τάπωσης ή Διαβάσεως)." |
| |
| #: ../../../developer/swarm.md:368 |
| msgid "Structure" |
| msgstr "Διαρθρωση" |
| |
| #: ../../../developer/swarm.md:399 |
| msgid "" |
| "Swarm massively changes file transfer. Now, all the history is syncing, " |
| "allowing all devices in the conversation to easily retrieve old files. This " |
| "changes allow us to move from a logic where the sender pushed the file on " |
| "other devices, via trying to connect to their devices (This was bad because " |
| "not really resistant to connections changes/failures and needed a manual " |
| "retry) to a logic where the sender allow other devices to download. " |
| "Moreover, any device having the file can be the host for other devices, " |
| "allowing to retrieve files even if the sender is not there." |
| msgstr "" |
| "Η Swarm αλλάζει μαζικά τη μεταφορά αρχείων. Τώρα, όλη η ιστορία " |
| "συγχρονίζεται, επιτρέποντας σε όλες τις συσκευές στη συζήτηση να ανακτούν " |
| "εύκολα παλιά αρχεία. Αυτές οι αλλαγές μας επιτρέπουν να μετακινηθούμε από " |
| "μια λογική όπου ο αποστολέας έσπρωξε το αρχείο σε άλλες συσκευές, μέσω της " |
| "προσπάθειας να συνδεθούμε με τις συσκευές τους (αυτό ήταν κακό επειδή δεν " |
| "ήταν πραγματικά ανθεκτικό στις αλλαγές / αποτυχίες συνδέσεων και χρειαζόταν " |
| "μια χειροκίνητη επανεξέταση) σε μια λογική όπου ο αποστολέας επιτρέπει σε " |
| "άλλες συσκευές να κατεβάσουν. Επιπλέον, οποιαδήποτε συσκευή που έχει το " |
| "αρχείο μπορεί να είναι ο ξενιστής για άλλες συσκευές, επιτρέποντας να " |
| "ανακτήσει αρχεία ακόμη και αν ο αποστολέας δεν είναι εκεί." |
| |
| #: ../../../developer/swarm.md:403 |
| msgid "" |
| "The sender adds a new commit in the conversation with the following format:" |
| msgstr "" |
| "Ο αποστολέας προσθέτει μια νέα δέσμευση στη συζήτηση με την ακόλουθη μορφή:" |
| |
| #: ../../../developer/swarm.md:413 |
| msgid "" |
| "and creates a link in " |
| "`${data_path}/conversation_data/${conversation_id}/${file_id}` where " |
| "`file_id=${commitid}_${value[\"tid\"]}.${extension}`" |
| msgstr "" |
| "και δημιουργεί μια σύνδεση στο " |
| "`${data_path}/conversation_data/${conversation_id}/${file_id}` όπου " |
| "`file_id=${commitid}_${value[\"tide\"]}.${extension}`" |
| |
| #: ../../../developer/swarm.md:415 |
| msgid "" |
| "Then, the receiver can now download the files by contacting the devices " |
| "hosting the file by opening a channel with `name=\"data-transfer://\" + " |
| "conversationId + \"/\" + currentDeviceId() + \"/\" + fileId` and store the " |
| "info that the file is waiting in " |
| "`${data_path}/conversation_data/${conversation_id}/waiting`" |
| msgstr "" |
| "Στη συνέχεια, ο δέκτης μπορεί τώρα να κατεβάσει τα αρχεία επικοινωνώντας με " |
| "τις συσκευές που φιλοξενούν το αρχείο ανοίγοντας ένα κανάλι με `name=\"data-" |
| "transfer://\" + conversationId + \"/\" + currentDeviceId() + \"/\" + fileId`" |
| " και αποθηκεύοντας τις πληροφορίες που περιμένει το αρχείο σε " |
| "`${data_path}/conversation_data/${conversation_id}/waiting`" |
| |
| #: ../../../developer/swarm.md:417 |
| msgid "" |
| "The device receiving the connection will accepts the channel by verifying if" |
| " the file can be sent (if sha3sum is correct and if file exists). The " |
| "receiver will keep the first opened channel, close the others and write into" |
| " a file (with the same path as the sender: " |
| "`${data_path}/conversation_data/${conversation_id}/${file_id}`) all incoming" |
| " data." |
| msgstr "" |
| "Η συσκευή που λαμβάνει την σύνδεση θα αποδεχθεί το κανάλι επιβεβαιώνοντας " |
| "εάν το αρχείο μπορεί να αποσταλεί (αν sha3sum είναι σωστό και αν υπάρχει " |
| "αρχείο). Ο δέκτης θα κρατήσει το πρώτο ανοιχτό κανάλι, θα κλείσει τα " |
| "υπόλοιπα και θα γράψει σε ένα αρχείο (με την ίδια διαδρομή με τον αποστολέα:" |
| " `${data_path}/conversation_data/${conversation_id}/${file_id}`) όλα τα " |
| "εισερχόμενα δεδομένα." |
| |
| #: ../../../developer/swarm.md:419 |
| msgid "" |
| "When the transfer is finished or the channel closed, the sha3sum is verified" |
| " to validate that the file is correct (else it's deleted). If valid, the " |
| "file will be removed from the waiting." |
| msgstr "" |
| "Όταν η μεταφορά ολοκληρωθεί ή το κανάλι κλείσει, το sha3sum επαληθεύεται για" |
| " να επικυρώσει ότι το αρχείο είναι σωστό (εάν δεν διαγραφεί)." |
| |
| #: ../../../developer/swarm.md:421 |
| msgid "" |
| "In case of failure, when a device of the conversation will be back online, " |
| "we will ask for all waiting files by the same way." |
| msgstr "" |
| "Σε περίπτωση αποτυχίας, όταν μια συσκευή της συζήτησης θα είναι ξανά online," |
| " θα ζητήσουμε όλα τα αρχεία αναμονής με τον ίδιο τρόπο." |
| |
| #: ../../../developer/swarm.md:423 |
| msgid "Call in swarm" |
| msgstr "Καλέστε το σμήνος" |
| |
| #: ../../../developer/swarm.md:425 |
| msgid "TODO: nameserver part" |
| msgstr "ΠΟΛΟ: μέρος του Nameserver" |
| |
| #: ../../../developer/swarm.md:427 |
| msgid "Idea" |
| msgstr "Ιδέα" |
| |
| #: ../../../developer/swarm.md:429 |
| msgid "" |
| "A swarm conversation can have multiple rendez-vous. A rendez-vous is defined" |
| " by the following uri:" |
| msgstr "Μια συνομιλία σμήνος μπορεί να έχει πολλαπλά rendez-vous." |
| |
| #: ../../../developer/swarm.md:431 |
| msgid "" |
| "\"accountUri/deviceId/conversationId/confId\" where accountUri/deviceId " |
| "describes the host." |
| msgstr "" |
| "\"accountUri/deviceId/conversationId/confId\" όπου ο λογαριασμόςUri/deviceId" |
| " περιγράφει τον οικοδεσπότη." |
| |
| #: ../../../developer/swarm.md:433 |
| msgid "The host can be determined via two ways:" |
| msgstr "Ο οικοδεσπότης μπορεί να προσδιοριστεί με δύο τρόπους:" |
| |
| #: ../../../developer/swarm.md:435 |
| msgid "" |
| "In the swarm metadatas. Where it's stored like the title/desc/avatar of the " |
| "room" |
| msgstr "" |
| "Στο σμήνος μεταδιδάτες, όπου είναι αποθηκευμένα όπως το τίτλο/γραφία/αβάταρ " |
| "του δωματίου." |
| |
| #: ../../../developer/swarm.md:436 |
| msgid "Or the initial caller." |
| msgstr "Ή ο αρχικός καλεσμένος." |
| |
| #: ../../../developer/swarm.md:438 |
| msgid "" |
| "When starting a call, the host will add a new commit to the swarm, with the " |
| "URI to join (accountUri/deviceId/conversationId/confId). This will be valid " |
| "till the end of the call (announced by a commit with the duration to show)" |
| msgstr "" |
| "Όταν αρχίζει μια κλήση, ο οικοδεσπότης θα προσθέσει μια νέα δέσμευση στο " |
| "σμήνος, με το URI να συμμετάσχει " |
| "(accountUri/deviceId/conversationId/confId)." |
| |
| #: ../../../developer/swarm.md:441 |
| msgid "" |
| "So every part will receive the infos that a call has started and will be " |
| "able to join it by calling it." |
| msgstr "" |
| "Έτσι κάθε μέρος θα λάβει τις πληροφορίες ότι μια κλήση έχει ξεκινήσει και θα" |
| " είναι σε θέση να συμμετάσχει σε αυτήν καλώντας την." |
| |
| #: ../../../developer/swarm.md:443 |
| msgid "Attacks?" |
| msgstr "Επιθέσεις;" |
| |
| #: ../../../developer/swarm.md:445 |
| msgid "Avoid git bombs" |
| msgstr "Αποφύγετε τις βόμβες git" |
| |
| #: ../../../developer/swarm.md:447 |
| msgid "Notes" |
| msgstr "Σημειώσεις" |
| |
| #: ../../../developer/swarm.md:449 |
| msgid "" |
| "The timestamp of a commit can be trusted because it's editable. Only the " |
| "user's timestamp can be trusted." |
| msgstr "" |
| "Η χρονοσημίδα ενός commit μπορεί να εμπιστευτείται επειδή είναι " |
| "επεξεργασόμενη. Μόνο η χρονοσημίδα του χρήστη μπορεί να εμπιστευτείται." |
| |
| #: ../../../developer/swarm.md:451 |
| msgid "TLS" |
| msgstr "TLS" |
| |
| #: ../../../developer/swarm.md:453 |
| msgid "" |
| "Git operations, control messages, files, and other things will use a p2p TLS" |
| " v1.3 link with only ciphers which guaranty PFS. So each key is renegotiated" |
| " for each new connexion." |
| msgstr "" |
| "Οι λειτουργίες Git, τα μηνύματα ελέγχου, τα αρχεία και άλλα πράγματα θα " |
| "χρησιμοποιούν μια p2p TLS v1.3 σύνδεση με μόνο κρυπτογραφίες που εγγυώνται " |
| "PFS. Έτσι κάθε κλειδί αναδιαπραγματεύεται για κάθε νέα σύνδεση." |
| |
| #: ../../../developer/swarm.md:455 |
| msgid "DHT (udp)" |
| msgstr "DHT (udp)" |
| |
| #: ../../../developer/swarm.md:457 |
| msgid "" |
| "Used to send messages for mobiles (to trigger push notifications) and to " |
| "initiate TCP connexions." |
| msgstr "" |
| "Χρησιμοποιείται για την αποστολή μηνυμάτων για κινητά (για την ενεργοποίηση " |
| "ειδοποιήσεων push) και για την έναρξη συνδέσεων TCP." |
| |
| #: ../../../developer/swarm.md:459 |
| msgid "Network activity" |
| msgstr "Δικτυακή δραστηριότητα" |
| |
| #: ../../../developer/swarm.md:461 |
| msgid "Process to invite someone" |
| msgstr "Η διαδικασία για να καλέσετε κάποιον" |
| |
| #: ../../../developer/swarm.md:463 |
| msgid "Alice wants to invite Bob:" |
| msgstr "Η Άλις θέλει να καλέσει τον Μπομπ:" |
| |
| #: ../../../developer/swarm.md:465 |
| msgid "Alice adds bob to a conversation" |
| msgstr "Η Άλις προσθέτει τον Μπομπ σε μια συζήτηση" |
| |
| #: ../../../developer/swarm.md:466 |
| msgid "" |
| "Alice generates an invite: { \"application/invite+json\" : { " |
| "\"conversationId\": \"$id\", \"members\": [{...}] }}" |
| msgstr "" |
| |
| #: ../../../developer/swarm.md:470 |
| msgid "" |
| "Two possibilities for sending the message a. If not connected, via the DHT" |
| " b. Else, Alice sends on the SIP channel" |
| msgstr "" |
| "Δύο δυνατότητες για την αποστολή του μηνύματος α. Αν δεν είναι συνδεδεμένο, " |
| "μέσω του DHT b. Διαφορετικά, η Alice στέλνει στο κανάλι SIP" |
| |
| #: ../../../developer/swarm.md:473 |
| msgid "" |
| "Two possibilities for Bob a. Receives the invite, a signal is emitted for " |
| "the client b. Not connected, so will never receive the request cause Alice " |
| "must not know if Bob just ignored or blocked Alice. The only way is to " |
| "regenerate a new invite via a new message (cf. next scenario)" |
| msgstr "" |
| "Δύο πιθανότητες για τον Bob a. Λαμβάνει την πρόσκληση, ένα σήμα εκπέμπεται " |
| "για τον πελάτη b. Δεν συνδέεται, έτσι δεν θα λάβει ποτέ την αίτηση, επειδή η" |
| " Alice δεν πρέπει να ξέρει αν ο Bob απλά αγνοεί ή μπλοκάρει την Alice." |
| |
| #: ../../../developer/swarm.md:477 |
| msgid "Process to send a message to someone" |
| msgstr "Η διαδικασία για να στείλετε μήνυμα σε κάποιον" |
| |
| #: ../../../developer/swarm.md:479 |
| msgid "Alice wants to send a message to Bob:" |
| msgstr "Η Άλις θέλει να στείλει ένα μήνυμα στον Μπομπ:" |
| |
| #: ../../../developer/swarm.md:481 |
| msgid "Alice adds a message in the repo, giving an ID" |
| msgstr "Η Άλις προσθέτει ένα μήνυμα στο repo, δίνοντας ταυτότητα" |
| |
| #: ../../../developer/swarm.md:482 |
| msgid "Alice gets a message received (from herself) if successful" |
| msgstr "Η Άλις λαμβάνει ένα μήνυμα (από την ίδια) αν επιτύχει" |
| |
| #: ../../../developer/swarm.md:483 |
| msgid "" |
| "Two possibilities, alice and bob are connected, or not. In both case a " |
| "message is crafted: { \"application/im-gitmessage-id\" : " |
| "\"{\"id\":\"$convId\", \"commit\":\"$commitId\", \"deviceId\": " |
| "\"$alice_device_hash\"}\"}. a. If not connected, via the DHT b. Else, " |
| "Alice sends on the SIP channel" |
| msgstr "" |
| "Δύο πιθανότητες, η Alice και ο Bob είναι συνδεδεμένοι ή όχι. Σε και τις δύο " |
| "περιπτώσεις δημιουργείται ένα μήνυμα: { \"application/im-gitmessage-id\" : " |
| "\"{\"id\":\"$convId\", \"commit\":\"$commitId\", \"deviceId\": " |
| "\"$alice_device_hash\"}\"}." |
| |
| #: ../../../developer/swarm.md:486 |
| msgid "" |
| "Four possibilities for Bob: a. Bob is not connected to Alice, so if he " |
| "trusts Alice, ask for a new connection and go to b. b. If connected, fetch " |
| "from Alice and announce new messages c. Bob doesn't know that conversation." |
| " Ask through the DHT to get an invite first to be able to accept that " |
| "conversation ({\"application/invite\", conversationId}) d. Bob is " |
| "disconnected (no network, or just closed). He will not receive the new " |
| "message but will try to sync when the next connection will occur" |
| msgstr "" |
| "Τέσσερις πιθανότητες για τον Bob: a. Ο Bob δεν συνδέεται με την Alice, οπότε" |
| " αν εμπιστεύεται την Alice, ζητήστε μια νέα σύνδεση και πηγαίνετε στο b. b. " |
| "Αν συνδέεται, πάρτε από την Alice και ανακοινώστε νέα μηνύματα c. Ο Bob δεν " |
| "γνωρίζει αυτή τη συζήτηση. Ζητήστε μέσω του DHT να πάρετε μια πρόσκληση " |
| "πρώτα για να μπορέσετε να δεχτείτε αυτή τη συζήτηση ({\"εικείμενη " |
| "αίτηση/προσκληση\", συζήτησηId}) d. Ο Bob είναι αποσυνδεδεμένος (δεν υπάρχει" |
| " δίκτυο, ή απλά κλειστό). Δεν θα λάβει το νέο μήνυμα αλλά θα προσπαθήσει να " |
| "συγχρονιστεί όταν θα συμβεί η επόμενη σύνδεση" |
| |
| #: ../../../developer/swarm.md:495 |
| msgid "![Diagram: swarm chat classes](images/swarm-chat-classes-diagram.jpg)" |
| msgstr "! [Σχέδιο: μαθήματα συνομιλίας σμήνος]" |
| |
| #: ../../../developer/swarm.md:495 |
| msgid "Diagram: swarm chat classes" |
| msgstr "Σχέδιο: μαθήματα συνομιλίας σμήνος" |
| |
| #: ../../../developer/swarm.md:497 |
| msgid "Supported messages" |
| msgstr "" |
| |
| #: ../../../developer/swarm.md:499 |
| msgid "Initial message" |
| msgstr "" |
| |
| #: ../../../developer/swarm.md:509 |
| msgid "Represents the first commit of a repository and contains the mode:" |
| msgstr "" |
| |
| #: ../../../developer/swarm.md:514 |
| msgid "and `invited` if mode = 0." |
| msgstr "" |
| |
| #: ../../../developer/swarm.md:516 |
| msgid "Text message" |
| msgstr "" |
| |
| #: ../../../developer/swarm.md:526 |
| msgid "Or for an edition:" |
| msgstr "" |
| |
| #: ../../../developer/swarm.md:538 |
| msgid "Show the end of a call (duration in milliseconds):" |
| msgstr "" |
| |
| #: ../../../developer/swarm.md:547 |
| msgid "Or for hosting a call in a group (when it starts)" |
| msgstr "" |
| |
| #: ../../../developer/swarm.md:558 |
| msgid "" |
| "A second commit with the same JSON + `duration` is added at the end of the " |
| "call when hosted." |
| msgstr "" |
| |
| #: ../../../developer/swarm.md:560 |
| msgid "Add a file" |
| msgstr "" |
| |
| #: ../../../developer/swarm.md:572 |
| msgid "`totalSize` is in bits," |
| msgstr "" |
| |
| #: ../../../developer/swarm.md:574 |
| msgid "Updating profile" |
| msgstr "" |
| |
| #: ../../../developer/swarm.md:582 |
| msgid "Member event" |
| msgstr "" |
| |
| #: ../../../developer/swarm.md:592 |
| msgid "" |
| "When a member is invited, join or leave or is kicked from a conversation" |
| msgstr "" |
| |
| #: ../../../developer/swarm.md:594 |
| msgid "Vote event" |
| msgstr "" |
| |
| #: ../../../developer/swarm.md:596 |
| msgid "" |
| "Generated by administrators to add a vote for kicking or un-kicking someone." |
| msgstr "" |
| |
| #: ../../../developer/swarm.md:608 |
| msgid "**!! OLD DRAFT !!**" |
| msgstr "**!! Παλιά Σχέδιο!!**" |
| |
| #: ../../../developer/swarm.md:610 |
| msgid "" |
| "Note: Following notes are not organized yet. Just some line of thoughts." |
| msgstr "Σημείωση: Οι παρακάτω σημειώσεις δεν είναι ακόμα οργανωμένες." |
| |
| #: ../../../developer/swarm.md:612 |
| msgid "Crypto improvements." |
| msgstr "Βελτιώσεις στα κρυπτογράφημα." |
| |
| #: ../../../developer/swarm.md:614 |
| msgid "" |
| "For a serious group chat feature, we also need serious crypto. With the " |
| "current design, if a certificate is stolen as the previous DHT values of a " |
| "conversation, the conversation can be decrypted. Maybe we need to go to " |
| "something like **Double ratchet**." |
| msgstr "" |
| "Για μια σοβαρή ομάδα κουτ λειτουργία, χρειαζόμαστε επίσης σοβαρό " |
| "κρυπτογράφημα. Με το τρέχον σχεδιασμό, αν ένα πιστοποιητικό κλαπεί ως " |
| "προηγούμενες τιμές DHT μιας συζήτησης, η συζήτηση μπορεί να " |
| "αποκρυπτογραφηθεί. Ίσως πρέπει να πάμε σε κάτι σαν **Double ratchet**." |
| |
| #: ../../../developer/swarm.md:616 |
| msgid "" |
| "Note: a lib might exist to implement group conversations. TODO, investigate." |
| msgstr "" |
| "Σημείωση: μπορεί να υπάρχει ένα lib για να εφαρμόσει ομαδικές συνομιλίες." |
| |
| #: ../../../developer/swarm.md:618 |
| msgid "Needs ECC support in OpenDHT" |
| msgstr "Χρειάζεται υποστήριξη ECC στο OpenDHT" |
| |
| #: ../../../developer/swarm.md:622 |
| msgid "Add Roles?" |
| msgstr "Προσθέστε ρόλους;" |
| |
| #: ../../../developer/swarm.md:624 |
| msgid "There is two major use case for group chats:" |
| msgstr "Υπάρχουν δύο σημαντικές περιπτώσεις χρήσης για ομαδικές συνομιλίες:" |
| |
| #: ../../../developer/swarm.md:626 |
| msgid "" |
| "Something like a Mattermost in a company, with private channels, and some " |
| "roles (admin/spectator/bot/etc) or for educations (where only a few are " |
| "active)." |
| msgstr "" |
| "Κάτι σαν ένα Mattermost σε μια εταιρεία, με ιδιωτικούς κανάλους, και " |
| "ορισμένους ρόλους (admin/spectator/bot/etc) ή για εκπαίδευση (όπου μόνο " |
| "λίγοι είναι ενεργοί)." |
| |
| #: ../../../developer/swarm.md:627 |
| msgid "Horizontal conversations like a conversation between friends." |
| msgstr "Οριζόντια συνομιλίες σαν μια συνομιλία μεταξύ φίλων." |
| |
| #: ../../../developer/swarm.md:629 |
| msgid "Jami will be for which one?" |
| msgstr "" |
| |
| #: ../../../developer/swarm.md:631 |
| msgid "Implementation idea" |
| msgstr "Ινδία υλοποίησης" |
| |
| #: ../../../developer/swarm.md:633 |
| msgid "" |
| "A certificate for a group that sign user with a flag for a role. Adding or " |
| "revoking can also be done." |
| msgstr "" |
| "Ένα πιστοποιητικό για μια ομάδα που υπογράφει χρήστη με σημαία για έναν " |
| "ρόλο." |
| |
| #: ../../../developer/swarm.md:635 |
| msgid "Join a conversation" |
| msgstr "Συμπληρώστε μια συζήτηση" |
| |
| #: ../../../developer/swarm.md:637 |
| msgid "Only via a direct invite" |
| msgstr "Μόνο μέσω άμεσης πρόσκλησης" |
| |
| #: ../../../developer/swarm.md:638 |
| msgid "Via a link/QR Code/whatever" |
| msgstr "Με σύνδεση/Κώδικα QR/ οτιδήποτε" |
| |
| #: ../../../developer/swarm.md:639 |
| msgid "Via a room name? (a **hash** on the DHT)" |
| msgstr "Με όνομα δωματίου;" |
| |
| #: ../../../developer/swarm.md:641 |
| msgid "What we need" |
| msgstr "Αυτό που χρειαζόμαστε" |
| |
| #: ../../../developer/swarm.md:643 |
| msgid "" |
| "Confidentiality: members outside of the group chat should not be able to " |
| "read messages in the group" |
| msgstr "" |
| "Εμπιστευτικότητα: τα μέλη εκτός της ομαδικής συνομιλίας δεν πρέπει να " |
| "μπορούν να διαβάζουν μηνύματα στην ομάδα" |
| |
| #: ../../../developer/swarm.md:644 |
| msgid "" |
| "Forward secrecy: if any key from the group is compromised, previous messages" |
| " should remain confidential (as much as possible)" |
| msgstr "" |
| "Προηγούμενη απόρρητη: εάν κάποιο κλειδί από την ομάδα διακυβευτεί, τα " |
| "προηγούμενα μηνύματα θα πρέπει να παραμείνουν εμπιστευτικά (όσο περισσότερο " |
| "γίνεται)" |
| |
| #: ../../../developer/swarm.md:646 |
| msgid "Message ordering: There is a need to have messages in the right order" |
| msgstr "" |
| "Τάξη μηνυμάτων: Είναι απαραίτητο να υπάρχουν μηνύματα με τη σωστή σειρά" |
| |
| #: ../../../developer/swarm.md:647 |
| msgid "" |
| "Synchronization: There is also a need to be sure to have all messages at " |
| "soon as possible." |
| msgstr "" |
| "Συγχρονισμός: Υπάρχει επίσης ανάγκη να βεβαιωθείτε ότι έχετε όλα τα μηνύματα" |
| " το συντομότερο δυνατό." |
| |
| #: ../../../developer/swarm.md:648 |
| msgid "" |
| "Persistence: Actually, a message on the DHT lives only 10 minutes. Because " |
| "it's the best timing calculated for this kind of DHT. To persist data, the " |
| "node must re-put the value on the DHT every 10 minutes. Another way to do " |
| "when the node is offline is to let nodes re-put the data. But, if after 10 " |
| "minutes, 8 nodes are still here, they will do 64 requests (and it's " |
| "exponential). The current way to avoid spamming for that is queried. This " |
| "will still do 64 requests but limit the max redundancy to 8 nodes." |
| msgstr "" |
| "Η επιμονή: Στην πραγματικότητα, ένα μήνυμα στο DHT διαρκεί μόνο 10 λεπτά. " |
| "Επειδή είναι το καλύτερο χρονοδιάγραμμα που υπολογίζεται για αυτό το είδος " |
| "DHT. Για να επιμείνουν τα δεδομένα, ο κόμβος πρέπει να επαναθέτει την τιμή " |
| "στο DHT κάθε 10 λεπτά. Ένας άλλος τρόπος να γίνει όταν ο κόμβος είναι εκτός " |
| "λειτουργίας είναι να αφήσει τους κόμβους να επαναθέσουν τα δεδομένα." |
| |
| #: ../../../developer/swarm.md:650 |
| msgid "Other distributed ways" |
| msgstr "Άλλες διανεμημένες μεθόδους" |
| |
| #: ../../../developer/swarm.md:652 |
| msgid "IPFS: Need some investigation" |
| msgstr "Χρειάζεται κάποια έρευνα." |
| |
| #: ../../../developer/swarm.md:653 |
| msgid "BitMessage: Need some investigation" |
| msgstr "Χρειάζομαι κάποια έρευνα." |
| |
| #: ../../../developer/swarm.md:654 |
| msgid "Maidsafe: Need some investigation" |
| msgstr "Χρειάζομαι κάποια έρευνα." |
| |
| #: ../../../developer/swarm.md:656 |
| msgid "Based on current work we have" |
| msgstr "Με βάση την τρέχουσα εργασία που έχουμε" |
| |
| #: ../../../developer/swarm.md:658 |
| msgid "" |
| "Group chat can be based on the same work we already have for multi-devices " |
| "(but here, with a group certificate). Problems to solve:" |
| msgstr "" |
| "Το ομαδικό chat μπορεί να βασίζεται στο ίδιο έργο που έχουμε ήδη για πολυ-" |
| "έργονα (αλλά εδώ, με ένα πιστοποιητικό ομάδας)." |
| |
| #: ../../../developer/swarm.md:660 |
| msgid "" |
| "History sync. This needs to move the database from the client into the " |
| "daemon." |
| msgstr "" |
| "Αυτό πρέπει να μεταφέρει την βάση δεδομένων από τον πελάτη στο δαίμονα." |
| |
| #: ../../../developer/swarm.md:661 |
| msgid "" |
| "If nobody is connected, the synchronization can not be done, and the person " |
| "will never see the conversation" |
| msgstr "" |
| "Αν κανείς δεν είναι συνδεδεμένος, η συγχρονισμός δεν μπορεί να γίνει, και το" |
| " άτομο δεν θα δει ποτέ τη συζήτηση" |
| |
| #: ../../../developer/swarm.md:663 |
| msgid "Another dedicated DHT" |
| msgstr "Άλλο ένα ειδικό DHT" |
| |
| #: ../../../developer/swarm.md:665 |
| msgid "Like a DHT with a superuser. (Not convinced)" |
| msgstr "Σαν ένα DHT με έναν υπερωχνητή." |
| |
| #: ../../../developer/swarm.md:669 |
| msgid "" |
| "Currently, the file transfer algorithm is based on a TURN connection (See " |
| "{doc}`file-transfer`). In the case of a big group, this will be bad. We " |
| "first need a p2p implement for the file transfer. Implement the RFC for p2p " |
| "transfer." |
| msgstr "" |
| "Αυτή τη στιγμή, ο αλγόριθμος μεταφοράς αρχείων βασίζεται σε μια σύνδεση TURN" |
| " (βλ. {doc}`file-transfer`). Στην περίπτωση μιας μεγάλης ομάδας, αυτό θα " |
| "είναι κακό. Πρώτα χρειαζόμαστε ένα p2p υλικό για τη μεταφορά αρχείων." |
| |
| #: ../../../developer/swarm.md:671 |
| msgid "" |
| "Other problem: currently there is no implementation for TCP support for ICE " |
| "in PJSIP. This is mandatory for this point (in pjsip or homemade)" |
| msgstr "" |
| "Άλλο πρόβλημα: δεν υπάρχει επί του παρόντος εφαρμογή για την υποστήριξη TCP " |
| "για ICE στο PJSIP." |
| |
| #: ../../../developer/swarm.md:673 |
| msgid "Resources" |
| msgstr "Πηγές" |
| |
| #: ../../../developer/swarm.md:675 |
| msgid "https://eprint.iacr.org/2017/666.pdf" |
| msgstr "https://eprint.iacr.org/2017/666.pdf" |
| |
| #: ../../../developer/swarm.md:676 |
| msgid "" |
| "Robust distributed synchronization of networked linear systems with " |
| "intermittent information (Sean Phillips and Ricardo G.Sanfelice)" |
| msgstr "" |
| "Σκληρή κατανεμημένη συγχρονισμός δικτυακών γραμμικών συστημάτων με " |
| "διασταυρωμένες πληροφορίες (Σηαν Φίλιπς και Ρικάρντο Γ. Σανφέλις)" |
| |
| #: ../../../developer/synchronization-protocol.md:1 |
| msgid "Synchronization protocol" |
| msgstr "Πρωτόκολλο συγχρονισμού" |
| |
| #: ../../../developer/synchronization-protocol.md:4 |
| msgid "" |
| "The swarm chat provides new possibilities for every device. Now, it's " |
| "possible to sync history between devices by sharing the related repository. " |
| "Devices sync needs to be redefined to follow those changes." |
| msgstr "" |
| "Η συνομιλία σμήνος παρέχει νέες δυνατότητες για κάθε συσκευή. Τώρα, είναι " |
| "δυνατόν να συγχρονιστεί το ιστορικό μεταξύ των συσκευών μοιράζοντας το " |
| "σχετικό αποθετήριο." |
| |
| #: ../../../developer/synchronization-protocol.md:6 |
| msgid "" |
| "A lot of scenarios are defined in the {doc}`Swarm design document <swarm>`, " |
| "however, this doesn't imply for syncing conversations between devices for " |
| "the same user. Some new scenarios must be written." |
| msgstr "Πολλά σενάρια ορίζονται στο έγγραφο σχεδιασμού του σάουρμ." |
| |
| #: ../../../developer/synchronization-protocol.md:8 |
| msgid "Old method" |
| msgstr "Παλιά μέθοδος" |
| |
| #: ../../../developer/synchronization-protocol.md:10 |
| msgid "" |
| "Device sync were done via the DHT. Because every value MUST NOT exceed 64k, " |
| "conversations were not sent in device sync, nor member profiles, because " |
| "it's too heavy. This is a problem and MUST be improved." |
| msgstr "" |
| "Η συγχρονισμός συσκευών πραγματοποιήθηκε μέσω του DHT. Επειδή κάθε τιμή δεν " |
| "πρέπει να υπερβαίνει τα 64k, οι συνομιλίες δεν έστειλαν σε συγχρονισμό " |
| "συσκευών, ούτε τα προφίλ μελών, επειδή είναι πολύ βαρύ. Αυτό είναι ένα " |
| "πρόβλημα και πρέπει να βελτιωθεί." |
| |
| #: ../../../developer/synchronization-protocol.md:12 |
| msgid "" |
| "In the old method, the daemon is listening on \"inbox:DEVICE_ID\" for " |
| "DeviceSync values which contains the contact list to sync (cf. " |
| "`AccountManager::startSync()`);" |
| msgstr "" |
| "Στην παλιά μέθοδο, το δαίμονα ακούει στο \"inbox:DEVICE_ID\" για τις τιμές " |
| "DeviceSync που περιέχει την λίστα επαφών για συγχρονισμό (βλ. " |
| "`AccountManager::startSync() `);" |
| |
| #: ../../../developer/synchronization-protocol.md:14 |
| msgid "" |
| "**NOTE:** The current **DeviceSync** value present on the **DHT** is " |
| "deprecated with this draft." |
| msgstr "" |
| "**ΑΝΘΩΣΗ:** Η τρέχουσα τιμή **DeviceSync** που βρίσκεται στο **DHT** έχει " |
| "εκτραπεί με το παρόν σχέδιο." |
| |
| #: ../../../developer/synchronization-protocol.md:16 |
| msgid "New method" |
| msgstr "Νέα μέθοδος" |
| |
| #: ../../../developer/synchronization-protocol.md:18 |
| msgid "" |
| "Since Jami has the {doc}`ConnectionManager <connection-manager>`, using p2p " |
| "socket is possible to perform sync quickly with big values (cause the socket" |
| " is not limited in data)" |
| msgstr "" |
| "Δεδομένου ότι η Jami έχει το {doc}`ConnectionManager <connection-manager>`, " |
| "χρησιμοποιώντας p2p socket είναι δυνατόν να εκτελέσει γρήγορα συγχρονισμό με" |
| " μεγάλες τιμές (γιατί η socket δεν είναι περιορισμένη στα δεδομένα)" |
| |
| #: ../../../developer/synchronization-protocol.md:20 |
| msgid "Now, this is the scenario used to sync:" |
| msgstr "Τώρα, αυτό είναι το σενάριο που χρησιμοποιείται για την συγχρονισμό:" |
| |
| #: ../../../developer/synchronization-protocol.md:22 |
| msgid "" |
| "When the device (*A*) goes online, it announces its presence via a " |
| "DeviceAnnouncement like the OldMethod" |
| msgstr "" |
| "Όταν η συσκευή (*A*) ενεργοποιείται, ανακοινώνει την παρουσία της μέσω ενός " |
| "ανακοινώματος συσκευής όπως η OldMethod" |
| |
| #: ../../../developer/synchronization-protocol.md:23 |
| msgid "" |
| "Other devices (*!A*) will detect that announce and will ask this device " |
| "through the **ConnectionManager** to open a new channel named " |
| "\"sync://DEVICE_ID_A\". (Note: A will get announcement from other devices, " |
| "so it will asks for sync channels too)." |
| msgstr "" |
| "Άλλες συσκευές (*!A*) θα ανιχνεύσουν αυτή την ανακοίνωση και θα ζητήσουν από" |
| " αυτή τη συσκευή μέσω του **ConnectionManager** να ανοίξει ένα νέο κανάλι με" |
| " το όνομα \"sync://DEVICE_ID_A\". (Περιμνεία: Η A θα λάβει ανακοίνωση από " |
| "άλλες συσκευές, οπότε θα ζητήσει και κανάλια συγχρονισμού)." |
| |
| #: ../../../developer/synchronization-protocol.md:24 |
| msgid "" |
| "As soon as this channel is opened, the device which is asking this channel " |
| "will send a **DeviceSync** (cf. next part) value containing its known " |
| "conversations and contacts." |
| msgstr "" |
| "Μόλις ανοίξει αυτό το κανάλι, η συσκευή που ζητά από αυτό το κανάλι θα " |
| "στείλει μια τιμή **DeviceSync** (βλ. επόμενο μέρος) που περιέχει τις γνωστές" |
| " συνομιλίες και τις επαφές της." |
| |
| #: ../../../developer/synchronization-protocol.md:25 |
| msgid "*A* will check the **DeviceSync** value and:" |
| msgstr "*A* θα ελέγξει την τιμή **DeviceSync** και:" |
| |
| #: ../../../developer/synchronization-protocol.md:26 |
| msgid "Remove contacts if it detects removed contacts" |
| msgstr "Αφαιρέστε επαφές αν ανιχνεύσει αφαιρεμένες επαφές" |
| |
| #: ../../../developer/synchronization-protocol.md:27 |
| msgid "Add contacts if it detects added contacts" |
| msgstr "Προσθέστε επαφές αν εντοπίσει προστιθέμενες επαφές" |
| |
| #: ../../../developer/synchronization-protocol.md:28 |
| msgid "Remove conversations if it detects removed conversations" |
| msgstr "Αφαιρέστε τις συνομιλίες αν εντοπίσει τις αφαιρεμένες συνομιλίες" |
| |
| #: ../../../developer/synchronization-protocol.md:29 |
| msgid "Add conversations if it detects added conversations" |
| msgstr "Προσθέστε συνομιλίες αν ανιχνεύει πρόσθετες συνομιλίες" |
| |
| #: ../../../developer/synchronization-protocol.md:30 |
| msgid "" |
| "Remove conversation's requests if request is accepted (now in " |
| "conversations)/declined" |
| msgstr "" |
| "Απομακρύνετε τα αιτήματα της συζήτησης εάν το αίτημα γίνει αποδεκτό (τώρα σε" |
| " συζητήσεις) / απορριφθεί" |
| |
| #: ../../../developer/synchronization-protocol.md:31 |
| msgid "Add conversation's requests if detected" |
| msgstr "Προσθέστε τα αιτήματα της συζήτησης αν εντοπιστούν" |
| |
| #: ../../../developer/synchronization-protocol.md:33 |
| msgid "" |
| "Note: If *A* detects new conversations, it will asks the device which " |
| "announced that conversation to clone the repository through a git channel " |
| "(so like described in {doc}`Swarm chat design <swarm>`)" |
| msgstr "" |
| "Σημείωση: Εάν η *A* ανιχνεύσει νέες συνομιλίες, θα ζητήσει από τη συσκευή " |
| "που ανακοίνωσε αυτή τη συνομιλία να κλωνοποιήσει το αποθετήριο μέσω ενός " |
| "κανάλου git (όπως περιγράφεται στο σχέδιο συνομιλιών σάρμ <swarm>`)" |
| |
| #: ../../../developer/synchronization-protocol.md:35 |
| msgid "Device Sync" |
| msgstr "Συγχρονισμός συσκευών" |
| |
| #: ../../../developer/synchronization-protocol.md:37 |
| msgid "This value is a JSON containing:" |
| msgstr "Αυτή η τιμή είναι ένα JSON που περιέχει:" |
| |
| #: ../../../developer/synchronization-protocol.md:54 |
| msgid "User stories" |
| msgstr "Ιστορίες χρηστών" |
| |
| #: ../../../developer/synchronization-protocol.md:56 |
| msgid "Sync when adding device" |
| msgstr "Συγχρονισμός κατά την προσθήκη συσκευής" |
| |
| #: ../../../developer/synchronization-protocol.md:58 |
| #: ../../../developer/synchronization-protocol.md:65 |
| #: ../../../developer/synchronization-protocol.md:73 |
| msgid "Alice creates a conversation" |
| msgstr "Η Άλις δημιουργεί μια συζήτηση." |
| |
| #: ../../../developer/synchronization-protocol.md:59 |
| #: ../../../developer/synchronization-protocol.md:66 |
| msgid "(Optional) Alice add some messages" |
| msgstr "(Επιαιρετικό) Alice προσθέτει μερικά μηνύματα" |
| |
| #: ../../../developer/synchronization-protocol.md:60 |
| msgid "Alice adds another device" |
| msgstr "Η Άλις προσθέτει άλλη μια συσκευή." |
| |
| #: ../../../developer/synchronization-protocol.md:61 |
| #: ../../../developer/synchronization-protocol.md:68 |
| msgid "" |
| "The other device should receives and sync the conversation previously " |
| "created" |
| msgstr "" |
| "Η άλλη συσκευή θα πρέπει να λαμβάνει και να συγχρονίζει τη συζήτηση που έχει" |
| " δημιουργηθεί προηγουμένως" |
| |
| #: ../../../developer/synchronization-protocol.md:63 |
| msgid "Sync when connect a device" |
| msgstr "Συγχρονισμός κατά την σύνδεση συσκευής" |
| |
| #: ../../../developer/synchronization-protocol.md:67 |
| msgid "Alice connects another device" |
| msgstr "Η Άλις συνδέει μια άλλη συσκευή." |
| |
| #: ../../../developer/synchronization-protocol.md:70 |
| msgid "Sync between multiple devices" |
| msgstr "Συγχρονισμός μεταξύ πολλών συσκευών" |
| |
| #: ../../../developer/synchronization-protocol.md:72 |
| msgid "Alice got 2 devices" |
| msgstr "Η Άλις έχει δύο συσκευές." |
| |
| #: ../../../developer/synchronization-protocol.md:74 |
| msgid "" |
| "The other device should receives and sync the conversation created on one of" |
| " the devices" |
| msgstr "" |
| "Η άλλη συσκευή θα πρέπει να λαμβάνει και να συγχρονίζει τη συνομιλία που " |
| "δημιουργήθηκε σε μία από τις συσκευές" |
| |
| #: ../../../developer/synchronization-protocol.md:76 |
| msgid "Sync for detecting new requests" |
| msgstr "Συγχρονισμός για την ανίχνευση νέων αιτήσεων" |
| |
| #: ../../../developer/synchronization-protocol.md:78 |
| msgid "Alice receives a conversation's request" |
| msgstr "Η Άλις λαμβάνει αίτηση για συζήτηση" |
| |
| #: ../../../developer/synchronization-protocol.md:79 |
| msgid "Alice add a new device" |
| msgstr "Η Άλις προσθέτει μια νέα συσκευή." |
| |
| #: ../../../developer/synchronization-protocol.md:80 |
| msgid "The other device should retrieve the requests from device A" |
| msgstr "Η άλλη συσκευή πρέπει να λαμβάνει τα αιτήματα από την συσκευή Α" |
| |
| #: ../../../developer/synchronization-protocol.md:82 |
| msgid "Sync for accepted requests" |
| msgstr "Συγχρονισμός για αποδεκτές αιτήσεις" |
| |
| #: ../../../developer/synchronization-protocol.md:84 |
| #: ../../../developer/synchronization-protocol.md:90 |
| msgid "Alice has 2 devices" |
| msgstr "Η Άλις έχει 2 συσκευές." |
| |
| #: ../../../developer/synchronization-protocol.md:85 |
| msgid "Alice accepts a conversation's request" |
| msgstr "Η Άλις δέχεται την αίτηση για συζήτηση." |
| |
| #: ../../../developer/synchronization-protocol.md:86 |
| msgid "The other device should detect the accepted request" |
| msgstr "Η άλλη συσκευή πρέπει να ανιχνεύει την αποδεκτή αίτηση" |
| |
| #: ../../../developer/synchronization-protocol.md:88 |
| msgid "Sync for decline requests" |
| msgstr "Συγχρονισμός για αιτήσεις απόρριψης" |
| |
| #: ../../../developer/synchronization-protocol.md:91 |
| msgid "Alice declines a conversation's request" |
| msgstr "Η Άλις αρνείται την αίτηση για συζήτηση." |
| |
| #: ../../../developer/synchronization-protocol.md:92 |
| msgid "The other device should detect the declined request" |
| msgstr "Η άλλη συσκευή πρέπει να ανιχνεύει την άρνηση αίτησης" |
| |
| #: ../../../developer/synchronization-protocol.md:94 |
| msgid "Current implementation" |
| msgstr "Συγχρονή εφαρμογή" |
| |
| #: ../../../developer/synchronization-protocol.md:96 |
| msgid "{gerrit}`15584` implements this page" |
| msgstr "{gerrit}`15584` εφαρμόζει αυτή τη σελίδα" |
| |
| #: ../../../developer/synchronizing-profiles.md:1 |
| msgid "Profile synchronization" |
| msgstr "Συγχρονισμός προφίλ" |
| |
| #: ../../../developer/synchronizing-profiles.md:3 |
| msgid "" |
| "There is two types of profiles. The one for the current account, and the " |
| "ones from contacts. As this vcard contains infos, such as the avatar and the" |
| " display name, it should be synced as soon as possible. But, it must be sent" |
| " only when needed, to avoid un-necessary data transmissions. The format used" |
| " to store the profiles is a [vCard](https://en.wikipedia.org/wiki/VCard) " |
| "(https://datatracker.ietf.org/doc/html/rfc6350)" |
| msgstr "" |
| "Υπάρχουν δύο τύποι προφίλ. Ο ένας για το τρέχον λογαριασμό και οι άλλοι από " |
| "επαφές. Καθώς αυτή η vcard περιέχει πληροφορίες, όπως το avatar και το όνομα" |
| " της οθόνης, πρέπει να συγχρονιστεί το συντομότερο δυνατό. Αλλά, πρέπει να " |
| "αποσταλεί μόνο όταν είναι απαραίτητο, για να αποφευχθεί η μη αναγκαία " |
| "μετάδοση δεδομένων." |
| |
| #: ../../../developer/synchronizing-profiles.md:5 |
| msgid "Where are stored profiles?" |
| msgstr "Πού αποθηκεύονται τα προφίλ;" |
| |
| #: ../../../developer/synchronizing-profiles.md:7 |
| msgid "Self" |
| msgstr "Ειδικότερα" |
| |
| #: ../../../developer/synchronizing-profiles.md:9 |
| msgid "" |
| "It's in `${idPath_}/profile.vcf` e.g.: " |
| "`.local/share/jami/xxxxxx/profile.vcf` on GNU/Linux." |
| msgstr "" |
| "Είναι στο `${idPath_}/profile.vcf` π.χ.: " |
| "`.local/share/jami/xxxxxx/profile.vcf` στο GNU/Linux." |
| |
| #: ../../../developer/synchronizing-profiles.md:11 |
| msgid "Contacts" |
| msgstr "Επικοινωνίες" |
| |
| #: ../../../developer/synchronizing-profiles.md:13 |
| msgid "" |
| "Because this logic is still managed per client, it depends on the client. " |
| "However, on Desktop, this is unified and stored into: " |
| "`${idPath_}/profiles/${base64(uri)}.vcf`" |
| msgstr "" |
| "Επειδή αυτή η λογική εξακολουθεί να διαχειρίζεται ανά πελάτη, εξαρτάται από " |
| "τον πελάτη." |
| |
| #: ../../../developer/synchronizing-profiles.md:16 |
| msgid "When a profile is sent" |
| msgstr "Όταν στέλνεται ένα προφίλ" |
| |
| #: ../../../developer/synchronizing-profiles.md:21 |
| msgid "" |
| "At the beginning of a call, generally client sends the vCard. However, this " |
| "method should be removed in favor of the other located in the daemon." |
| msgstr "" |
| "Στην αρχή μιας κλήσης, γενικά ο πελάτης στέλνει την vCard. Ωστόσο, αυτή η " |
| "μέθοδος πρέπει να αφαιρεθεί υπέρ του άλλου που βρίσκεται στο δήμονο." |
| |
| #: ../../../developer/synchronizing-profiles.md:23 |
| msgid "Send to contact's devices" |
| msgstr "Στείλτε στις συσκευές των επαφών" |
| |
| #: ../../../developer/synchronizing-profiles.md:25 |
| msgid "" |
| "When connecting to a new devices, a SIP or a sync channel is done. When this" |
| " channel is ready, we check if we need to send the profile. To do this, the " |
| "hash of the profile is compared to the one in the cache " |
| "(`${cacheDir}/${accId}/vcard/sha3` like `~/.cache/jami/xxxxx/vcard/sha3`on " |
| "GNU/Linux), and the file `${cacheDir}/${accId}/vcard/deviceId` is checked). " |
| "cf. `JamiAccount::needToSendProfile()`. If not present, the profile of the " |
| "account is sent. Typically, the name of the channel will be \"vcard://xxx\" " |
| "where the issuer is the one sending the profile." |
| msgstr "" |
| "Όταν συνδεθείτε σε μια νέα συσκευή, γίνεται ένα SIP ή ένα κανάλι " |
| "συγχρονισμού. Όταν αυτό το κανάλι είναι έτοιμο, ελέγχουμε αν πρέπει να " |
| "στείλουμε το προφίλ. Για να το κάνουμε αυτό, το χασά του προφίλ συγκρίνεται " |
| "με αυτό στο cache (`${cacheDir}/${accId}/vcard/sha3` όπως " |
| "`~/.cache/jami/xxxxx/vcard/sha3`on GNU/Linux), και το αρχείο " |
| "`${cacheDir}/${accId}/vcard/deviceId`)." |
| |
| #: ../../../developer/synchronizing-profiles.md:27 |
| msgid "Multidevices" |
| msgstr "Πολυπράγματα" |
| |
| #: ../../../developer/synchronizing-profiles.md:29 |
| msgid "" |
| "If the profile is sent and the device is from the same account, " |
| "conversations are checked and we send profiles of all members. The channel " |
| "name will be \"${conversationId}/profile/${memberUri}.vcf\". Behavior tested" |
| " in `daemon/test/unitTest/syncHistory/syncHistory.cpp`" |
| msgstr "" |
| "Εάν το προφίλ αποστέλλεται και η συσκευή είναι από τον ίδιο λογαριασμό, οι " |
| "συνομιλίες ελέγχονται και στέλνουμε προφίλ όλων των μελών. Το όνομα του " |
| "καναλιού θα είναι \"${conversationId}/profile/${memberUri}.vcf\"." |
| |
| #: ../../../developer/technical-overview.md:1 |
| msgid "Technical overview" |
| msgstr "Τεχνική επισκόπηση" |
| |
| #: ../../../developer/technical-overview.md:4 |
| msgid "Concepts" |
| msgstr "Συνοπτικές" |
| |
| #: ../../../developer/technical-overview.md:7 |
| msgid "Jami Account" |
| msgstr "Λογαριασμός Jami" |
| |
| #: ../../../developer/technical-overview.md:9 |
| msgid "" |
| "A **Jami account** is defined by a cryptographic Jami Identity based of " |
| "**RSA asymmetric key-pair** and managed with **x.509 certificates** as " |
| "defined by *[RFC 5280](https://tools.ietf.org/html/rfc5280)*." |
| msgstr "" |
| "Ένα λογαριασμό **Jami** ορίζεται από μια κρυπτογραφική ταυτότητα Jami που " |
| "βασίζεται σε **RSA ασύμμετρικό ζευγάρι κλειδιών** και διαχειρίζεται με " |
| "πιστοποιητικά **x.509** όπως ορίζονται από *[RFC " |
| "5280](https://tools.ietf.org/html/rfc5280)*." |
| |
| #: ../../../developer/technical-overview.md:13 |
| msgid "" |
| "Jami uses the **gnutls** library to generate and manage RSA keys and " |
| "certificates." |
| msgstr "" |
| "Η Jami χρησιμοποιεί τη βιβλιοθήκη **gnutls** για τη δημιουργία και τη " |
| "διαχείριση κλειδιών και πιστοποιητικών RSA." |
| |
| #: ../../../developer/technical-overview.md:16 |
| msgid "Jami certificate" |
| msgstr "Πιστοποιητικό Jami" |
| |
| #: ../../../developer/technical-overview.md:18 |
| msgid "This represents the identify of a Jami user." |
| msgstr "Αυτό αντιπροσωπεύει την ταυτότητα ενός χρήστη Jami." |
| |
| #: ../../../developer/technical-overview.md:19 |
| msgid "Generated at account creation" |
| msgstr "Δημιουργείται κατά τη δημιουργία λογαριασμού" |
| |
| #: ../../../developer/technical-overview.md:20 |
| msgid "Contains the Jami account public key." |
| msgstr "Περιέχει το δημόσιο κλειδί του λογαριασμού Jami." |
| |
| #: ../../../developer/technical-overview.md:21 |
| msgid "" |
| "The SHA-1 fingerprint (160-bits) of this public certificate is the " |
| "**JamiId**." |
| msgstr "" |
| "Το αποτύπωμα SHA-1 (160-bit) του παρόντος δημόσιου πιστοποιητικού είναι το " |
| "**JamiId**." |
| |
| #: ../../../developer/technical-overview.md:23 |
| msgid "Signed by a CA (from an organization or self-signed)." |
| msgstr "Υπογεγραμμένο από CA (από οργανισμό ή αυτουπογεγραμμένο)." |
| |
| #: ../../../developer/technical-overview.md:24 |
| msgid "The subject UID field must be the hexadecimal form of the JamiId." |
| msgstr "" |
| "Το πεδίο UID του αντικειμένου πρέπει να είναι η εξιδεκασιακή μορφή του " |
| "JamiId." |
| |
| #: ../../../developer/technical-overview.md:25 |
| msgid "" |
| "The issuer UID field must be the hexadecimal form of the issuer public key " |
| "fingerprint (CA)." |
| msgstr "" |
| "Το πεδίο UID του εκδότη πρέπει να είναι η εξιδεκασιακή μορφή του δακτυλικού " |
| "αποτυπώματος του δημόσιου κλειδιού του εκδότη (CA)." |
| |
| #: ../../../developer/technical-overview.md:27 |
| msgid "Random RSA key-pair of at least 4096-bits long." |
| msgstr "Ατυχείο ζευγάρι κλειδιών RSA μήκους τουλάχιστον 4096 bits." |
| |
| #: ../../../developer/technical-overview.md:29 |
| msgid "Device certificate" |
| msgstr "Πιστοποιητικό συσκευής" |
| |
| #: ../../../developer/technical-overview.md:31 |
| msgid "This is the identity of one specific device used to run Jami." |
| msgstr "" |
| "Αυτή είναι η ταυτότητα μιας συγκεκριμένης συσκευής που χρησιμοποιήθηκε για " |
| "να τρέξει Jami." |
| |
| #: ../../../developer/technical-overview.md:32 |
| msgid "One per device." |
| msgstr "Ένα ανά συσκευή." |
| |
| #: ../../../developer/technical-overview.md:33 |
| msgid "Random and 4096-bits long." |
| msgstr "Ατυχερά και 4096 bits μακριά." |
| |
| #: ../../../developer/technical-overview.md:34 |
| msgid "The SHA-1 fingerprint of the public key becomes the **DeviceId**." |
| msgstr "Το αποτύπωμα SHA-1 του δημόσιου κλειδιού γίνεται το **DeviceId**." |
| |
| #: ../../../developer/technical-overview.md:35 |
| msgid "Must be signed by the private key that created the Jami certificate." |
| msgstr "" |
| "Πρέπει να υπογράφεται από το κλειδί που δημιούργησε το πιστοποιητικό Τζάμι." |
| |
| #: ../../../developer/technical-overview.md:36 |
| msgid "The subject UID field must be the hexadecimal form of the DeviceId." |
| msgstr "" |
| "Το πεδίο UID του αντικειμένου πρέπει να είναι η εξιδεκασιακή μορφή του " |
| "DeviceId." |
| |
| #: ../../../developer/technical-overview.md:37 |
| msgid "" |
| "The issuer UID field must be the hexadecimal form of the issuer public key " |
| "fingerprint (JamiId)." |
| msgstr "" |
| "Το πεδίο UID του εκδότη πρέπει να είναι η εξιδεκασιακή μορφή του δακτυλικού " |
| "αποτυπώματος του δημόσιου κλειδιού του εκδότη (JamiId)." |
| |
| #: ../../../developer/technical-overview.md:40 |
| msgid "Usages" |
| msgstr "Χρησιμοποιήσεις" |
| |
| #: ../../../developer/technical-overview.md:42 |
| msgid "The JamiId:" |
| msgstr "Το Τζαμίλντ:" |
| |
| #: ../../../developer/technical-overview.md:43 |
| msgid "" |
| "It's the DHT key where the list of account devices are published and where " |
| "all devices listen to synchronize on account changes (i.e. adding or revoke " |
| "a device)." |
| msgstr "" |
| "Είναι το κλειδί DHT όπου δημοσιεύεται η λίστα των συσκευών λογαριασμού και " |
| "όπου όλες οι συσκευές ακούν να συγχρονίζονται στις αλλαγές λογαριασμού " |
| "(δηλαδή προσθέτοντας ή ανακαλώντας μια συσκευή)." |
| |
| #: ../../../developer/technical-overview.md:46 |
| msgid "" |
| "The Jami certificate RSA keys are used as long-term keys to " |
| "sign/encrypt/decrypt messages sent over the DHT:" |
| msgstr "" |
| "Τα κλειδιά RSA του πιστοποιητικού Jami χρησιμοποιούνται ως μακροπρόθεσμα " |
| "κλειδιά για την υπογραφή/συνθηματισμό/αποσυνθηματισμό των μηνυμάτων που " |
| "αποστέλλονται μέσω του DHT:" |
| |
| #: ../../../developer/technical-overview.md:48 |
| msgid "" |
| "private key to sign-off and decrypt incoming messages and device " |
| "certificates." |
| msgstr "" |
| "ιδιωτικό κλειδί για την υπογραφή και αποκρυπτογράφηση εισερχόμενων μηνυμάτων" |
| " και πιστοποιητικών συσκευής." |
| |
| #: ../../../developer/technical-overview.md:50 |
| msgid "" |
| "public key to encrypt messages (this is done by the message issuer using the" |
| " receiver public key)." |
| msgstr "" |
| "δημόσιος κλειδί για την κρυπτογράφηση μηνυμάτων (αυτό γίνεται από τον εκδότη" |
| " του μηνύματος χρησιμοποιώντας το δημόσιο κλειδί του παραλήπτη)." |
| |
| #: ../../../developer/technical-overview.md:52 |
| msgid "" |
| "A device can be \"removed\" from a Jami account through revocation of the " |
| "device certificate:" |
| msgstr "" |
| "Μια συσκευή μπορεί να \"αποσυρθωθεί\" από λογαριασμό Jami μέσω της ανάκλησης" |
| " του πιστοποιητικού συσκευής:" |
| |
| #: ../../../developer/technical-overview.md:54 |
| msgid "" |
| "Revoked device certificates are added to one or more standard x509 " |
| "Certificate Revocation List (CRL)." |
| msgstr "" |
| "Τα πιστοποιητικά συσκευής που έχουν ανακαταγραφεί προστίθενται σε έναν ή " |
| "περισσότερους τυποποιημένους λίστες ανακαταγραφής πιστοποιητικών x509 (CRL)." |
| |
| #: ../../../developer/technical-overview.md:56 |
| msgid "" |
| "CRLs for revoked device must be valid and signed with the corresponding CA " |
| "key, which is the Jami account private key." |
| msgstr "" |
| "Οι ΚΑΣ για την ακύρωση της συσκευής πρέπει να είναι έγκυρες και να " |
| "υπογράφονται με το αντίστοιχο κλειδί CA, το οποίο είναι το ιδιωτικό κλειδί " |
| "του λογαριασμού Jami." |
| |
| #: ../../../developer/technical-overview.md:59 |
| msgid "Long-term Storage" |
| msgstr "Διατήρηση μακροπρόθεσμης διάρκειας" |
| |
| #: ../../../developer/technical-overview.md:61 |
| msgid "Why storing data?" |
| msgstr "Γιατί αποθηκεύεις δεδομένα;" |
| |
| #: ../../../developer/technical-overview.md:65 |
| msgid "" |
| "Jami needs to load certificates and key-pairs each time the application is " |
| "started." |
| msgstr "" |
| "Η Τζάμι πρέπει να φορτώνει πιστοποιητικά και ζευγάρια κλειδιών κάθε φορά που" |
| " ξεκινά η αίτηση." |
| |
| #: ../../../developer/technical-overview.md:67 |
| msgid "" |
| "When Jami creates a new device, these information are also needed, shared " |
| "from another trusted device in a secure way." |
| msgstr "" |
| "Όταν ο Τζάμι δημιουργεί μια νέα συσκευή, αυτές οι πληροφορίες χρειάζονται " |
| "επίσης, που μοιράζονται από μια άλλη αξιόπιστη συσκευή με ασφαλή τρόπο." |
| |
| #: ../../../developer/technical-overview.md:69 |
| msgid "" |
| "All platforms doesn't provide secure way to store data, Jami supports this " |
| "fact by encrypting data stored outside the memory (i.e. on a file-system) " |
| "using a user defined password during the account creation." |
| msgstr "" |
| "Όλες οι πλατφόρμες δεν παρέχουν ασφαλές τρόπο αποθήκευσης δεδομένων, η Jami " |
| "υποστηρίζει αυτό το γεγονός κρυπτογράφησης δεδομένων που αποθηκεύονται εκτός" |
| " μνήμης (δηλαδή σε ένα σύστημα αρχείων) χρησιμοποιώντας ένα κωδικό πρόσβασης" |
| " που ορίζεται από τον χρήστη κατά τη δημιουργία λογαριασμού." |
| |
| #: ../../../developer/technical-overview.md:76 |
| msgid "These files are stored on user device (see below for details):" |
| msgstr "" |
| "Τα αρχεία αυτά αποθηκεύονται στην συσκευή του χρήστη (δείτε παρακάτω για " |
| "λεπτομέρειες):" |
| |
| #: ../../../developer/technical-overview.md:77 |
| msgid "a compressed and encrypted archive with private account data." |
| msgstr "" |
| "ένα συμπυκνωμένο και κρυπτογραφημένο αρχείο με δεδομένα ιδιωτικού " |
| "λογαριασμού." |
| |
| #: ../../../developer/technical-overview.md:78 |
| msgid "the public certificates chain as a CRT file" |
| msgstr "η αλυσίδα δημόσιων πιστοποιητικών ως αρχείο CRT" |
| |
| #: ../../../developer/technical-overview.md:79 |
| msgid "the device private key." |
| msgstr "το κλειδί ιδιωτικού τύπου της συσκευής." |
| |
| #: ../../../developer/technical-overview.md:81 |
| msgid "Jami archive (export.gz)" |
| msgstr "Αρχείο Jami (export.gz)" |
| |
| #: ../../../developer/technical-overview.md:83 |
| msgid "Contains private account data." |
| msgstr "Περιέχει δεδομένα ιδιωτικού λογαριασμού." |
| |
| #: ../../../developer/technical-overview.md:84 |
| msgid "" |
| "Currently transmitted over the DHT network when device is created or " |
| "revoked." |
| msgstr "" |
| "Σήμερα μεταδίδεται μέσω του δικτύου DHT όταν δημιουργείται ή ανακαλείται η " |
| "συσκευή." |
| |
| #: ../../../developer/technical-overview.md:86 |
| msgid "It's a JSON compressed and encrypted file." |
| msgstr "Είναι ένα συμπυκνωμένο και κρυπτογραφημένο αρχείο JSON." |
| |
| #: ../../../developer/technical-overview.md:90 |
| msgid "The current format is (could change at any time):" |
| msgstr "Η τρέχουσα μορφή είναι (μπορεί να αλλάξει ανά πάσα στιγμή):" |
| |
| #: ../../../developer/technical-overview.md:103 |
| msgid "The JSON byte-stream is compressed using \\*gzip\\* algorithm." |
| msgstr "Η ροή byte JSON συμπίεζεται χρησιμοποιώντας αλγόριθμο \\ * gzip \\ *." |
| |
| #: ../../../developer/technical-overview.md:107 |
| msgid "" |
| "Then the gzip-stream is encrypted using AES-GCM-256 symmetric cipher with a " |
| "256-bits key." |
| msgstr "" |
| "Στη συνέχεια, η ροή gzip κρυπτογραφηθεί χρησιμοποιώντας AES-GCM-256 " |
| "συμμετρική κρυπτογράφηση με κλειδί 256 bits." |
| |
| #: ../../../developer/technical-overview.md:109 |
| msgid "" |
| "This key is derived from the user provided password, a PIN and a timestamp, " |
| "using [Argon2](https://github.com/P-H-C/phc-winner-argon2) (a password " |
| "stretching and normalizer) as follow:" |
| msgstr "" |
| "Αυτό το κλειδί προέρχεται από το κωδικό πρόσβασης, το PIN και το timestamp " |
| "που παρέχει ο χρήστης, χρησιμοποιώντας " |
| "[Argon2](https://github.com/P-H-C/phc-winner-argon2) (ένα κωδικό πρόσβασης " |
| "και κανονιστή) όπως ακολουθεί:" |
| |
| #: ../../../developer/technical-overview.md:124 |
| msgid "" |
| "The PIN should be shown to the user to be copied manually on the new " |
| "physical device along with the password to finish the device creation " |
| "process." |
| msgstr "" |
| "Το PIN πρέπει να εμφανίζεται στον χρήστη για να αντιγραφεί χειροκίνητα στην " |
| "νέα φυσική συσκευή μαζί με το κωδικό πρόσβασης για να ολοκληρωθεί η " |
| "διαδικασία δημιουργίας της συσκευής." |
| |
| #: ../../../developer/technical-overview.md:127 |
| msgid "" |
| "NOTE: when exporting a file on the DHT or anywhere else, the daemon update " |
| "the archive first, to write latest contacts. This is the reason why the " |
| "password is needed when exporting (it's not just a copy of the archive " |
| "somewhere else)" |
| msgstr "" |
| "ΣΗΜΕΙΩΣΗ: όταν εξάγει ένα αρχείο στο DHT ή αλλού, ο δήμος ενημερώνει πρώτα " |
| "το αρχείο, για να γράψει τις τελευταίες επαφές. Αυτός είναι ο λόγος για τον " |
| "οποίο το κωδικό πρόσβασης είναι απαραίτητο κατά την εξαγωγή (δεν είναι απλά " |
| "ένα αντίγραφο του αρχείου κάπου αλλού)" |
| |
| #: ../../../developer/technical-overview.md:129 |
| msgid "Jami device certificate chain (ring\\_device.crt)" |
| msgstr "Διάλξη πιστοποιητικών συσκευής Jami (ring\\_device.crt)" |
| |
| #: ../../../developer/technical-overview.md:131 |
| #: ../../../developer/technical-overview.md:137 |
| msgid "PEM format" |
| msgstr "Τμήμα PEM" |
| |
| #: ../../../developer/technical-overview.md:132 |
| msgid "" |
| "Includes the Device certificate and parent certificates (Jami device " |
| "certificate and parents)" |
| msgstr "" |
| "Περιλαμβάνει το πιστοποιητικό συσκευής και τα πιστοποιητικά γονέα ( " |
| "πιστοποιητικό συσκευής Jami και τα πιστοποιητικά γονέα)" |
| |
| #: ../../../developer/technical-overview.md:135 |
| msgid "Device private key (ring\\_device.key)" |
| msgstr "Κλειδί ιδιωτικού συστήματος (ring\\_device.key)" |
| |
| #: ../../../developer/technical-overview.md:138 |
| msgid "not encrypted, we let the device file-system protect this file" |
| msgstr "" |
| "Δεν κρυπτογραφημένο, αφήνουμε το σύστημα αρχείων της συσκευής να προστατεύει" |
| " αυτό το αρχείο" |
| |
| #: ../../../developer/technical-overview.md:140 |
| msgid "The DHT network" |
| msgstr "Το δίκτυο DHT" |
| |
| #: ../../../developer/technical-overview.md:142 |
| msgid "" |
| "Dedicated [ Jami distributed network](Ring_distributed_network \"wikilink\")" |
| " page." |
| msgstr "" |
| "Ειδική [Jami διανεμημένο δίκτυο]Ring_distributed_network \"wikilink\") " |
| "σελίδα." |
| |
| #: ../../../developer/technical-overview.md:145 |
| msgid "Contact Request" |
| msgstr "Επικοινωνιακό αίτημα" |
| |
| #: ../../../developer/technical-overview.md:147 |
| msgid "Deprecated in favor of \"Conversation requests\"" |
| msgstr "" |
| |
| #: ../../../developer/technical-overview.md:149 |
| msgid "Conversation request" |
| msgstr "" |
| |
| #: ../../../developer/technical-overview.md:151 |
| msgid "Max 64k (a DHT value)" |
| msgstr "" |
| |
| #: ../../../developer/technical-overview.md:152 |
| msgid "Contains a conversation Id" |
| msgstr "" |
| |
| #: ../../../developer/technical-overview.md:153 |
| msgid "Contains the sender URI" |
| msgstr "" |
| |
| #: ../../../developer/technical-overview.md:154 |
| msgid "Can contains optional metadatas (avatar/profile)" |
| msgstr "" |
| |
| #: ../../../developer/technical-overview.md:156 |
| msgid "Instant Message" |
| msgstr "Απευθείας Μήνυμα" |
| |
| #: ../../../developer/technical-overview.md:158 |
| msgid "Mostly used to initiate connections with ICE candidates" |
| msgstr "" |
| |
| #: ../../../developer/technical-overview.md:159 |
| msgid "Can transmit some SIP messages, however SIP channel is preferred" |
| msgstr "" |
| |
| #: ../../../developer/technical-overview.md:160 |
| msgid "" |
| "SIP messages can be read status, location sharing, messages notifications." |
| msgstr "" |
| |
| #: ../../../developer/technical-overview.md:162 |
| msgid "Outgoing and Incoming calls" |
| msgstr "Εξωτερικές και εισερχόμενες κλήσεις" |
| |
| #: ../../../developer/technical-overview.md:164 |
| msgid "" |
| "Contactable addresses (i.e. IP addresses) of the user are given to peer " |
| "only:" |
| msgstr "" |
| "Οι επαφές που μπορούν να γίνουν με τον χρήστη (δηλαδή οι διευθύνσεις IP) " |
| "παρέχονται μόνο σε συνάδελφο:" |
| |
| #: ../../../developer/technical-overview.md:166 |
| msgid "When we call a peer (outgoing call)." |
| msgstr "Όταν καλέσουμε έναν συνάδελφο." |
| |
| #: ../../../developer/technical-overview.md:167 |
| msgid "When a **trusted** peer is calling (incoming call)." |
| msgstr "Όταν καλεί κάποιος αξιόπιστος συνάδελφος (έρχουσα κλήση)." |
| |
| #: ../../../developer/technical-overview.md:168 |
| msgid "" |
| "All combination forms of how a specific device can be contacted is " |
| "summarized by a ICE message:" |
| msgstr "" |
| "Όλες οι συνδυασμένες μορφές του τρόπου επικοινωνίας με συγκεκριμένη συσκευή " |
| "συνοψίζονται από ένα μήνυμα ICE:" |
| |
| #: ../../../developer/technical-overview.md:170 |
| msgid "" |
| "*[RFC 5245](https://tools.ietf.org/html/rfc5245)* defines ICE (Interactive " |
| "Connectivity Establishment), a protocol for NAT traversal." |
| msgstr "" |
| "*[RFC 5245](https://tools.ietf.org/html/rfc5245)* ορίζει το ICE (Interactive" |
| " Connectivity Establishment), ένα πρωτόκολλο για την διέλευση NAT." |
| |
| #: ../../../developer/technical-overview.md:176 |
| msgid "Making an outgoing call" |
| msgstr "Κάνω ένα τηλεφωνικό τηλεφώνημα" |
| |
| #: ../../../developer/technical-overview.md:178 |
| msgid "" |
| "The calling device gathers candidates and build an **Initial Offer** " |
| "according to the ICE specifications." |
| msgstr "" |
| "Η συσκευή κλήσης συγκεντρώνει υποψηφίους και δημιουργεί ** Αρχική Προσφορά**" |
| " σύμφωνα με τις προδιαγραφές της ICE." |
| |
| #: ../../../developer/technical-overview.md:180 |
| msgid "" |
| "The calling device puts the encrypted ICE offer (the *Initial Offer*) on the" |
| " DHT at: `h(\"`[`callto:\"+DeviceID`](callto:%22+DeviceID)`)` where *h* is " |
| "SHA1, *+* is the string concatenation, *DeviceID* is in hexadecimal form." |
| msgstr "" |
| "Η συσκευή κλήσης αναθέτει την κρυπτογραφημένη προσφορά ICE (η * Αρχική " |
| "Προσφορά*) στο DHT σε: `h(\"`[callto:\"+DeviceID`](callto:%22+DeviceID)`)` " |
| "όπου *h* είναι SHA1, *+* είναι η συχώνεια string, *DeviceID* είναι σε " |
| "έκδεκατη μορφή." |
| |
| #: ../../../developer/technical-overview.md:185 |
| msgid "" |
| "The calling device waits on the peer answer, with its own ICE candidates " |
| "lists." |
| msgstr "" |
| "Η συσκευή που καλεί περιμένει την απάντηση των ομοτίμων, με τις δικές της " |
| "λίστες υποψηφίων ICE." |
| |
| #: ../../../developer/technical-overview.md:187 |
| msgid "" |
| "At peer answer reception, the calling device starts the ICE negotiation." |
| msgstr "" |
| "Στην υποδοχή απαντήσεων από τους συνάδελφους, η συσκευή κλήσης ξεκινά τη " |
| "διαπραγμάτευση με το ICE." |
| |
| #: ../../../developer/technical-overview.md:189 |
| msgid "" |
| "If the negotiation succeed, the process continues on a client-side DTLS " |
| "session establishment over the created ICE socket (see below)." |
| msgstr "" |
| "Εάν η διαπραγμάτευση επιτύχει, η διαδικασία συνεχίζεται σε μια εγκατάσταση " |
| "DTLS σε συνάντηση με τον πελάτη πάνω από την δημιουργημένη πρίζα ICE (βλ. " |
| "παρακάτω)." |
| |
| #: ../../../developer/technical-overview.md:192 |
| msgid "Listening for incoming calls" |
| msgstr "Ακούω εισερχόμενες κλήσεις" |
| |
| #: ../../../developer/technical-overview.md:194 |
| msgid "" |
| "A device listens for incoming calls by performing a listen OpenDHT operation" |
| " on `h(\"`[`callto:\"+DeviceID`](callto:%22+DeviceID)`)` where *h* is SHA1, " |
| "*+* is the string concatenation and *DeviceID* is in hexadecimal form." |
| msgstr "" |
| "Μια συσκευή ακούν για εισερχόμενες κλήσεις εκτελώντας μια λειτουργία OpenDHT" |
| " ακούν στο `h(\"`[`callto:\"+DeviceID`](callto:%22+DeviceID)`)` όπου *h* " |
| "είναι SHA1, *+* είναι η συνδεσία string και *DeviceID* είναι σε έκδεκατη " |
| "μορφή." |
| |
| #: ../../../developer/technical-overview.md:198 |
| msgid "" |
| "At ICE *Initial Offer* reception, the called device **must** do a security " |
| "validation of the peer (see below)." |
| msgstr "" |
| "Στην αίτηση υποδοχής ICE * Αρχική Προσφορά*, η συσκευή που ονομάζεται **** " |
| "πρέπει να πραγματοποιήσει επικύρωση ασφαλείας του ομολόγου (βλ. παρακάτω)." |
| |
| #: ../../../developer/technical-overview.md:200 |
| msgid "" |
| "If the security validation succeed, the called device starts the ICE " |
| "negotiation." |
| msgstr "" |
| "Αν η επικύρωση ασφαλείας πετύχει, η συσκευή που καλείται ξεκινά τη " |
| "διαπραγμάτευση με το ICE." |
| |
| #: ../../../developer/technical-overview.md:202 |
| msgid "" |
| "If the negotiation succeed, the process continues on a server-side DTLS " |
| "session establishment over the created ICE socket (see below)." |
| msgstr "" |
| "Εάν η διαπραγμάτευση επιτύχει, η διαδικασία συνεχίζεται σε μια εγκατάσταση " |
| "DTLS σε server-side session πάνω από το δημιουργημένο ICE socket (βλ. " |
| "παρακάτω)." |
| |
| #: ../../../developer/technical-overview.md:205 |
| msgid "" |
| "*Note: OpenDHT drops values that are not properly encrypted or signed, as " |
| "specified by OpenDHT protocol.*" |
| msgstr "" |
| "*Σημείωση: Το OpenDHT αφήνει σε πέτρα τιμές που δεν είναι σωστά " |
| "κρυπτογραφημένες ή υπογεγραμμένες, όπως ορίζεται από το πρωτόκολλο OpenDHT.*" |
| |
| #: ../../../developer/technical-overview.md:208 |
| msgid "ICE serialization format" |
| msgstr "Τυπικό σύστημα σειριασμού ICE" |
| |
| #: ../../../developer/technical-overview.md:210 |
| msgid "" |
| "ICE messages exchanged between peers during a call set up use following " |
| "format." |
| msgstr "" |
| "Τα μηνύματα ICE που ανταλλάσσονται μεταξύ ομοτίμων κατά τη διάρκεια μιας " |
| "κλήσης που έχει ρυθμιστεί χρησιμοποιούνται με τη μορφή που ακολουθεί." |
| |
| #: ../../../developer/technical-overview.md:212 |
| msgid "" |
| "An ICE message is a chunk of binary data, following " |
| "[msgpack](http://msgpack.org/) data format." |
| msgstr "" |
| "Ένα μήνυμα ICE είναι ένα κομμάτι δυαδικών δεδομένων, που ακολουθεί τη μορφή " |
| "δεδομένων [msgpack]" |
| |
| #: ../../../developer/technical-overview.md:222 |
| msgid "**Current defined protocol is 1**:" |
| msgstr "**Το τρέχον καθορισμένο πρωτόκολλο είναι 1**:" |
| |
| #: ../../../developer/technical-overview.md:224 |
| msgid "Security Validation of the Peer" |
| msgstr "Επιβεβαίωση Ασφάλειας από τους Σύλληφους" |
| |
| #: ../../../developer/technical-overview.md:226 |
| msgid "" |
| "Upon reception of the encrypted and signed Initial ICE Offer (through the " |
| "listen operation), a called device should perform authorization checks of " |
| "the calling device, identified as the Initial Offer signer." |
| msgstr "" |
| "Μετά την παραλαβή της κρυπτογραφημένης και υπογεγραμμένης αρχικής προσφοράς " |
| "ICE (μέσω της λειτουργίας ακουστικής), η καλούμενη συσκευή πρέπει να " |
| "πραγματοποιεί ελέγχους εξουσιοδότησης της συσκευής κλήσης, η οποία " |
| "προσδιορίζεται ως υπογράφων της αρχικής προσφοράς." |
| |
| #: ../../../developer/technical-overview.md:230 |
| msgid "" |
| "Authorization rules are implementation defined, but a typical implementation" |
| " would authorize known or trusted contacts." |
| msgstr "" |
| "Οι κανόνες έγκρισης καθορίζονται ως εφαρμογή, αλλά μια τυπική εφαρμογή θα " |
| "εξουσιοδοτούσε γνωστές ή αξιόπιστες επαφές." |
| |
| #: ../../../developer/technical-overview.md:243 |
| msgid "" |
| "Once a peer-to-peer communication channel has been established by ICE " |
| "protocol, the called device starts a server-side DTLS session on the ICE " |
| "socket, while the caller starts a client-side DTLS session on the other side" |
| " of the ICE socket." |
| msgstr "" |
| "Μόλις έχει δημιουργηθεί ένα κανάλι επικοινωνίας μεταξύ ατόμων με βάση το " |
| "πρωτόκολλο ICE, η καλούμενη συσκευή ξεκινά μια DTLS σερβιτόρα στην πρίζα " |
| "ICE, ενώ ο καλούμενος ξεκινά μια DTLS σερβιτόρα στην άλλη πλευρά της πρίζας " |
| "ICE." |
| |
| #: ../../../developer/technical-overview.md:247 |
| msgid "" |
| "The DTLS communication is [RFC6347](https://tools.ietf.org/html/rfc6347) " |
| "compliant using gnutls library." |
| msgstr "" |
| "Η επικοινωνία DTLS είναι [RFC6347](https://tools.ietf.org/html/rfc6347) " |
| "συμβατή χρησιμοποιώντας τη βιβλιοθήκη gnutls." |
| |
| #: ../../../developer/technical-overview.md:250 |
| msgid "" |
| "To prevent peer certificates to be displayed in plain-text for the call " |
| "anonymity, the session handshake is done twice:" |
| msgstr "" |
| "Για να αποφευχθεί η εμφάνιση πιστοποιητικών ομολόγων σε απλό κείμενο για την" |
| " ανωνυμία της κλήσης, η χειραψία της συνεδρίας γίνεται δύο φορές:" |
| |
| #: ../../../developer/technical-overview.md:253 |
| msgid "" |
| "A first handshake in **anonymous mode** to create a secure but anonymous " |
| "transport." |
| msgstr "" |
| "Μια πρώτη χειραψία σε ανώνυμη λειτουργία για να δημιουργηθεί μια ασφαλής " |
| "αλλά ανώνυμη μεταφορά." |
| |
| #: ../../../developer/technical-overview.md:255 |
| msgid "" |
| "A second handshake in **certificate mode**, over the first one, to prove the" |
| " identity of peers." |
| msgstr "" |
| "Δεύτερη χειραψία σε κατάσταση πιστοποιητικού, σε σχέση με την πρώτη, για να " |
| "αποδειχθεί η ταυτότητα των ομοτίμων." |
| |
| #: ../../../developer/technical-overview.md:258 |
| msgid "Only PFS cipher suites are supported:" |
| msgstr "Υποστηρίζονται μόνο τα κωδικα κωδικοποίησης PFS:" |
| |
| #: ../../../developer/technical-overview.md:259 |
| msgid "" |
| "The set of supported cipher suites is implementation defined but should " |
| "include at least ECDHE-AES-GCM." |
| msgstr "" |
| "Το σύνολο των υποστηριζόμενων συστημάτων κρυπτογράφησης είναι καθορισμένο " |
| "για την εφαρμογή, αλλά πρέπει να περιλαμβάνει τουλάχιστον ECDHE-AES-GCM." |
| |
| #: ../../../developer/technical-overview.md:261 |
| msgid "The actual cipher suites (in gnutls form) is:" |
| msgstr "Οι πραγματικές σουίτες κρυπτογράφησης (σε μορφή gnutls) είναι:" |
| |
| #: ../../../developer/technical-overview.md:262 |
| msgid "" |
| "anonymous step: `SECURE192:-KX-ALL:+ANON-ECDH:+ANON-DH:+SECURE192:-VERS-TLS-" |
| "ALL:+VERS-DTLS-ALL:-RSA:%SERVER_PRECEDENCE:%SAFE_RENEGOTIATION`" |
| msgstr "" |
| "ανώνυμο βήμα: `SECURE192:-KX-ALL:+ANON-ECDH:+ANON-DH:+ANON-" |
| "DH:+SECURE192:-VERS-TLS-ALL:+VERS-DTLS-" |
| "ALL:-RSA:%SERVER_PRECEDENCE:%SAFE_RENEGOTIATION`" |
| |
| #: ../../../developer/technical-overview.md:264 |
| msgid "" |
| "certificate step: `SECURE192:-VERS-TLS-ALL:+VERS-DTLS-" |
| "ALL:-RSA:%SERVER_PRECEDENCE:%SAFE_RENEGOTIATION`" |
| msgstr "" |
| "βήμα πιστοποιητικού: `SECURE192:-VERS-TLS-ALL: +VERS-DTLS-" |
| "ALL:-RSA:%SERVER_PRECEDENCE:%SAFE_RENEGOTIATION`" |
| |
| #: ../../../developer/technical-overview.md:267 |
| msgid "SIP signaling" |
| msgstr "Σημειώσεις SIP" |
| |
| #: ../../../developer/technical-overview.md:269 |
| msgid "" |
| "Used over the DTLS session to signaling the call (vcard, media negotiation, " |
| "hangup, instant messaging, ...)" |
| msgstr "" |
| "Χρησιμοποιείται μέσω της συνεδρίασης DTLS για την υπογραφή της κλήσης " |
| "(vcard, διαπραγμάτευση με τα μέσα ενημέρωσης, hangup, instant messaging,...)" |
| |
| #: ../../../developer/technical-overview.md:271 |
| msgid "" |
| "Once an encrypted and authenticated peer-to-peer communication channel is " |
| "available, the [SIP protocol](https://tools.ietf.org/html/rfc3261) must be " |
| "used to place a call and send messages." |
| msgstr "" |
| "Μόλις είναι διαθέσιμος ένας κρυπτογραφημένος και αυθεντικός κανάλι " |
| "επικοινωνίας μεταξύ ατόμων, πρέπει να χρησιμοποιείται το [πρωτόκολλο SIP] " |
| "(https://tools.ietf.org/html/rfc3261) για τη διενέργεια κλήσης και την " |
| "αποστολή μηνυμάτων." |
| |
| #: ../../../developer/technical-overview.md:275 |
| msgid "" |
| "The caller might send a SIP INVITE as soon as the DTLS channel is " |
| "established." |
| msgstr "" |
| "Ο καλούντος μπορεί να στείλει μια SIP INVITE μόλις δημιουργηθεί το κανάλι " |
| "DTLS." |
| |
| #: ../../../developer/technical-overview.md:284 |
| msgid "Presence" |
| msgstr "Παρουσία" |
| |
| #: ../../../developer/technical-overview.md:286 |
| msgid "Sent on the DHT" |
| msgstr "" |
| |
| #: ../../../developer/technical-overview.md:287 |
| msgid "DeviceAnnouncement (contains device hash + public key)" |
| msgstr "" |
| |
| #: ../../../developer/technical-overview.md:290 |
| msgid "Security / Privacy" |
| msgstr "Ασφάλεια / Ιδιωτική προστασία" |
| |
| #: ../../../developer/technical-overview.md:292 |
| msgid "" |
| "Jami provides perfect forward secrecy for calls and in call text messages " |
| "with different Eliptic Curve Diffie-Hellman key negociation at every call. " |
| "For out of call messaging single RSA-4096 is used. The cryptography library " |
| "used is GNUTLS" |
| msgstr "" |
| "Η Jami παρέχει τέλεια προετοιμασία για κλήσεις και σε κλήσεις κειμένου " |
| "μηνυμάτων με διαφορετική διαπραγμάτευση κλιμάκων Diffie-Hellman σε κάθε " |
| "κλήσεις. Για μηνύματα εκτός κλήσεις χρησιμοποιείται μόνο RSA-4096." |
| |
| #: ../../../developer/technical-overview.md:297 |
| msgid "More informations:" |
| msgstr "Περισσότερες πληροφορίες:" |
| |
| #: ../../../developer/technical-overview.md:299 |
| msgid "" |
| "[Technical overview](technical/Technical-overview) of concepts and protocols" |
| " inside Jami" |
| msgstr "" |
| "[Τεχνική επισκόπηση](τεχνική/τεχνική επισκόπηση) των εννοιών και των " |
| "πρωτοκόλλων στο εσωτερικό του Jami" |
| |
| #: ../../../developer/working-with-gerrit.md:1 |
| msgid "Working with Gerrit" |
| msgstr "Δουλεύοντας με τον Γκέριτ" |
| |
| #: ../../../developer/working-with-gerrit.md:4 |
| msgid "Account Setup" |
| msgstr "Συστημική εγκατάσταση λογαριασμού" |
| |
| #: ../../../developer/working-with-gerrit.md:6 |
| msgid "Gerrit server: <https://review.jami.net>" |
| msgstr "Διοικητής:" |
| |
| #: ../../../developer/working-with-gerrit.md:7 |
| msgid "" |
| "User documentation: <https://review.jami.net/Documentation/intro-user.html>" |
| msgstr "" |
| "Χρησιμοποιούμενος έγγραφο: <https://review.jami.net/Documentation/intro-" |
| "user.html>" |
| |
| #: ../../../developer/working-with-gerrit.md:8 |
| msgid "Jami projects on Gerrit: <https://review.jami.net/admin/repos/>" |
| msgstr "" |
| "Πρωτοβουλίες Jami για την Gerrit: <https://review.jami.net/admin/repos/>" |
| |
| #: ../../../developer/working-with-gerrit.md:10 |
| msgid "Sign-in with your google or github account or git.jami.net account" |
| msgstr "Εισαγωγή με το λογαριασμό google ή github ή git.jami.net" |
| |
| #: ../../../developer/working-with-gerrit.md:11 |
| msgid "" |
| "You'll also need to [upload an SSH " |
| "key](https://review.jami.net/settings/#SSHKeys) to be able to commit changes" |
| " for review." |
| msgstr "" |
| "Θα πρέπει επίσης να κάνετε [φόρτωση κλειδί " |
| "SSH]https://review.jami.net/settings/#SSHKeys) για να μπορείτε να κάνετε " |
| "αλλαγές για αναθεώρηση." |
| |
| #: ../../../developer/working-with-gerrit.md:12 |
| msgid "Don't forget to select a username." |
| msgstr "Μην ξεχάσεις να επιλέξεις όνομα χρήστη." |
| |
| #: ../../../developer/working-with-gerrit.md:13 |
| msgid "" |
| "Finally, the email address specified in your git config must match one the " |
| "email address registered with your Gerrit account." |
| msgstr "" |
| "Τέλος, η διεύθυνση ηλεκτρονικού ταχυδρομείου που αναφέρεται στο git config " |
| "σας πρέπει να ταιριάζει με τη διεύθυνση ηλεκτρονικού ταχυδρομείου που έχει " |
| "καταχωριστεί με το λογαριασμό Gerrit σας." |
| |
| #: ../../../developer/working-with-gerrit.md:15 |
| msgid "" |
| "*Note for Savoir-faire Linux employees: please continue to use your " |
| "@savoirfairelinux.com email address.*" |
| msgstr "" |
| "*Παρατήρηση για τους εργαζόμενους Savoir-faire Linux: παρακαλούμε συνεχίστε " |
| "να χρησιμοποιείτε τη διεύθυνση ηλεκτρονικού ταχυδρομείου σας " |
| "@savoirfairelinux.com.*" |
| |
| #: ../../../developer/working-with-gerrit.md:17 |
| msgid "To Know your Git Config" |
| msgstr "Για να γνωρίσετε το Git Config σας" |
| |
| #: ../../../developer/working-with-gerrit.md:19 |
| msgid "`git config --list`" |
| msgstr "`git config --list`" |
| |
| #: ../../../developer/working-with-gerrit.md:21 |
| msgid "To Test your SSH Access" |
| msgstr "Για να δοκιμάσετε την πρόσβαση SSH σας" |
| |
| #: ../../../developer/working-with-gerrit.md:23 |
| msgid "" |
| "To check that your SSH access is properly setup, run the following command:" |
| msgstr "" |
| "Για να ελέγξετε αν η πρόσβαση SSH σας είναι σωστά ρυθμισμένη, εκτελέστε την " |
| "ακόλουθη εντολή:" |
| |
| #: ../../../developer/working-with-gerrit.md:25 |
| msgid "`ssh -p 29420 <username>@review.jami.net`" |
| msgstr "`ssh -p 29420 <υτοχνητικό όνομα>@review.jami.net`" |
| |
| #: ../../../developer/working-with-gerrit.md:27 |
| msgid "" |
| "<username> is your Gerrit username, that you should have set during the " |
| "account creation. If not, you can do that here." |
| msgstr "" |
| "Το < username> είναι το όνομα χρήστη Gerrit, που θα έπρεπε να έχετε ορίσει " |
| "κατά τη δημιουργία λογαριασμού." |
| |
| #: ../../../developer/working-with-gerrit.md:44 |
| msgid "Git Configuration" |
| msgstr "Συγκρότηση Git" |
| |
| #: ../../../developer/working-with-gerrit.md:46 |
| msgid "Gerrit is the official git repository." |
| msgstr "Ο Τζέρριτ είναι το επίσημο αποθετήριο των git." |
| |
| #: ../../../developer/working-with-gerrit.md:48 |
| msgid "To update the configuration" |
| msgstr "Για να ενημερώσετε τη διαμόρφωση" |
| |
| #: ../../../developer/working-with-gerrit.md:50 |
| msgid "" |
| "You must update your remote information to use now the Gerrit repository. To" |
| " do that, update your origin url:" |
| msgstr "" |
| "Πρέπει να ενημερώσετε τις πληροφορίες σας για να χρησιμοποιήσετε τώρα το " |
| "αποθετήριο Gerrit." |
| |
| #: ../../../developer/working-with-gerrit.md:52 |
| msgid "" |
| "`git remote set-url origin " |
| "ssh://<username>@review.jami.net:29420/<project_name>`" |
| msgstr "" |
| "`git απόσταση set-url προέλευση " |
| "ssh://<username>@review.jami.net:29420/<project_name>`" |
| |
| #: ../../../developer/working-with-gerrit.md:54 |
| msgid "Replace `<project_name>` by the correct project (example: jami-daemon)" |
| msgstr "" |
| "Αντικατάστατε το `<project_name>` με το σωστό έργο (πράγμα: jami-daemon)" |
| |
| #: ../../../developer/working-with-gerrit.md:56 |
| msgid "Or clone the existing repository if you want to start fresh." |
| msgstr "" |
| "Ή κλωνοποιήστε το υπάρχον αποθετήριο αν θέλετε να ξεκινήσετε από την αρχή." |
| |
| #: ../../../developer/working-with-gerrit.md:58 |
| msgid "To Push by Default in refs/for/master" |
| msgstr "Για να σπρώξετε κατά προεπιλογή σε refs/for/master" |
| |
| #: ../../../developer/working-with-gerrit.md:60 |
| msgid "" |
| "You can configure git to automatically create a review when a change is " |
| "pushed." |
| msgstr "" |
| "Μπορείτε να ρυθμίσετε το git για να δημιουργεί αυτόματα μια αναθεώρηση όταν " |
| "μια αλλαγή πιέζεται." |
| |
| #: ../../../developer/working-with-gerrit.md:62 |
| msgid "`git config remote.origin.push HEAD:refs/for/master`" |
| msgstr "`git config remote.origin.push HEAD:refs/for/master`" |
| |
| #: ../../../developer/working-with-gerrit.md:64 |
| msgid "To Create the Review" |
| msgstr "Για να Δημιουργήσουμε την Επισκόπηση" |
| |
| #: ../../../developer/working-with-gerrit.md:66 |
| msgid "" |
| "When pushing to this magic branch, a review will automatically be created on" |
| " Gerrit." |
| msgstr "" |
| "Όταν πιέσεις σε αυτό το μαγικό κλάδο, αυτόματα θα δημιουργηθεί μια " |
| "αναθεώρηση για τον Gerrit." |
| |
| #: ../../../developer/working-with-gerrit.md:68 |
| msgid "`git push origin HEAD:refs/for/master`" |
| msgstr "`git πύση προέλευση ΠΕΔ:refs/for/master`" |
| |
| #: ../../../developer/working-with-gerrit.md:70 |
| msgid "" |
| "If you configured the default to refs/for/master as described above, simply" |
| msgstr "" |
| "Εάν έχετε ρυθμίσει την προεπιλεγμένη σε refs/for/master όπως περιγράφεται " |
| "παραπάνω, απλά" |
| |
| #: ../../../developer/working-with-gerrit.md:72 |
| msgid "`git push`" |
| msgstr "`git πιέσει `" |
| |
| #: ../../../developer/working-with-gerrit.md:74 |
| msgid "" |
| "If HEAD currently points to the branch with the commits you'd like to push. " |
| "Ideally, you should work in a feature/bug branch for the issue at hand. Then" |
| " you can do:" |
| msgstr "Αν το HEAD δείχνει προς το τμήμα με τα commits που θέλετε να πιέσετε." |
| |
| #: ../../../developer/working-with-gerrit.md:76 |
| msgid "`git push origin <bugfix_branchname>:refs/for/master`" |
| msgstr "`git πύση προέλευση <bugfix_branchname>:refs/for/master`" |
| |
| #: ../../../developer/working-with-gerrit.md:78 |
| msgid "" |
| "If this is the first time you've pushed, you will be prompted to install a " |
| "post-commit Hook to insert a Change-ID in your commit message. Gerrit needs " |
| "this to track patchsets and will reject pushes until you install it. Simply " |
| "copy paste the command to install the hook as instructed by Gerrit, and " |
| "amend your commits." |
| msgstr "" |
| "Αν αυτό είναι η πρώτη φορά που πιέζεις, θα σε ζητηθεί να εγκαταστήσεις ένα " |
| "Hook μετά την ανάληψη υποχρεώσεων για να εισαγάγεις ένα Change-ID στο μήνυμα" |
| " commit." |
| |
| #: ../../../developer/working-with-gerrit.md:80 |
| msgid "To Push a Private patch" |
| msgstr "Για να σπρώξεις ένα ιδιωτικό πατς" |
| |
| #: ../../../developer/working-with-gerrit.md:82 |
| msgid "" |
| "You can push a work in progress (a.k.a draft) by pushing to " |
| "refs/for/master%private" |
| msgstr "" |
| "Μπορείτε να πιέσετε ένα έργο που βρίσκεται σε εξέλιξη (α.χ. σχέδιο) " |
| "πιέζοντας σε refs/for/master%private" |
| |
| #: ../../../developer/working-with-gerrit.md:84 |
| msgid "" |
| "For instance, you may want a \"private\" remote to push to; open " |
| "<project_dir>/.git/config and add:" |
| msgstr "" |
| "Για παράδειγμα, μπορεί να θέλετε ένα \"ιδιωτικό\" τηλεχειριστήριο να πιέσετε" |
| " σε; ανοίξτε <project_dir>/.git/config και προσθέστε:" |
| |
| #: ../../../developer/working-with-gerrit.md:93 |
| msgid "Then:" |
| msgstr "Μετά:" |
| |
| #: ../../../developer/working-with-gerrit.md:95 |
| msgid "`git push private`" |
| msgstr "`git πιέσει ιδιωτικό`" |
| |
| #: ../../../developer/working-with-gerrit.md:97 |
| msgid "" |
| "Private work the same way as patchsets, except they are not visible to " |
| "others by default and don't trigger any Jenkins builds. A draft can then be " |
| "shared or published." |
| msgstr "" |
| "Το ιδιωτικό έργο λειτουργεί με τον ίδιο τρόπο με τα πατς σετ, εκτός από το " |
| "ότι δεν είναι ορατά για τους άλλους κατά προεπιλογή και δεν ενεργοποιεί " |
| "οποιαδήποτε κατασκευή Jenkins." |