Ερώτηση για μετάφραση ετικέτας σε κουμπί

Ακαδημαϊκά ρωτώντας, αυτό το κουμπί που γράφει “Log in”

1691076640694

(είναι από το lightdm-gtk-greeter)

πως το βλέπεις γραμμένο σε κώδικα; combobox; QButton; Κάτι άλλο;
ευχαριστώ.

Combobox για τους χρηστες, ενα passwordbox για τον κωδικο και gtkbutton για το κουμπι μιας και ο greeter ειναι ο lightdm-gtk-greeter. To theme μπορει να φερνει σε qt αλλα αυτο ειναι αλλο θεμα.

1 «Μου αρέσει»

lightdm-gtk-greeter.c :

...
static void
set_login_button_label (LightDMGreeter *ldm, const gchar *username)
{
    LightDMUser *user;
    gboolean logged_in = FALSE;

    user = lightdm_user_list_get_user_by_name (lightdm_user_list_get_instance (), username);
    if (user)
        logged_in = lightdm_user_get_logged_in (user);
    if (logged_in)
        gtk_button_set_label (login_button, _("Unlock"));
    else
        gtk_button_set_label (login_button, _("Log In"));
    /* and disable the session and language widgets */
    gtk_widget_set_sensitive (GTK_WIDGET (session_menuitem), !logged_in);
    gtk_widget_set_sensitive (GTK_WIDGET (language_menuitem), !logged_in);
}
...

lightdm-gtk-greeter.glade :

...
<object class="GtkButton" id="login_button">
                    <property name="label" translatable="yes">Log In</property>
                    <property name="name">login_button</property>
                    <property name="visible">True</property>
                    <property name="can_focus">True</property>
                    <property name="receives_default">False</property>
                    <signal name="clicked" handler="login_cb" swapped="no"/>
 </object>
...
1 «Μου αρέσει»

Ευχαριστώ ρε φωστήρες! :grinning:

@Maras που το κατάλαβες ρε γατόνι ότι αυτό ακριβώς ψάχνω; :star_struck:

Μήπως ξέρεις και τη διαδρομή του;

1 «Μου αρέσει»

Σου έδωσα τα filenames ψάξε στον πηγιαίο, είναι μέσα στον src φάκελο :

1 «Μου αρέσει»

Στο σύστημά μου εννοώ. Δεν το βρίσκω πουθενά αυτό το αρχείο. Απορώ πως φαίνεται το παραθυράκι.

Αυτά τα αρχεία είναι στον πηγιαίο, γίνονται compile και βγαίνουν τα εκτελέσιμα της εφαρμογής. Εάν τώρα εσύ θέλεις να αλλάξεις το όνομα του κουμπιού ή οτιδήποτε άλλο σε τέτοιο επίπεδο, θα πρέπει να αλλάξεις τον πηγιαίο κώδικα, μετά να δημιουργήσεις ένα πακέτο αντίστοιχο για το σύστημά σου και στο τέλος να το εγκαταστήσεις στην θέση του original.

1 «Μου αρέσει»

Όταν λες “να δημιουργήσεις ένα πακέτο αντίστοιχο για το σύστημά σου”, εννοείς να φτιάξω ένα deb;

Ναι, εάν βασίζεται στο Debian.

Το συγκεκριμένο αποθετήριο δεν έχει την υποδομή για να φτιάξεις deb εύκολα.

Θα πρέπει να το κάνεις χερατα. Και μετά να πειράξεις αρχεία ρυθμίσεων.

Αλλά η πλέον σημαντική ερώτηση είναι : Για ποίο λόγο;

Θα σου πω αλλά μη βρίσεις :grin:

Θέλω εκεί που λέει “Log in” να λέει “Είσοδος” (ή κάτι άλλο τέλος πάντων)

1 «Μου αρέσει»

Κανονικά θα έπρεπε. Το σημαντικό όταν ρωτάμε είναι να ξεκινάμε με το γιατί αντί για το πως :wink:

Ελπίζω το παρακάτω σημείωμα να βοηθήσει

Διαφωνώ στο ότι πρέπει να λέμε πρώτα το γιατί και μετά το πως. Ως γενική γνώση ή πληροφορία, πάντα έχει αξία το κάθε “πως”. Τα “γιατί” είναι το προσωπικό θέμα του καθένα, όπου αναγκαστικά πρέπει να εκθέσει το τι θέλει να κάνει. Φαντάσου να κρίνει ο κάθε χρήστης το κίνητρο για να αποφασίσει να απαντήσει ή για το πως θα απαντήσει.
Βεβαίως είναι δικαίωμά του να θέλει να ξέρει το κίνητρο του άλλου και μπορεί να είναι και βασική αρχή στον τρόπο σκέψης του, να πρέπει να ξέρει τι θέλει να κάνει ο άλλος πριν τοποθετηθεί σε ένα τεχνικό θέμα. Ηθικό είναι κιόλας, αν θες. Αλλά δεν είναι λειτου ργικό νομίζω.

Για τα αρχεία po και mo να πω επίσης ότι μπορεί ο κάθε χρήστης να αλλάξει το κείμενο στις εφαρμογρε´ς που βλέπει είτε στα πεδία εισόδου κειμένου (τις γκρι προτροπές που υπάεχουν), είτε στα popup tooltips, είτε στις επικεφαλίδες (παραθύρων, καρτελών).
Αρκεί να υπάρχει η φράση που θέλει να αλλάξει, σε κάποιο αρχείο mo στο φάκελο /usr/share/locale/el/LC_MESSAGES .
Τα αρχεία mo δεν είναι επεξεργάσιμα γιατί είναι δυαδικά. Τα μετατρέπεουμε σε po για να γίνουν επεξεργάσιμα. Αυτό γίνεται με την εντολή

msgunfmt /usr/share/locale/el/LC_MESSAGES/ ΟΝΟΜΑ_ΑΡΧΕΙΟΥ.mo -o ΟΝΟΜΑ_ΑΡΧΕΙΟΥ.po

Αυτό παράγει το αρχείο po στο φάκελο που τρέξαμε την εντολή από το τερματικό. Επεξεργαζόμαστε το αρχείο με οποιονδήποτε Επεξεργαστή κειμένου και το ξανακάνουμε mo.

msgfmt -c -o ΟΝΟΜΑ_ΑΡΧΕΙΟΥ.mo ΟΝΟΜΑ_ΑΡΧΕΙΟΥ.po

Τέλος βάζουμε στη θέση το νέο αρχείο mo. Δηλαδή αντικαθιστπτούμε το παλιό που βρίσκεται στο φάκελο /usr/share/locale/el/LC_MESSAGES
Και πλέον έχεις το κείμενο όπως το επιθυμείς.