From f6266478f870002242824a44d81958f798e0aaf7 Mon Sep 17 00:00:00 2001 From: skpanagiotis Date: Mon, 30 Sep 2024 13:30:44 +0300 Subject: [PATCH 1/2] Add (WIP) faq/extending translation --- faq/extending.po | 168 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 140 insertions(+), 28 deletions(-) diff --git a/faq/extending.po b/faq/extending.po index 2c5f2eca..50e0ac5b 100644 --- a/faq/extending.po +++ b/faq/extending.po @@ -10,23 +10,23 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-14 12:51+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" +"Last-Translator: Panagiotis Skias \n" +"Language-Team: PyGreece \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: faq/extending.rst:3 msgid "Extending/Embedding FAQ" -msgstr "" +msgstr "Συχνές ερωτήσεις επέκτασης/ενσωμάτωσης" #: faq/extending.rst:6 msgid "Contents" -msgstr "" +msgstr "Περιεχόμενα" #: faq/extending.rst:16 msgid "Can I create my own functions in C?" -msgstr "" +msgstr "Μπορώ να δημιουργήσω τις δικές μου συναρτήσεις στη C;" #: faq/extending.rst:18 msgid "" @@ -34,14 +34,17 @@ msgid "" "exceptions and even new types in C. This is explained in the document :ref:" "`extending-index`." msgstr "" +"Ναι, μπορείτε να δημιουργήσετε ενσωματωμένα (built-in) modules που περιέχουν συναρτήσεις, μεταβλητές, " +"εξαιρέσεις και ακόμη και νέους τύπους στην C. Αυτό εξηγείται στο έγγραφο :ref:" +"`extending-index`." #: faq/extending.rst:22 msgid "Most intermediate or advanced Python books will also cover this topic." -msgstr "" +msgstr "Τα περισσότερα βιβλία μεσαίας ή προηγμένη Python θα καλύπτουν επίσης αυτό το θέμα." #: faq/extending.rst:26 msgid "Can I create my own functions in C++?" -msgstr "" +msgstr "Μπορώ να δημιουργήσω τις δικές μου συναρτήσεις στη C++;" #: faq/extending.rst:28 msgid "" @@ -50,16 +53,22 @@ msgid "" "before each function that is going to be called by the Python interpreter. " "Global or static C++ objects with constructors are probably not a good idea." msgstr "" +"Ναι, χρησιμοποιώντας τις δυνατότητες συμβατότητας C που βρίσκονται στη C++. Τοποθετήστε το " +"``extern \"C\" { ... }`` γύρω από την Python να περιλαμβάνει αρχεία και τοποθετήστε το " +"``extern \"C\"`` πριν από κάθε συνάρτηση που πρόκειται να κληθεί από τον διερμηνέα της Python. " +"Τα καθολικά ή τα στατικά αντικείμενα C++ με constructors μάλλον δεν είναι καλή ιδέα." #: faq/extending.rst:37 msgid "Writing C is hard; are there any alternatives?" -msgstr "" +msgstr "Το να γράψει C είναι δύσκολο· υπάρχουν άλλες εναλλακτικές;" #: faq/extending.rst:39 msgid "" "There are a number of alternatives to writing your own C extensions, " "depending on what you're trying to do." msgstr "" +"Υπάρχουν διάφροες εναλλακτικές λύσεις για να γράψετε τις δικές σας επεκτάσεις C, " +"ανάλογα με το τι προσπαθείτε να κάνετε." #: faq/extending.rst:44 msgid "" @@ -69,6 +78,11 @@ msgid "" "Cython and Pyrex make it possible to write an extension without having to " "learn Python's C API." msgstr "" +"Το `Cython `_ και το σχετικό του `Pyrex `_ είναι μεταγλωττιστές που δέχονται " +"ελαφρώς τροποποιημένη μορφή της Python και δημιουργούν τον αντίστοιχο C κώδικα. " +"Το Cython και το Pyrex καθιστούν δυνατή τη σύνταξη μιας επέκτασης χωρίς να χρειάζεται " +"να μάθετε το C API της Python." #: faq/extending.rst:50 msgid "" @@ -80,10 +94,17 @@ msgid "" "`_ are also alternatives for wrapping C++ " "libraries." msgstr "" +"Εάν χρειάζεται να συνδεθείτε με κάποια βιβλιοθήκη C ή C++ για την οποία δεν υπάρχει " +"αυτήν τη στιγμή επέκταση Python, μπορείτε να δοκιμάσετε να αναδιπλώσετε τους τύπους " +"δεδομένων και τις συναρτήσεις της βιβλιοθήκης με ένα εργαλείο όπως `SWIG `_. " +"`SIP `__, `CXX `_ `Boost `_, ή `Weave " +"`_ είναι επίσης εναλλακτικές λύσεις για την αναδίπλωση " +"βιβλιοοθηκών C++." #: faq/extending.rst:61 msgid "How can I execute arbitrary Python statements from C?" -msgstr "" +msgstr "Πως μπορώ να εκτελέσω αυθαίρετες δηλώσεις Python από το C;" #: faq/extending.rst:63 msgid "" @@ -94,10 +115,15 @@ msgid "" "func:`PyRun_String`; see the source for :c:func:`PyRun_SimpleString` in " "``Python/pythonrun.c``." msgstr "" +"Η συνάρτηση υψηλότερου επιπέδου για να γίνει αυτό είναι η :c:func:`PyRun_SimpleString` η οποία " +"εκτελεί ένα όρισμα συμβολοσειράς στο πλαίσιο της ενότητας ``__main__`` και επιστρέφει " +"``0`` για επιτυχία και ``-1`` όταν συμβαίνει μαι εξαίρεση (συμπεριλαμβανομένου του :exc:`SyntaxError`). " +"Εάν θέλετε περισσότερο έλεγχο, χρησιμοποιήστε :c:func:`PyRun_String`· δείτε τον πηγαίο " +":c:func:`PyRun_SimpleString` στο``Python/pythonrun.c``."" #: faq/extending.rst:72 msgid "How can I evaluate an arbitrary Python expression from C?" -msgstr "" +msgstr "Πώς μπορώ να αξιολογήσω μια αυθαίρετη έκφραση Python από τη C;" #: faq/extending.rst:74 msgid "" @@ -105,10 +131,13 @@ msgid "" "start symbol :c:data:`Py_eval_input`; it parses an expression, evaluates it " "and returns its value." msgstr "" +"Καλέστε τη συνάρτηση :c:func:`PyRun_String` από την προηγούμενη ερώτηση με το σύμβολο " +"έναρξης :c:data:`Py_eval_input`· αναλύει μια παράσταση, την αξιολογεί και επιστρέφει " +"την τιμή της." #: faq/extending.rst:80 msgid "How do I extract C values from a Python object?" -msgstr "" +msgstr "Πως μπορώ να εξάγάγω τιμές C από ένα αντικείμενο Python;" #: faq/extending.rst:82 msgid "" @@ -117,6 +146,10 @@ msgid "" "specified index. Lists have similar functions, :c:func:`PyList_Size` and :c:" "func:`PyList_GetItem`." msgstr "" +"Αυτό εξαρτάται από τον τύπο του αντικειμένου. Εάν είναι μια πλειάδα (tuple), :c:func:`PyTuple_Size` " +"επιστρέφει το μήκος του και το :c:func:`PyTuple_GetItem` επιστρέφει το στοιχείο σε ένα καθορισμένο " +"index. Οι λίστες έχουν παρόμοεις συναρτήσεις, :c:func:`PyList_Size` και :c:" +"func:`PyList_GetItem`." #: faq/extending.rst:87 msgid "" @@ -125,6 +158,10 @@ msgid "" "Note that Python bytes objects may contain null bytes so C's :c:func:`!" "strlen` should not be used." msgstr "" +"Για bytes, :c:func:`PyBytes_Size` επιστρέφει το μήκος του και το " +":c:func:`PyBytes_AsStringAndSize` παρέχει έναν δείκτη στην τιμή και το μήκος του. " +"Λάβετε υπόψη ότι τα αντικείμενα byte της Python μπορεί να περιέχουν null byte, επομένως η " +":c:func:`!strlen` της C δεν πρέπει να χρησιμοποιείται." #: faq/extending.rst:92 msgid "" @@ -132,6 +169,9 @@ msgid "" "use :c:func:`PyBytes_Check`, :c:func:`PyTuple_Check`, :c:func:" "`PyList_Check`, etc." msgstr "" +"Για να ελέγξετε τον τύπο ενός αντικειμένου, πρώτα βεβαιωθείτε ότι δεν είναι " +"``NULL``, και μετά χρησιμοποιήστε τα :c:func:`PyBytes_Check`, :c:func:`PyTuple_Check`, :c:func:" +"`PyList_Check`, κλπ." #: faq/extending.rst:95 msgid "" @@ -142,18 +182,25 @@ msgid "" "as many other useful protocols such as numbers (:c:func:`PyNumber_Index` et " "al.) and mappings in the PyMapping APIs." msgstr "" +"Υπάρχει επίσης ένα API υψηλού επιπέδου για αντικείμενα Python που παρέχεται από τη " +"λεγόμενη 'abstract' διεπαφή (inteface) -- διαβάστε ``Include/abstract.h`` για περισσότερες " +"λεπτομέρειες. Επιτρέπει τη διασύνδεση με κάθε είδους ακολουθίας Python χρησιμοποιώντας " +"κλήσεις όπως :c:func:`PySequence_Length`, :c:func:`PySequence_GetItem`, κλπ. καθώς και " +"πολλά άλλα χρήσιμα πρωτόκολλα όπως αριθμοί (:c:func:`PyNumber_Index` et " +"al.) και αντιστοιχίσεις στον PyMapping APIs." #: faq/extending.rst:104 msgid "How do I use Py_BuildValue() to create a tuple of arbitrary length?" -msgstr "" +msgstr "Πώς μπορώ να χηρσιμοποιήσω την Py_BuildValue() για να δημιουργήσω μια " +"πλειάδα (tuple) αυθαίρετου μήκους;" #: faq/extending.rst:106 msgid "You can't. Use :c:func:`PyTuple_Pack` instead." -msgstr "" +msgstr "Δεν μπορείς, Χρησιμοποιήστε το :c:func:`PyTuple_Pack`." #: faq/extending.rst:110 msgid "How do I call an object's method from C?" -msgstr "" +msgstr "Πώς καλώ τη μέθοδο ενός αντικειμένου από τη C;" #: faq/extending.rst:112 msgid "" @@ -162,6 +209,10 @@ msgid "" "to call, a format string like that used with :c:func:`Py_BuildValue`, and " "the argument values::" msgstr "" +"Η συνάρτηση :c:func:`PyObject_CallMethod` μπορεί να χρησιμοποιηθεί για την κλήση μιας " +"αυθαίρετης μεθόδου ενός αντικειμένου. Οι παράμετροι είναι το αντικείμενο, το όνομα της " +"μεθόδου προς κλήση, μια συμβολοσειρά μορφής όπως αυτή που χρησιμοποιείται με τη :c:func:`Py_BuildValue`, " +"και τις τιμές ορίσματος::" #: faq/extending.rst:121 msgid "" @@ -169,12 +220,17 @@ msgid "" "defined. You are responsible for eventually :c:func:`Py_DECREF`\\ 'ing the " "return value." msgstr "" +"Αυτό λειτουργεί για κάθε αντικείμενο που έχει μεθόδους -- είτε είναι ενσωματωμένες είτε " +"καθορίζονται από το χρήστη. Είστε υπεύθυνοι εάν τελικά χρησιμοποιήσετε :c:func:`Py_DECREF` " +"στην τιμή επιστροφής." #: faq/extending.rst:124 msgid "" "To call, e.g., a file object's \"seek\" method with arguments 10, 0 " "(assuming the file object pointer is \"f\")::" msgstr "" +"Για να καλέσετε, π.χ., τη μέθοδο \"seek\" ενός αντικειμένου αρχείου με ορίσματα 10, 0 " +"(υποθέτοντας ότι ο δείκτης του αντικειμένου αρχείου είναι \"f\")::" #: faq/extending.rst:135 msgid "" @@ -183,12 +239,17 @@ msgid "" "format, and to call a function with one argument, surround the argument in " "parentheses, e.g. \"(i)\"." msgstr "" +"Σημειώστε ότι επειδή το :c:func:`PyObject_CallObject` *πάντα* θέλει μια πλειάδα (tuple) " +"για τη λίστα ορισμάτων, για να κλαέσει μια συνάρτηση χωρίς ορίσματα, να περάσει \"()\" για τη " +"μορφή και να καλέσει μια συνάρτηση με ένα όρισμα, περιβάλλουν το όρισμα σε παρένθεση, π.χ. \"(i)\"." #: faq/extending.rst:142 msgid "" "How do I catch the output from PyErr_Print() (or anything that prints to " "stdout/stderr)?" msgstr "" +"Πώς μπορών να κάνω catch την έξοδο από την PyErr_Print() (ή οτιδήποτε εκτυπώνεται σε " +"stdout/stderr);" #: faq/extending.rst:144 msgid "" @@ -197,22 +258,27 @@ msgid "" "print_error, or just allow the standard traceback mechanism to work. Then, " "the output will go wherever your ``write()`` method sends it." msgstr "" +"Στον κώδικα Python, ορίστε ένα αντικείμενο που υποστηρίζει τη μέθοδο ``write()``. " +"Αντιστοιχίστε αυτό το αντικείμενο στα :data:`sys.stdout` και :data:`sys.stderr`. Καλέστε " +"το print_error, ή απλώς επιτρέψτε στον τυπικό μηχανισμό ανίχνευσης να λειτουργήσει. Στη συνέχια, " +"η έξοδος θα πάει οπουδήποτε την στείλειη μέθοδος ``write()``." #: faq/extending.rst:149 msgid "The easiest way to do this is to use the :class:`io.StringIO` class:" -msgstr "" +msgstr "Ο ευκολότερος τρόπος για να το κάνετε αυτό είναι να χρησιμοποιήσετε την κλάση " +":class:`io.StringIO`:" #: faq/extending.rst:161 msgid "A custom object to do the same would look like this:" -msgstr "" +msgstr "Ένα προσαρμοσμένο αντικείμενο για να κάνει το ίδιο θα μοιάζει με αυτό:" #: faq/extending.rst:182 msgid "How do I access a module written in Python from C?" -msgstr "" +msgstr "Πως μπορώ να αποκτήσω πρόσβαη σε ένα module γραμμένο σε Python από τη C;" #: faq/extending.rst:184 msgid "You can get a pointer to the module object as follows::" -msgstr "" +msgstr "Μπορείτε να λάβετε έναν δείκτη στο αντικείμενο του module ως εξής::" #: faq/extending.rst:188 msgid "" @@ -222,22 +288,31 @@ msgid "" "module into any namespace -- it only ensures it has been initialized and is " "stored in :data:`sys.modules`." msgstr "" +"Εάν το module δεν έχει εισαχθεί ακόμα (δηλαδή δεν υπάρχει ακόμα στο :data:" +"`sys.modules`), αυτό αρχικοποιεί το module· διαφορετικά απλώς επιστρέφει την τιμή " +"του ``sys.modules[\"\"]``. Σημειώστε ότι δεν εισάγει το module σε κανένα " +"namespace -- διασφαλίζει μόνο ότι έχει αρχικοποιηθεί και ότι είναι αποθηκευμένη στο " +":data:`sys.modules`." #: faq/extending.rst:194 msgid "" "You can then access the module's attributes (i.e. any name defined in the " "module) as follows::" msgstr "" +"Μπορείτε στη συνέχια να αποκτήσετε πρόσβση στα χαρακτηριστικά του module (δηλαδή " +"οποιδήποτε όνομα ορίζεται στο module) ως εξής::" #: faq/extending.rst:199 msgid "" "Calling :c:func:`PyObject_SetAttrString` to assign to variables in the " "module also works." msgstr "" +"Η κλήση :c:func:`PyObject_SetAttrString` για αντιστοίχιση σε μεταβλητές στο " +"module λειτουργεί επίσης." #: faq/extending.rst:204 msgid "How do I interface to C++ objects from Python?" -msgstr "" +msgstr "Πως διασυνδέομαι με αντικείμενα C++ από την Python;" #: faq/extending.rst:206 msgid "" @@ -248,14 +323,19 @@ msgid "" "building a new Python type around a C structure (pointer) type will also " "work for C++ objects." msgstr "" +"Ανάλογαμε τις απαιτήσεις σας, υπάρχουν πολλές προσεγγίσεις. Για να το κάνετε αυτό " +"χειροκίνητα, ξεκινήστε διαβάζονται το :ref:`the \"Extending and Embedding\" document " +"` . Συνειδητοποιήστε ότι για το σύστημα χρόνου εκτέλεστη Python, δεν υπάρχει " +"μεγάλη διαφορά μεταξύ C και C++ -- επομένως η στρατηγική της δημιουργίας ενός νέου τύπου " +"Python γύρω από έναν τύπο δομής C (δείκτη) θα λειτουργήσει επίσης για αντικείμενα C++." #: faq/extending.rst:212 msgid "For C++ libraries, see :ref:`c-wrapper-software`." -msgstr "" +msgstr "Για βιβλιοθήκες C++, δείτε :ref:`c-wrapper-software`." #: faq/extending.rst:216 msgid "I added a module using the Setup file and the make fails; why?" -msgstr "" +msgstr "Πρόσθεσα ένα module χρησιμοποιώντας το αρχείο Setup και το make αποτυγχάνει· γιατί;" #: faq/extending.rst:218 msgid "" @@ -263,30 +343,37 @@ msgid "" "fails. (Fixing this requires some ugly shell script hackery, and this bug " "is so minor that it doesn't seem worth the effort.)" msgstr "" +"Το setup πρέπει να τελειώνει σε μια νέα γραμμή, αν δεν υπάρχει νέα γραμμή, η διαδικασία " +"build αποτυγχάνει. (Για να διορθωθεί αυτό απαιτεί κάποιο κακόβουλο script shell, και αυτό το " +"σφάλμα είναι τόσο μικρό που δεν φαίνεται να αξίζει τον κόπο.)" #: faq/extending.rst:224 msgid "How do I debug an extension?" -msgstr "" +msgstr "Πως κάνω debug μια επέκταση;" #: faq/extending.rst:226 msgid "" "When using GDB with dynamically loaded extensions, you can't set a " "breakpoint in your extension until your extension is loaded." msgstr "" +"Όταν χρησιμοποείτε το GDB με δυναμικά φορτωμένες επεκτάσεις, δεν μπορείτε να ορίσετε " +"σημείο διακοπής στην επεκταση σας μέχρι να φορτωθεί η επέκτασής σας." #: faq/extending.rst:229 msgid "In your ``.gdbinit`` file (or interactively), add the command:" -msgstr "" +msgstr "Στο αρχείο σας ``.gdbinit`` (ή διαδραστικά), προσθέστε την εντολή:" #: faq/extending.rst:235 msgid "Then, when you run GDB:" -msgstr "" +msgstr "Στη συνέχεια, όταν εκτελείτε το GDB:" #: faq/extending.rst:247 msgid "" "I want to compile a Python module on my Linux system, but some files are " "missing. Why?" msgstr "" +"Θέλω να κάνω compile ένα Python module στο σύστημα Linux μου, αλλά λείπουν ορισμένα αρχεία. " +"Γιατί;" #: faq/extending.rst:249 msgid "" @@ -294,18 +381,21 @@ msgid "" "{x}/config/` directory, which contains various files required for compiling " "Python extensions." msgstr "" +"Οι περισσότερες συσκευασμένες εκδόσεις της Python δεν περιλαμβάνουν τον κατάλογο " +":file:`/usr/lib/python2.{x}/config/`, ο οποίος περιέχει διάφορα αρχεία που απαιτούνται " +"για τη μεταγλώτττιση των επεκτάσεων Python." #: faq/extending.rst:253 msgid "For Red Hat, install the python-devel RPM to get the necessary files." -msgstr "" +msgstr "Για το Red Hat, εγκαταστήστε το RPM της python-devel για να λάβετε τα απαραίτητα αρχεία." #: faq/extending.rst:255 msgid "For Debian, run ``apt-get install python-dev``." -msgstr "" +msgstr "Για το Debian, εκτελέστε το ``apt-get install python-dev``." #: faq/extending.rst:258 msgid "How do I tell \"incomplete input\" from \"invalid input\"?" -msgstr "" +msgstr "Πώς μπορώ να ξεχωρίσω την \"ελλιπή εισαγωγή\" από την \"έγκυρη εισαγωγή\";" #: faq/extending.rst:260 msgid "" @@ -315,12 +405,19 @@ msgid "" "parentheses or triple string quotes), but it gives you a syntax error " "message immediately when the input is invalid." msgstr "" +"Μερκές φορές θέλετε να μιμηθείτε τη συμπεριφορά του διαδραστικού διερμηνέα Python, " +"όπου σας δινει ένα συνεχόμενο prompt όταν η είσοδος είναι ελλιπής (π.χ. " +"πληκτρολογήσατε την αρχή μιας δήλωσης \"if\" ή δεν κλείσατε τις παρενθέσεις ή τα " +"τριπλά εισαγωγικά συμβολοσειρών), αλλά σας δίνει ένα μήνυμα συντακτικού σφάλματος αμέσως " +"όταν η εισαγωγή δεν είναι έγκυρη." #: faq/extending.rst:266 msgid "" "In Python you can use the :mod:`codeop` module, which approximates the " "parser's behavior sufficiently. IDLE uses this, for example." msgstr "" +"Στην Python μπορείτε να χρησιμοποιήσετε το module :mod:`codeop`, η οποία προσεγγίζει " +"επαρκώς τη συμπεριφορά του parser. Το IDLE χρησιμοποιεί αυτό, για παράδειγμα." #: faq/extending.rst:269 msgid "" @@ -330,10 +427,15 @@ msgid "" "to point at your custom input function. See ``Modules/readline.c`` and " "``Parser/myreadline.c`` for more hints." msgstr "" +"Ο ευκολότερος τρόπος για να το κάνετε στη C είναι να καλέσετε τη :c:func:`PyRun_InteractiveLoop` " +"(ίσως σε ξεχωριστό νήμα (thread)) και να αφήσετε τον διερμηνέα Python να χειριστεί την είσοδο " +"για εσάς. Μπορείτε επίσης να ορίσετε :c:func:`PyOS_ReadlineFunctionPointer` για να δείξετε " +"την δικιάς προσαρμοσμένη συνάρτηση εισαγωγής. Δείτε τα ``Modules/readline.c`` και " +"``Parser/myreadline.c`` για περισσότερς συμβουλές." #: faq/extending.rst:276 msgid "How do I find undefined g++ symbols __builtin_new or __pure_virtual?" -msgstr "" +msgstr "Πώς μπορώ να βρω απροσδιόριστα σύμβολα g++ __builtin_new ή __pure_virtual;" #: faq/extending.rst:278 msgid "" @@ -341,18 +443,25 @@ msgid "" "it using g++ (change LINKCC in the Python Modules Makefile), and link your " "extension module using g++ (e.g., ``g++ -shared -o mymodule.so mymodule.o``)." msgstr "" +"Για δυναμική φόρτωση module επέκτασης g++, πρέπει να κάνετε recompile την Python, να τη " +"συδέσετε ξανά χρησιμοποιώντας g++ (αλλάξτε το LINKCC στο Python Modules Makefile), και να συνδέσετε " +"το module επέκτασης σας χρησιμοποιώντας g++ (π.χ. ``g++ -shared -o mymodule.so mymodule.o``)." #: faq/extending.rst:284 msgid "" "Can I create an object class with some methods implemented in C and others " "in Python (e.g. through inheritance)?" msgstr "" +"Μπορώ να δημιουργήσω μια κλάση αντικειμένου με ορισμένες μεθόδους που υλοποιούνται στη " +"C και άλλες στη Python (π.χ. μέσω κληρονομικότητας);" #: faq/extending.rst:286 msgid "" "Yes, you can inherit from built-in classes such as :class:`int`, :class:" "`list`, :class:`dict`, etc." msgstr "" +"Ναι, μπορείτε να κληρονομήσετε από ενσωματωμένες (built-in) κλάσεις όπως :class:`int`, :class:" +"`list`, :class:`dict`, κ.λπ." #: faq/extending.rst:289 msgid "" @@ -360,3 +469,6 @@ msgid "" "html) provides a way of doing this from C++ (i.e. you can inherit from an " "extension class written in C++ using the BPL)." msgstr "" +"Η βιβλιοθήκη Boost Python Library (BPL, https://www.boost.org/libs/python/doc/index." +"html) παρέχει ένα τρόπο για να γίνει αυτό από την C++ (δηλαδή μπορείτε να κληρονομήσετε " +"από μια κλάση επέκτασης γραμμένη σε C++ χρησιμοποιώντας το BPL)." \ No newline at end of file From 5f6886e17dac93f6e3d0a376b0e4eece3328efa1 Mon Sep 17 00:00:00 2001 From: skpanagiotis Date: Thu, 31 Oct 2024 12:55:34 +0200 Subject: [PATCH 2/2] Fix translation for faq/extending.po --- dictionaries/main.txt | 27 +++++ faq/extending.po | 267 +++++++++++++++++++++++------------------- 2 files changed, 175 insertions(+), 119 deletions(-) diff --git a/dictionaries/main.txt b/dictionaries/main.txt index 64efe829..457db7ad 100644 --- a/dictionaries/main.txt +++ b/dictionaries/main.txt @@ -30,6 +30,7 @@ Foundation Fred Fredrik Get +Hat I If Inc @@ -54,6 +55,7 @@ Loops Ltd M Mac +Makefile Marek Modules Monty @@ -67,16 +69,19 @@ Packard Pascal Path Perl +Print Py Raising Randal Readline +Red Reilly Research Reston Rust Search Sets +Setup Shop Sign Sox @@ -92,6 +97,7 @@ Thread Title Tk Transform +Tuples U Ulf Unix @@ -105,6 +111,7 @@ a abstract accessor adding +al alone amp and @@ -137,6 +144,7 @@ callable callables callbacks case +catch cfg chomp class @@ -157,6 +165,7 @@ config conflict conflicts constructor +constructors container containers context @@ -174,6 +183,7 @@ delegation delimiters descriptor descriptors +devel dict dictionaries dispatch @@ -194,6 +204,7 @@ email entry error errors +et except exe exec @@ -298,6 +309,7 @@ loop looping mailing main +make mangled menu messages @@ -318,9 +330,11 @@ names namespace namespaces native +new no not notation +null o objects one @@ -344,10 +358,13 @@ pip pipes place positional +print project prompt prompts provisional +pull +pure py pyc pyd @@ -358,14 +375,17 @@ raw re read reader +recompile regressions s script scripts see +seek self sep set +setup short site size @@ -377,6 +397,8 @@ spot stack stand standard +stderr +stdout str string strings @@ -403,6 +425,7 @@ test testing tests the +thread threading to trace @@ -411,6 +434,8 @@ true trunc try tty +tuple +tuples type typing unicode @@ -440,6 +465,7 @@ z zlib Βλ Μετα +Πρόσθεσα αίτημά αγγίξετε αλληλοαποκλείονται @@ -493,6 +519,7 @@ zlib μεταδεδομένων μετακλάσεων μετακλάσης +μιμηθείτε οκταδική οκταδικής οκταδικούς diff --git a/faq/extending.po b/faq/extending.po index 50e0ac5b..10fd8d95 100644 --- a/faq/extending.po +++ b/faq/extending.po @@ -9,12 +9,14 @@ msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-14 12:51+0000\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"PO-Revision-Date: 2024-10-31 12:22+0200\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" +"Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 3.5\n" #: faq/extending.rst:3 msgid "Extending/Embedding FAQ" @@ -34,13 +36,15 @@ msgid "" "exceptions and even new types in C. This is explained in the document :ref:" "`extending-index`." msgstr "" -"Ναι, μπορείτε να δημιουργήσετε ενσωματωμένα (built-in) modules που περιέχουν συναρτήσεις, μεταβλητές, " -"εξαιρέσεις και ακόμη και νέους τύπους στην C. Αυτό εξηγείται στο έγγραφο :ref:" -"`extending-index`." +"Ναι, μπορείτε να δημιουργήσετε ενσωματωμένα (built-in) modules που περιέχουν " +"συναρτήσεις, μεταβλητές, εξαιρέσεις και ακόμη και νέους τύπους στην C. Αυτό " +"εξηγείται στο έγγραφο :ref:`extending-index`." #: faq/extending.rst:22 msgid "Most intermediate or advanced Python books will also cover this topic." -msgstr "Τα περισσότερα βιβλία μεσαίας ή προηγμένη Python θα καλύπτουν επίσης αυτό το θέμα." +msgstr "" +"Τα περισσότερα βιβλία μεσαίας ή προηγμένης Python θα καλύπτουν επίσης αυτό " +"το θέμα." #: faq/extending.rst:26 msgid "Can I create my own functions in C++?" @@ -53,22 +57,23 @@ msgid "" "before each function that is going to be called by the Python interpreter. " "Global or static C++ objects with constructors are probably not a good idea." msgstr "" -"Ναι, χρησιμοποιώντας τις δυνατότητες συμβατότητας C που βρίσκονται στη C++. Τοποθετήστε το " -"``extern \"C\" { ... }`` γύρω από την Python να περιλαμβάνει αρχεία και τοποθετήστε το " -"``extern \"C\"`` πριν από κάθε συνάρτηση που πρόκειται να κληθεί από τον διερμηνέα της Python. " -"Τα καθολικά ή τα στατικά αντικείμενα C++ με constructors μάλλον δεν είναι καλή ιδέα." +"Ναι, χρησιμοποιώντας τις δυνατότητες συμβατότητας C που βρίσκονται στη C++. " +"Τοποθετήστε το ``extern \"C\" { ... }`` γύρω από την Python να περιλαμβάνει " +"αρχεία και τοποθετήστε το ``extern \"C\"`` πριν από κάθε συνάρτηση που " +"πρόκειται να κληθεί από τον διερμηνέα της Python. Τα καθολικά ή τα στατικά " +"αντικείμενα C++ με constructors μάλλον δεν είναι καλή ιδέα." #: faq/extending.rst:37 msgid "Writing C is hard; are there any alternatives?" -msgstr "Το να γράψει C είναι δύσκολο· υπάρχουν άλλες εναλλακτικές;" +msgstr "Το να γράψει C κάποιος είναι δύσκολο· υπάρχουν άλλες εναλλακτικές;" #: faq/extending.rst:39 msgid "" "There are a number of alternatives to writing your own C extensions, " "depending on what you're trying to do." msgstr "" -"Υπάρχουν διάφροες εναλλακτικές λύσεις για να γράψετε τις δικές σας επεκτάσεις C, " -"ανάλογα με το τι προσπαθείτε να κάνετε." +"Υπάρχουν διάφορες εναλλακτικές λύσεις για να γράψετε τις δικές σας " +"επεκτάσεις C, ανάλογα με το τι προσπαθείτε να κάνετε." #: faq/extending.rst:44 msgid "" @@ -78,11 +83,11 @@ msgid "" "Cython and Pyrex make it possible to write an extension without having to " "learn Python's C API." msgstr "" -"Το `Cython `_ και το σχετικό του `Pyrex `_ είναι μεταγλωττιστές που δέχονται " -"ελαφρώς τροποποιημένη μορφή της Python και δημιουργούν τον αντίστοιχο C κώδικα. " -"Το Cython και το Pyrex καθιστούν δυνατή τη σύνταξη μιας επέκτασης χωρίς να χρειάζεται " -"να μάθετε το C API της Python." +"Το `Cython `_ και το σχετικό του `Pyrex `_ είναι μεταγλωττιστές που " +"δέχονται ελαφρώς τροποποιημένη μορφή της Python και δημιουργούν τον " +"αντίστοιχο C κώδικα. Το Cython και το Pyrex καθιστούν δυνατή τη σύνταξη " +"μιας επέκτασης χωρίς να χρειάζεται να μάθετε το C API της Python." #: faq/extending.rst:50 msgid "" @@ -94,13 +99,14 @@ msgid "" "`_ are also alternatives for wrapping C++ " "libraries." msgstr "" -"Εάν χρειάζεται να συνδεθείτε με κάποια βιβλιοθήκη C ή C++ για την οποία δεν υπάρχει " -"αυτήν τη στιγμή επέκταση Python, μπορείτε να δοκιμάσετε να αναδιπλώσετε τους τύπους " -"δεδομένων και τις συναρτήσεις της βιβλιοθήκης με ένα εργαλείο όπως `SWIG `_. " -"`SIP `__, `CXX `_ `Boost `_, ή `Weave " -"`_ είναι επίσης εναλλακτικές λύσεις για την αναδίπλωση " -"βιβλιοοθηκών C++." +"Εάν χρειάζεται να συνδεθείτε με κάποια βιβλιοθήκη C ή C++ για την οποία δεν " +"υπάρχει αυτήν τη στιγμή επέκταση Python, μπορείτε να δοκιμάσετε να " +"αναδιπλώσετε τους τύπους δεδομένων και τις συναρτήσεις της βιβλιοθήκης με " +"ένα εργαλείο όπως `SWIG `_. `SIP `__, `CXX `_ `Boost `_, ή `Weave `_ είναι επίσης εναλλακτικές λύσεις για την αναδίπλωση " +"βιβλιοθηκών C++." #: faq/extending.rst:61 msgid "How can I execute arbitrary Python statements from C?" @@ -115,11 +121,12 @@ msgid "" "func:`PyRun_String`; see the source for :c:func:`PyRun_SimpleString` in " "``Python/pythonrun.c``." msgstr "" -"Η συνάρτηση υψηλότερου επιπέδου για να γίνει αυτό είναι η :c:func:`PyRun_SimpleString` η οποία " -"εκτελεί ένα όρισμα συμβολοσειράς στο πλαίσιο της ενότητας ``__main__`` και επιστρέφει " -"``0`` για επιτυχία και ``-1`` όταν συμβαίνει μαι εξαίρεση (συμπεριλαμβανομένου του :exc:`SyntaxError`). " -"Εάν θέλετε περισσότερο έλεγχο, χρησιμοποιήστε :c:func:`PyRun_String`· δείτε τον πηγαίο " -":c:func:`PyRun_SimpleString` στο``Python/pythonrun.c``."" +"Η συνάρτηση υψηλότερου επιπέδου για να γίνει αυτό είναι η :c:func:" +"`PyRun_SimpleString` η οποία εκτελεί ένα όρισμα συμβολοσειράς στο πλαίσιο " +"της ενότητας ``__main__`` και επιστρέφει ``0`` για επιτυχία και ``-1`` όταν " +"συμβαίνει μια εξαίρεση (συμπεριλαμβανομένου του :exc:`SyntaxError`). Εάν " +"θέλετε περισσότερο έλεγχο, χρησιμοποιήστε :c:func:`PyRun_String`· δείτε τον " +"πηγαίο κώδικα :c:func:`PyRun_SimpleString` στο``Python/pythonrun.c``." #: faq/extending.rst:72 msgid "How can I evaluate an arbitrary Python expression from C?" @@ -131,13 +138,13 @@ msgid "" "start symbol :c:data:`Py_eval_input`; it parses an expression, evaluates it " "and returns its value." msgstr "" -"Καλέστε τη συνάρτηση :c:func:`PyRun_String` από την προηγούμενη ερώτηση με το σύμβολο " -"έναρξης :c:data:`Py_eval_input`· αναλύει μια παράσταση, την αξιολογεί και επιστρέφει " -"την τιμή της." +"Καλέστε τη συνάρτηση :c:func:`PyRun_String` από την προηγούμενη ερώτηση με " +"το σύμβολο έναρξης :c:data:`Py_eval_input`· αναλύει μια παράσταση, την " +"αξιολογεί και επιστρέφει την τιμή της." #: faq/extending.rst:80 msgid "How do I extract C values from a Python object?" -msgstr "Πως μπορώ να εξάγάγω τιμές C από ένα αντικείμενο Python;" +msgstr "Πως μπορώ να εξάγω τιμές C από ένα αντικείμενο Python;" #: faq/extending.rst:82 msgid "" @@ -146,10 +153,11 @@ msgid "" "specified index. Lists have similar functions, :c:func:`PyList_Size` and :c:" "func:`PyList_GetItem`." msgstr "" -"Αυτό εξαρτάται από τον τύπο του αντικειμένου. Εάν είναι μια πλειάδα (tuple), :c:func:`PyTuple_Size` " -"επιστρέφει το μήκος του και το :c:func:`PyTuple_GetItem` επιστρέφει το στοιχείο σε ένα καθορισμένο " -"index. Οι λίστες έχουν παρόμοεις συναρτήσεις, :c:func:`PyList_Size` και :c:" -"func:`PyList_GetItem`." +"Αυτό εξαρτάται από τον τύπο του αντικειμένου. Εάν είναι μια πλειάδα " +"(tuple), :c:func:`PyTuple_Size` επιστρέφει το μήκος του και το :c:func:" +"`PyTuple_GetItem` επιστρέφει το στοιχείο σε ένα καθορισμένο index. Οι " +"λίστες έχουν παρόμοιες συναρτήσεις, :c:func:`PyList_Size` και :c:func:" +"`PyList_GetItem`." #: faq/extending.rst:87 msgid "" @@ -158,10 +166,10 @@ msgid "" "Note that Python bytes objects may contain null bytes so C's :c:func:`!" "strlen` should not be used." msgstr "" -"Για bytes, :c:func:`PyBytes_Size` επιστρέφει το μήκος του και το " -":c:func:`PyBytes_AsStringAndSize` παρέχει έναν δείκτη στην τιμή και το μήκος του. " -"Λάβετε υπόψη ότι τα αντικείμενα byte της Python μπορεί να περιέχουν null byte, επομένως η " -":c:func:`!strlen` της C δεν πρέπει να χρησιμοποιείται." +"Για bytes, :c:func:`PyBytes_Size` επιστρέφει το μήκος του και το :c:func:" +"`PyBytes_AsStringAndSize` παρέχει έναν δείκτη στην τιμή και το μήκος του. " +"Λάβετε υπόψη ότι τα αντικείμενα byte της Python μπορεί να περιέχουν null " +"byte, επομένως η :c:func:`!strlen` της C δεν πρέπει να χρησιμοποιείται." #: faq/extending.rst:92 msgid "" @@ -170,8 +178,8 @@ msgid "" "`PyList_Check`, etc." msgstr "" "Για να ελέγξετε τον τύπο ενός αντικειμένου, πρώτα βεβαιωθείτε ότι δεν είναι " -"``NULL``, και μετά χρησιμοποιήστε τα :c:func:`PyBytes_Check`, :c:func:`PyTuple_Check`, :c:func:" -"`PyList_Check`, κλπ." +"``NULL``, και μετά χρησιμοποιήστε τα :c:func:`PyBytes_Check`, :c:func:" +"`PyTuple_Check`, :c:func:`PyList_Check`, κλπ." #: faq/extending.rst:95 msgid "" @@ -182,21 +190,23 @@ msgid "" "as many other useful protocols such as numbers (:c:func:`PyNumber_Index` et " "al.) and mappings in the PyMapping APIs." msgstr "" -"Υπάρχει επίσης ένα API υψηλού επιπέδου για αντικείμενα Python που παρέχεται από τη " -"λεγόμενη 'abstract' διεπαφή (inteface) -- διαβάστε ``Include/abstract.h`` για περισσότερες " -"λεπτομέρειες. Επιτρέπει τη διασύνδεση με κάθε είδους ακολουθίας Python χρησιμοποιώντας " -"κλήσεις όπως :c:func:`PySequence_Length`, :c:func:`PySequence_GetItem`, κλπ. καθώς και " -"πολλά άλλα χρήσιμα πρωτόκολλα όπως αριθμοί (:c:func:`PyNumber_Index` et " -"al.) και αντιστοιχίσεις στον PyMapping APIs." +"Υπάρχει επίσης ένα API υψηλού επιπέδου για αντικείμενα Python που παρέχεται " +"από τη λεγόμενη 'abstract' διεπαφή (interface) -- διαβάστε ``Include/" +"abstract.h`` για περισσότερες λεπτομέρειες. Επιτρέπει τη διασύνδεση με κάθε " +"είδους ακολουθίας Python χρησιμοποιώντας κλήσεις όπως :c:func:" +"`PySequence_Length`, :c:func:`PySequence_GetItem`, κλπ. καθώς και πολλά άλλα " +"χρήσιμα πρωτόκολλα όπως αριθμοί (:c:func:`PyNumber_Index` et al.) και " +"αντιστοιχίσεις στον PyMapping APIs." #: faq/extending.rst:104 msgid "How do I use Py_BuildValue() to create a tuple of arbitrary length?" -msgstr "Πώς μπορώ να χηρσιμοποιήσω την Py_BuildValue() για να δημιουργήσω μια " +msgstr "" +"Πώς μπορώ να χρησιμοποιήσω την Py_BuildValue() για να δημιουργήσω μια " "πλειάδα (tuple) αυθαίρετου μήκους;" #: faq/extending.rst:106 msgid "You can't. Use :c:func:`PyTuple_Pack` instead." -msgstr "Δεν μπορείς, Χρησιμοποιήστε το :c:func:`PyTuple_Pack`." +msgstr "Δεν μπορείς. Χρησιμοποιήστε το :c:func:`PyTuple_Pack`." #: faq/extending.rst:110 msgid "How do I call an object's method from C?" @@ -209,10 +219,11 @@ msgid "" "to call, a format string like that used with :c:func:`Py_BuildValue`, and " "the argument values::" msgstr "" -"Η συνάρτηση :c:func:`PyObject_CallMethod` μπορεί να χρησιμοποιηθεί για την κλήση μιας " -"αυθαίρετης μεθόδου ενός αντικειμένου. Οι παράμετροι είναι το αντικείμενο, το όνομα της " -"μεθόδου προς κλήση, μια συμβολοσειρά μορφής όπως αυτή που χρησιμοποιείται με τη :c:func:`Py_BuildValue`, " -"και τις τιμές ορίσματος::" +"Η συνάρτηση :c:func:`PyObject_CallMethod` μπορεί να χρησιμοποιηθεί για την " +"κλήση μιας αυθαίρετης μεθόδου ενός αντικειμένου. Οι παράμετροι είναι το " +"αντικείμενο, το όνομα της μεθόδου προς κλήση, μια συμβολοσειρά μορφής όπως " +"αυτή που χρησιμοποιείται με τη :c:func:`Py_BuildValue`, και τις τιμές " +"ορίσματος::" #: faq/extending.rst:121 msgid "" @@ -220,17 +231,18 @@ msgid "" "defined. You are responsible for eventually :c:func:`Py_DECREF`\\ 'ing the " "return value." msgstr "" -"Αυτό λειτουργεί για κάθε αντικείμενο που έχει μεθόδους -- είτε είναι ενσωματωμένες είτε " -"καθορίζονται από το χρήστη. Είστε υπεύθυνοι εάν τελικά χρησιμοποιήσετε :c:func:`Py_DECREF` " -"στην τιμή επιστροφής." +"Αυτό λειτουργεί για κάθε αντικείμενο που έχει μεθόδους -- είτε είναι " +"ενσωματωμένες είτε καθορίζονται από το χρήστη. Είστε υπεύθυνοι εάν τελικά " +"χρησιμοποιήσετε :c:func:`Py_DECREF` στην τιμή επιστροφής." #: faq/extending.rst:124 msgid "" "To call, e.g., a file object's \"seek\" method with arguments 10, 0 " "(assuming the file object pointer is \"f\")::" msgstr "" -"Για να καλέσετε, π.χ., τη μέθοδο \"seek\" ενός αντικειμένου αρχείου με ορίσματα 10, 0 " -"(υποθέτοντας ότι ο δείκτης του αντικειμένου αρχείου είναι \"f\")::" +"Για να καλέσετε, π.χ., τη μέθοδο \"seek\" ενός αντικειμένου αρχείου με " +"ορίσματα 10, 0 (υποθέτοντας ότι ο δείκτης του αντικειμένου αρχείου είναι " +"\"f\")::" #: faq/extending.rst:135 msgid "" @@ -239,17 +251,18 @@ msgid "" "format, and to call a function with one argument, surround the argument in " "parentheses, e.g. \"(i)\"." msgstr "" -"Σημειώστε ότι επειδή το :c:func:`PyObject_CallObject` *πάντα* θέλει μια πλειάδα (tuple) " -"για τη λίστα ορισμάτων, για να κλαέσει μια συνάρτηση χωρίς ορίσματα, να περάσει \"()\" για τη " -"μορφή και να καλέσει μια συνάρτηση με ένα όρισμα, περιβάλλουν το όρισμα σε παρένθεση, π.χ. \"(i)\"." +"Σημειώστε ότι επειδή το :c:func:`PyObject_CallObject` *πάντα* θέλει μια " +"πλειάδα (tuple) για τη λίστα ορισμάτων, για να καλέσει μια συνάρτηση χωρίς " +"ορίσματα, να περάσει \"()\" για τη μορφή και να καλέσει μια συνάρτηση με ένα " +"όρισμα, περιβάλλουν το όρισμα σε παρένθεση, π.χ. \"(i)\"." #: faq/extending.rst:142 msgid "" "How do I catch the output from PyErr_Print() (or anything that prints to " "stdout/stderr)?" msgstr "" -"Πώς μπορών να κάνω catch την έξοδο από την PyErr_Print() (ή οτιδήποτε εκτυπώνεται σε " -"stdout/stderr);" +"Πώς μπορώ να κάνω catch την έξοδο από την PyErr_Print() (ή οτιδήποτε " +"εκτυπώνεται σε stdout/stderr);" #: faq/extending.rst:144 msgid "" @@ -258,15 +271,17 @@ msgid "" "print_error, or just allow the standard traceback mechanism to work. Then, " "the output will go wherever your ``write()`` method sends it." msgstr "" -"Στον κώδικα Python, ορίστε ένα αντικείμενο που υποστηρίζει τη μέθοδο ``write()``. " -"Αντιστοιχίστε αυτό το αντικείμενο στα :data:`sys.stdout` και :data:`sys.stderr`. Καλέστε " -"το print_error, ή απλώς επιτρέψτε στον τυπικό μηχανισμό ανίχνευσης να λειτουργήσει. Στη συνέχια, " -"η έξοδος θα πάει οπουδήποτε την στείλειη μέθοδος ``write()``." +"Στον κώδικα Python, ορίστε ένα αντικείμενο που υποστηρίζει τη μέθοδο " +"``write()``. Αντιστοιχίστε αυτό το αντικείμενο στα :data:`sys.stdout` και :" +"data:`sys.stderr`. Καλέστε το print_error, ή απλώς επιτρέψτε στον τυπικό " +"μηχανισμό ανίχνευσης να λειτουργήσει. Στη συνέχεια, η έξοδος θα πάει " +"οπουδήποτε την στείλει η μέθοδος ``write()``." #: faq/extending.rst:149 msgid "The easiest way to do this is to use the :class:`io.StringIO` class:" -msgstr "Ο ευκολότερος τρόπος για να το κάνετε αυτό είναι να χρησιμοποιήσετε την κλάση " -":class:`io.StringIO`:" +msgstr "" +"Ο ευκολότερος τρόπος για να το κάνετε αυτό είναι να χρησιμοποιήσετε την " +"κλάση :class:`io.StringIO`:" #: faq/extending.rst:161 msgid "A custom object to do the same would look like this:" @@ -274,7 +289,8 @@ msgstr "Ένα προσαρμοσμένο αντικείμενο για να κ #: faq/extending.rst:182 msgid "How do I access a module written in Python from C?" -msgstr "Πως μπορώ να αποκτήσω πρόσβαη σε ένα module γραμμένο σε Python από τη C;" +msgstr "" +"Πως μπορώ να αποκτήσω πρόσβαση σε ένα module γραμμένο σε Python από τη C;" #: faq/extending.rst:184 msgid "You can get a pointer to the module object as follows::" @@ -289,18 +305,18 @@ msgid "" "stored in :data:`sys.modules`." msgstr "" "Εάν το module δεν έχει εισαχθεί ακόμα (δηλαδή δεν υπάρχει ακόμα στο :data:" -"`sys.modules`), αυτό αρχικοποιεί το module· διαφορετικά απλώς επιστρέφει την τιμή " -"του ``sys.modules[\"\"]``. Σημειώστε ότι δεν εισάγει το module σε κανένα " -"namespace -- διασφαλίζει μόνο ότι έχει αρχικοποιηθεί και ότι είναι αποθηκευμένη στο " -":data:`sys.modules`." +"`sys.modules`), αυτό αρχικοποιεί το module· διαφορετικά απλώς επιστρέφει την " +"τιμή του ``sys.modules[\"\"]``. Σημειώστε ότι δεν εισάγει το " +"module σε κανένα namespace -- διασφαλίζει μόνο ότι έχει αρχικοποιηθεί και " +"ότι είναι αποθηκευμένη στο :data:`sys.modules`." #: faq/extending.rst:194 msgid "" "You can then access the module's attributes (i.e. any name defined in the " "module) as follows::" msgstr "" -"Μπορείτε στη συνέχια να αποκτήσετε πρόσβση στα χαρακτηριστικά του module (δηλαδή " -"οποιδήποτε όνομα ορίζεται στο module) ως εξής::" +"Μπορείτε στη συνέχεια να αποκτήσετε πρόσβαση στα χαρακτηριστικά του module " +"(δηλαδή οποιοδήποτε όνομα ορίζεται στο module) ως εξής::" #: faq/extending.rst:199 msgid "" @@ -323,11 +339,12 @@ msgid "" "building a new Python type around a C structure (pointer) type will also " "work for C++ objects." msgstr "" -"Ανάλογαμε τις απαιτήσεις σας, υπάρχουν πολλές προσεγγίσεις. Για να το κάνετε αυτό " -"χειροκίνητα, ξεκινήστε διαβάζονται το :ref:`the \"Extending and Embedding\" document " -"` . Συνειδητοποιήστε ότι για το σύστημα χρόνου εκτέλεστη Python, δεν υπάρχει " -"μεγάλη διαφορά μεταξύ C και C++ -- επομένως η στρατηγική της δημιουργίας ενός νέου τύπου " -"Python γύρω από έναν τύπο δομής C (δείκτη) θα λειτουργήσει επίσης για αντικείμενα C++." +"Ανάλογα με τις απαιτήσεις σας, υπάρχουν πολλές προσεγγίσεις. Για να το " +"κάνετε αυτό χειροκίνητα, ξεκινήστε διαβάζοντας το :ref:`the \"Extending and " +"Embedding\" document ` . Συνειδητοποιήστε ότι για το " +"σύστημα χρόνου εκτελεστή Python, δεν υπάρχει μεγάλη διαφορά μεταξύ C και C++ " +"-- επομένως η στρατηγική της δημιουργίας ενός νέου τύπου Python γύρω από " +"έναν τύπο δομής C (δείκτη) θα λειτουργήσει επίσης για αντικείμενα C++." #: faq/extending.rst:212 msgid "For C++ libraries, see :ref:`c-wrapper-software`." @@ -335,7 +352,9 @@ msgstr "Για βιβλιοθήκες C++, δείτε :ref:`c-wrapper-software`. #: faq/extending.rst:216 msgid "I added a module using the Setup file and the make fails; why?" -msgstr "Πρόσθεσα ένα module χρησιμοποιώντας το αρχείο Setup και το make αποτυγχάνει· γιατί;" +msgstr "" +"Πρόσθεσα ένα module χρησιμοποιώντας το αρχείο Setup και το make αποτυγχάνει· " +"γιατί;" #: faq/extending.rst:218 msgid "" @@ -343,9 +362,10 @@ msgid "" "fails. (Fixing this requires some ugly shell script hackery, and this bug " "is so minor that it doesn't seem worth the effort.)" msgstr "" -"Το setup πρέπει να τελειώνει σε μια νέα γραμμή, αν δεν υπάρχει νέα γραμμή, η διαδικασία " -"build αποτυγχάνει. (Για να διορθωθεί αυτό απαιτεί κάποιο κακόβουλο script shell, και αυτό το " -"σφάλμα είναι τόσο μικρό που δεν φαίνεται να αξίζει τον κόπο.)" +"Το setup πρέπει να τελειώνει σε μια νέα γραμμή, αν δεν υπάρχει νέα γραμμή, η " +"διαδικασία build αποτυγχάνει. (Για να διορθωθεί αυτό απαιτεί κάποιο " +"κακόβουλο script shell, και αυτό το σφάλμα είναι τόσο μικρό που δεν φαίνεται " +"να αξίζει τον κόπο.)" #: faq/extending.rst:224 msgid "How do I debug an extension?" @@ -356,8 +376,9 @@ msgid "" "When using GDB with dynamically loaded extensions, you can't set a " "breakpoint in your extension until your extension is loaded." msgstr "" -"Όταν χρησιμοποείτε το GDB με δυναμικά φορτωμένες επεκτάσεις, δεν μπορείτε να ορίσετε " -"σημείο διακοπής στην επεκταση σας μέχρι να φορτωθεί η επέκτασής σας." +"Όταν χρησιμοποιείτε το GDB με δυναμικά φορτωμένες επεκτάσεις, δεν μπορείτε " +"να ορίσετε σημείο διακοπής στην επέκταση σας μέχρι να φορτωθεί η επέκτασής " +"σας." #: faq/extending.rst:229 msgid "In your ``.gdbinit`` file (or interactively), add the command:" @@ -372,8 +393,8 @@ msgid "" "I want to compile a Python module on my Linux system, but some files are " "missing. Why?" msgstr "" -"Θέλω να κάνω compile ένα Python module στο σύστημα Linux μου, αλλά λείπουν ορισμένα αρχεία. " -"Γιατί;" +"Θέλω να κάνω compile ένα Python module στο σύστημα Linux μου, αλλά λείπουν " +"ορισμένα αρχεία. Γιατί;" #: faq/extending.rst:249 msgid "" @@ -381,13 +402,15 @@ msgid "" "{x}/config/` directory, which contains various files required for compiling " "Python extensions." msgstr "" -"Οι περισσότερες συσκευασμένες εκδόσεις της Python δεν περιλαμβάνουν τον κατάλογο " -":file:`/usr/lib/python2.{x}/config/`, ο οποίος περιέχει διάφορα αρχεία που απαιτούνται " -"για τη μεταγλώτττιση των επεκτάσεων Python." +"Οι περισσότερες συσκευασμένες εκδόσεις της Python δεν περιλαμβάνουν τον " +"κατάλογο :file:`/usr/lib/python2.{x}/config/`, ο οποίος περιέχει διάφορα " +"αρχεία που απαιτούνται για τη μεταγλώττιση των επεκτάσεων Python." #: faq/extending.rst:253 msgid "For Red Hat, install the python-devel RPM to get the necessary files." -msgstr "Για το Red Hat, εγκαταστήστε το RPM της python-devel για να λάβετε τα απαραίτητα αρχεία." +msgstr "" +"Για το Red Hat, εγκαταστήστε το RPM της python-devel για να λάβετε τα " +"απαραίτητα αρχεία." #: faq/extending.rst:255 msgid "For Debian, run ``apt-get install python-dev``." @@ -395,7 +418,8 @@ msgstr "Για το Debian, εκτελέστε το ``apt-get install python-dev #: faq/extending.rst:258 msgid "How do I tell \"incomplete input\" from \"invalid input\"?" -msgstr "Πώς μπορώ να ξεχωρίσω την \"ελλιπή εισαγωγή\" από την \"έγκυρη εισαγωγή\";" +msgstr "" +"Πώς μπορώ να ξεχωρίσω την \"ελλιπή εισαγωγή\" από την \"έγκυρη εισαγωγή\";" #: faq/extending.rst:260 msgid "" @@ -405,19 +429,20 @@ msgid "" "parentheses or triple string quotes), but it gives you a syntax error " "message immediately when the input is invalid." msgstr "" -"Μερκές φορές θέλετε να μιμηθείτε τη συμπεριφορά του διαδραστικού διερμηνέα Python, " -"όπου σας δινει ένα συνεχόμενο prompt όταν η είσοδος είναι ελλιπής (π.χ. " -"πληκτρολογήσατε την αρχή μιας δήλωσης \"if\" ή δεν κλείσατε τις παρενθέσεις ή τα " -"τριπλά εισαγωγικά συμβολοσειρών), αλλά σας δίνει ένα μήνυμα συντακτικού σφάλματος αμέσως " -"όταν η εισαγωγή δεν είναι έγκυρη." +"Μερικές φορές θέλετε να μιμηθείτε τη συμπεριφορά του διαδραστικού διερμηνέα " +"Python, όπου σας δίνει ένα συνεχόμενο prompt όταν η είσοδος είναι ελλιπής (π." +"χ. πληκτρολογήσατε την αρχή μιας δήλωσης \"if\" ή δεν κλείσατε τις " +"παρενθέσεις ή τα τριπλά εισαγωγικά συμβολοσειρών), αλλά σας δίνει ένα μήνυμα " +"συντακτικού σφάλματος αμέσως όταν η εισαγωγή δεν είναι έγκυρη." #: faq/extending.rst:266 msgid "" "In Python you can use the :mod:`codeop` module, which approximates the " "parser's behavior sufficiently. IDLE uses this, for example." msgstr "" -"Στην Python μπορείτε να χρησιμοποιήσετε το module :mod:`codeop`, η οποία προσεγγίζει " -"επαρκώς τη συμπεριφορά του parser. Το IDLE χρησιμοποιεί αυτό, για παράδειγμα." +"Στην Python μπορείτε να χρησιμοποιήσετε το module :mod:`codeop`, η οποία " +"προσεγγίζει επαρκώς τη συμπεριφορά του parser. Το IDLE χρησιμοποιεί αυτό, " +"για παράδειγμα." #: faq/extending.rst:269 msgid "" @@ -427,15 +452,17 @@ msgid "" "to point at your custom input function. See ``Modules/readline.c`` and " "``Parser/myreadline.c`` for more hints." msgstr "" -"Ο ευκολότερος τρόπος για να το κάνετε στη C είναι να καλέσετε τη :c:func:`PyRun_InteractiveLoop` " -"(ίσως σε ξεχωριστό νήμα (thread)) και να αφήσετε τον διερμηνέα Python να χειριστεί την είσοδο " -"για εσάς. Μπορείτε επίσης να ορίσετε :c:func:`PyOS_ReadlineFunctionPointer` για να δείξετε " -"την δικιάς προσαρμοσμένη συνάρτηση εισαγωγής. Δείτε τα ``Modules/readline.c`` και " -"``Parser/myreadline.c`` για περισσότερς συμβουλές." +"Ο ευκολότερος τρόπος για να το κάνετε στη C είναι να καλέσετε τη :c:func:" +"`PyRun_InteractiveLoop` (ίσως σε ξεχωριστό νήμα (thread)) και να αφήσετε τον " +"διερμηνέα Python να χειριστεί την είσοδο για εσάς. Μπορείτε επίσης να " +"ορίσετε :c:func:`PyOS_ReadlineFunctionPointer` για να δείξετε την δικιάς " +"προσαρμοσμένη συνάρτηση εισαγωγής. Δείτε τα ``Modules/readline.c`` και " +"``Parser/myreadline.c`` για περισσότερες συμβουλές." #: faq/extending.rst:276 msgid "How do I find undefined g++ symbols __builtin_new or __pure_virtual?" -msgstr "Πώς μπορώ να βρω απροσδιόριστα σύμβολα g++ __builtin_new ή __pure_virtual;" +msgstr "" +"Πώς μπορώ να βρω απροσδιόριστα σύμβολα g++ __builtin_new ή __pure_virtual;" #: faq/extending.rst:278 msgid "" @@ -443,25 +470,26 @@ msgid "" "it using g++ (change LINKCC in the Python Modules Makefile), and link your " "extension module using g++ (e.g., ``g++ -shared -o mymodule.so mymodule.o``)." msgstr "" -"Για δυναμική φόρτωση module επέκτασης g++, πρέπει να κάνετε recompile την Python, να τη " -"συδέσετε ξανά χρησιμοποιώντας g++ (αλλάξτε το LINKCC στο Python Modules Makefile), και να συνδέσετε " -"το module επέκτασης σας χρησιμοποιώντας g++ (π.χ. ``g++ -shared -o mymodule.so mymodule.o``)." +"Για δυναμική φόρτωση module επέκτασης g++, πρέπει να κάνετε recompile την " +"Python, να τη συνδέσετε ξανά χρησιμοποιώντας g++ (αλλάξτε το LINKCC στο " +"Python Modules Makefile), και να συνδέσετε το module επέκτασης σας " +"χρησιμοποιώντας g++ (π.χ. ``g++ -shared -o mymodule.so mymodule.o``)." #: faq/extending.rst:284 msgid "" "Can I create an object class with some methods implemented in C and others " "in Python (e.g. through inheritance)?" msgstr "" -"Μπορώ να δημιουργήσω μια κλάση αντικειμένου με ορισμένες μεθόδους που υλοποιούνται στη " -"C και άλλες στη Python (π.χ. μέσω κληρονομικότητας);" +"Μπορώ να δημιουργήσω μια κλάση αντικειμένου με ορισμένες μεθόδους που " +"υλοποιούνται στη C και άλλες στη Python (π.χ. μέσω κληρονομικότητας);" #: faq/extending.rst:286 msgid "" "Yes, you can inherit from built-in classes such as :class:`int`, :class:" "`list`, :class:`dict`, etc." msgstr "" -"Ναι, μπορείτε να κληρονομήσετε από ενσωματωμένες (built-in) κλάσεις όπως :class:`int`, :class:" -"`list`, :class:`dict`, κ.λπ." +"Ναι, μπορείτε να κληρονομήσετε από ενσωματωμένες (built-in) κλάσεις όπως :" +"class:`int`, :class:`list`, :class:`dict`, κ.λπ." #: faq/extending.rst:289 msgid "" @@ -469,6 +497,7 @@ msgid "" "html) provides a way of doing this from C++ (i.e. you can inherit from an " "extension class written in C++ using the BPL)." msgstr "" -"Η βιβλιοθήκη Boost Python Library (BPL, https://www.boost.org/libs/python/doc/index." -"html) παρέχει ένα τρόπο για να γίνει αυτό από την C++ (δηλαδή μπορείτε να κληρονομήσετε " -"από μια κλάση επέκτασης γραμμένη σε C++ χρησιμοποιώντας το BPL)." \ No newline at end of file +"Η βιβλιοθήκη Boost Python Library (BPL, https://www.boost.org/libs/python/" +"doc/index.html) παρέχει ένα τρόπο για να γίνει αυτό από την C++ (δηλαδή " +"μπορείτε να κληρονομήσετε από μια κλάση επέκτασης γραμμένη σε C++ " +"χρησιμοποιώντας το BPL)."