C, GTK+2: Crossplatform Τρίλιζα (Tic-Tac-Toe Overkill)

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Re: C, GTK+2: Crossplatform Τρίλιζα (Tic-Tac-Toe Overkill)

Δημοσίευσηαπό migf1 » 08 Φεβ 2012, 12:43

Καλημέρα παιδιά,

καταρχήν πολλά ευχαριστώ για το ενδιαφέρον που δείχνετε.

Σίμο, στην έκδοση 1.00 δεν έχει internationalization, για αυτό έχει 2 ξεχωριστά glade files. Η δοκιμαστική έκδοση 1.03a είναι αυτή που χρησιμοποιεί gettext και άρα έχει μονάχα ένα glade αρχείο (εχω βάλει link στο αρχικό πόστ).

Σάββα, είσαι αρχηγός... χίλια ευχαριστώ για το makefile!

Κώστα, μιλάμε για την δοκιμαστική έκδοση 1.03a και όχι την 1.00 (η 1.00 όντως δεν έχει φάκελο lang/).

sokoban4ever, αν σου πω ότι έχω καταλάβει ακριβώς τις προτεραιότητες των environment variables αλλά και του gettext, θα πω ψέμματα! :lol: Σε Windows όλες οι gtk+ related εφαρμογές (π.χ. Glade, το ίδιο το gtk+, κλπ) έχουν φάκελο LC_MESSAGES/ μέσα στον κεντρικό φάκελο των γλωσσών τους (συνήθως είναι ο: share/locale/ ) οπότε έτσι το έκανα κι εγώ.

Μέσα στον κώδικα δεν χρησιμοποιώ καμιά μεταβλητή περιβάλλοντος, το μόνο που κάνω είναι να καλώ...

Κώδικας: Επιλογή όλων

setlocale( LC_ALL, "" );

ώστε να τεθεί το πρόγραμμα στην τρέχουσα εντοπιότητα του περιβάλλοντος στο οποίο τρέχει (και τώρα που το κοιτάω, βλέπω πως έχω παραλείψει να ελέγχω περίπτωση αποτυχίας της setlocale() ). Την κλήση αυτή την κάνω στην συνάρτηση: util_locale_init_gettext() μαζί με τις υπόλοιπες ρουτίνες αρχικοποίησης του gettetxt()... Δεν ξέρω μήπως πρέπει να γίνονται αυτά σε επίπεδο main() και όχι μέσα σε συνάρτηση.

Όσο για την διαδικασία διεθνοποίησης των κειμένων του προγράμματος, ακολούθησα την εξής διαδικασία:

1. Προσθήκη των ρουτινών αρχικοποίησης του gettext, στη συνάρτηση util_init_gettext() καθώς και κλήση της setlocale() που εξηγώ παραπάνω...

Κώδικας: Επιλογή όλων

...
#include <locale.h>
...
#define GETTEXT_PACKAGE "gtk_tic"
#define LOCALEDIR "lang"
#include <glib/gi18n.h>
...
void util_locale_init_gettext( void )
{
setlocale( LC_ALL, "" );
bindtextdomain( GETTEXT_PACKAGE, LOCALEDIR );
bind_textdomain_codeset( GETTEXT_PACKAGE, "UTF-8" );
textdomain( GETTEXT_PACKAGE );

return;
}


2. Τοποθέτηση όλων των συμβολοσειρών του κώδικα που θέλω να μεταφραστούν στην gettext(), βασικά στο macro _() που είναι το ίδιο πράγμα. Οπότε για παράδειγμα, όπου υπάρχει...

Κώδικας: Επιλογή όλων

"this is a string"

αλλάζει σε...

Κώδικας: Επιλογή όλων

_("this is a string")


3. Χρήση της xgettext για δημιουργία αρχείου gtk_tic.pot που περιέχει τις προς μετάφραση συμβολοσειρές, με την εντολή...
Κώδικας: Επιλογή όλων

xgettext -d gtk_tic -k_ --copyright-holder=migf1 --package-name=gtk_tic --msgid-bugs-address=mig_f1@hotmail.com -s -o gtk_tic.pot gtk_tic.c gui/gtk_tic.glade


4. Αρχικοποίηση του αρχείου gtk_tic.pot και αποθήκευσή του ως el.pot, με την εντολή...
Κώδικας: Επιλογή όλων

msginit -l el -o el.po -i gtk_tic.pot


5. Μετάφραση των συμβολοσειρών και δημιουργία binary αρχείου el.mo με το πρόγραμμα poedit.

6. Δημιουργία φακέλου: lang/el/LC_MESSAGES/ και μεταφορά του el.mo μετονομασμένο σε gtk_tic.mo.

Θεωρητικά αυτά είναι τα βήματα που χρειάζονται. Ίσως να μου έχει ξεφύγει κάτι και να μην το γνωρίζω. Από εκεί και πέρα, το πως ακριβώς επηρεάζεται η εντοπιότητα από τις μεταβλητές περιβάλλοντος, το εξηγεί κάπου καθώς και τις προτεραιότητές τους (δεν θυμάμαι που) αλλά θεωρητικά πάλι αυτά δεν χρειάζεται να τα γνωρίζει το πρόγραμμα... αυτά (στη θεωρία πάντα) είναι ευθύνη του χρήστη του προγράμματος. Η αλήθεια είναι πως τα έχω διαβάσει 2-3 φορές όταν χρειάστηκε να κάνω ρυθμίσει, αλλά μετά γίνονται delete από τη μνήμη μου... ακούσια εννοώ, δεν τα ξεχνάω επίτηδες :lol:... δεν είναι και ο πιο intuitive τρόπος λειτουργίας της εντοπιότητας με τόσες μεταβλητές.

Αν βρείτε λάθη στην παραπάνω διαδικασία, παρακαλώ ενημερώστε με να τα φτιάξω.

Σε ότι αφορά το git, κάντε λίγη υπομονή αν θέλετε να τελειώσω την Doxygen τεκμηρίωση & σχόλια, και να ανεβάσουμε εκείνη.
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: C, GTK+2: Crossplatform Τρίλιζα (Tic-Tac-Toe Overkill)

Δημοσίευσηαπό medigeek » 08 Φεβ 2012, 12:56

migf1 έγραψε:
Σάββα, είσαι αρχηγός... χίλια ευχαριστώ για το makefile!

Υ.Γ. Το makefile είναι υπό GPLv3. :P Για να το προσθέσεις μαζί με το πρόγραμμα σου χρειάζεται (νομίζω :P ) GPL-compatible license: MIT, BSD, GPL
Οι δύο πρώτες μοιάζουν με τη δική σου "άδεια χρήσης" αν και συστήνω την GPL-3. Επιτρέπει την αναδιανομή. :)
Άμα γουστάρεις ελληνικά, υπάρχει και η αντίστοιχη (με λίγες διαφορές) ευρωπαϊκή, η EUPL: http://joinup.ec.europa.eu/software/pag ... cence-eupl

GPLv3:
Κώδικας: Επιλογή όλων
/*
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

Re: C, GTK+2: Crossplatform Τρίλιζα (Tic-Tac-Toe Overkill)

Δημοσίευσηαπό migf1 » 08 Φεβ 2012, 13:41

Ευχαριστώ Σάββα.

Η αλήθεια είναι όπως έχω ελάχιστο (έως μηδενικό μπορώ να σου πω ενδιαφέρον) για την άδεια χρήσης της τρίλιζας. Υπό την έννοια πως όλα αυτά με τις άδειες και τις τυπικότητες τα θεωρώ υπερβολικά για προγραμματάκια βεληνεκούς τρίλιζας, κλπ... δηλαδή προγράμματα της πλάκας επί της ουσίας. Για αυτό και με βλέπεις τόσο αδιάφορο και για τις άδειες αλλά και για το git ;)

Συγκεκριμένα για την τρίλιζα, ειλικρινά δεν με ενδιαφέρει καθόλου πως θα την χρησιμοποιήσει όποιος τη χρησιμοποιήσει. Ακόμα και να την πουλήσει, με γεια του και χαρά του, γιατί θα πρέπει να είναι πραγματικά πολύ μάγκας αν καταφέρει να αποσπάσει λεφτά για τρίλιζα :lol:

Το μόνο που θεωρώ απαραίτητο είναι η αποποίηση ευθυνών ;)
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: C, GTK+2: Crossplatform Τρίλιζα (Tic-Tac-Toe Overkill)

Δημοσίευσηαπό migf1 » 08 Φεβ 2012, 15:31

Λοιπόν, όλες οι σχετικές πληροφορίες για προτεραιότητες κλπ βρίσκονται εδώ:
http://linux.die.net/man/7/locale

Καθώς επίσης και για τη χρήση της setlocale()...
http://linux.die.net/man/3/setlocale

Άντε τώρα να τα θυμάται κανείς όλα αυτά :lol:

Επίσης, η μεταβλητή περιβάλλοντος LANGUAGE χρησιμοποιείται τελικά μονάχα από το API της gettext() και σε αντίθεση με τις μεταβλήτές περιβάλλοντος του Linux, που χρησιμοποιούν τον : (άνω-κάτω τελεία) ως διαχωριστικό χαρακτήρα πολλαπλών τιμών, η LANGUAGE χρησιμοποιεί τον . (τελεία). Παρεμπιπτόντως, τα Windows χρησιμοποιούν τον ; (ελληνικό ερωτηματικό).

Έτσι εξηγείται η πρόταση του Σάββα σε προηγούμενο πόστ για ορισμό της LANGUAGE ως...

Κώδικας: Επιλογή όλων

LANGUAGE=el ./gtk_tic


Βέβαια, προσωπικά έχω απορία στο γιατί χρειάζεται να μπει και το /gtk_tic σtην LANGUAGE, καθώς επίσης και γιατί χρειάζεται και η LANGUAGE και δεν αρκούν οι ήδη υπάρχουσες LC_* και LANG.
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: C, GTK+2: Crossplatform Τρίλιζα (Tic-Tac-Toe Overkill)

Δημοσίευσηαπό Star_Light » 08 Φεβ 2012, 17:24

migf1 έγραψε:Ευχαριστώ Σάββα.

Η αλήθεια είναι όπως έχω ελάχιστο (έως μηδενικό μπορώ να σου πω ενδιαφέρον) για την άδεια χρήσης της τρίλιζας. Υπό την έννοια πως όλα αυτά με τις άδειες και τις τυπικότητες τα θεωρώ υπερβολικά για προγραμματάκια βεληνεκούς τρίλιζας, κλπ... δηλαδή προγράμματα της πλάκας επί της ουσίας. Για αυτό και με βλέπεις τόσο αδιάφορο και για τις άδειες αλλά και για το git ;)

Συγκεκριμένα για την τρίλιζα, ειλικρινά δεν με ενδιαφέρει καθόλου πως θα την χρησιμοποιήσει όποιος τη χρησιμοποιήσει. Ακόμα και να την πουλήσει, με γεια του και χαρά του, γιατί θα πρέπει να είναι πραγματικά πολύ μάγκας αν καταφέρει να αποσπάσει λεφτά για τρίλιζα :lol:

Το μόνο που θεωρώ απαραίτητο είναι η αποποίηση ευθυνών ;)


aahaahhahahahahahahahaha

αν θεωρειται και η τριλιζα προγραμμα της πλάκας
ή γενικα skills της πλάκας ..... :S

Δεν μπορει ρε συ. Με τοσες γνωσεις και τοσα προγραμματα ανετα θα εβγαζες λεφτα
αμα το κυνηγουσες απλα δεν το κανεις για αυτο. Απο την αλλη να παρω εγω την τριλιζα
και να την πουλησω ακομη και αν εσυ το εχεις αφησει ανοιχτο σαν αδεια... δεν θα μου πηγαινε
αλλα δεν το πιστευω αυτο που λες με τιποτα.
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: C, GTK+2: Crossplatform Τρίλιζα (Tic-Tac-Toe Overkill)

Δημοσίευσηαπό medigeek » 08 Φεβ 2012, 17:48

Να υπενθυμίσω (νομίζω κάποιος το ανέφερε πιο πριν) ότι στο 1.03a ( http://www.box.com/s/ab162jsl07akhokasjil ) χρειάζεται κάπου στην αρχή του αρχείου gtk_tic.c να προσθέσετε:
Κώδικας: Επιλογή όλων
#include <locale.h>


Διόρθωσα λίγο το Makefile, είχε ένα μικρό προβληματάκι με το .pot αρχείο: https://gist.github.com/1766764

migf1 έγραψε:
Βέβαια, προσωπικά έχω απορία στο γιατί χρειάζεται να μπει και το /gtk_tic σtην LANGUAGE, καθώς επίσης και γιατί χρειάζεται και η LANGUAGE και δεν αρκούν οι ήδη υπάρχουσες LC_* και LANG.


Αυτό είναι το locale μου:
Κώδικας: Επιλογή όλων
$ locale
LANG=en_GB.UTF-8
LANGUAGE=en_US:en
LC_CTYPE=en_US.UTF-8
LC_NUMERIC="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_COLLATE=en_US.UTF-8
LC_MONETARY="en_GB.UTF-8"
LC_MESSAGES=en_US.UTF-8
LC_PAPER="en_GB.UTF-8"
LC_NAME="en_GB.UTF-8"
LC_ADDRESS="en_GB.UTF-8"
LC_TELEPHONE="en_GB.UTF-8"
LC_MEASUREMENT="en_GB.UTF-8"
LC_IDENTIFICATION="en_GB.UTF-8"
LC_ALL=

Το LANGUAGE δίνει προτεραιότητα. Το gettext θα ψάξει πρώτα για την τιμή που έχει στο LANGUAGE:
http://www.gnu.org/software/gettext/man ... E-variable
«Not all programs have translations for all languages. By default, an English message is shown in place of a nonexistent translation. If you understand other languages, you can set up a priority list of languages. This is done through a different environment variable, called LANGUAGE. GNU gettext gives preference to LANGUAGE over LC_ALL and LANG for the purpose of message handling, but you still need to have LANG (or LC_ALL) set to the primary language»

Το LANGUAGE έχει ήδη τεθεί και έχει τιμή "en_US:en". Το gettext υπολογίζω πως θα ψάξει πρώτα για τα αγγλικά.

strace με LANGUAGE=el_GR.UTF-8:
Κώδικας: Επιλογή όλων
open("/usr/lib/locale/locale-archive", O_RDONLY) = 3
open("/usr/share/locale/locale.alias", O_RDONLY) = 3
open("/home/forger/Desktop/gtk_tic_103a/lang/el_GR.UTF-8/LC_MESSAGES/gtk_tic.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/home/forger/Desktop/gtk_tic_103a/lang/el_GR.utf8/LC_MESSAGES/gtk_tic.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/home/forger/Desktop/gtk_tic_103a/lang/el_GR/LC_MESSAGES/gtk_tic.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/home/forger/Desktop/gtk_tic_103a/lang/el.UTF-8/LC_MESSAGES/gtk_tic.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/home/forger/Desktop/gtk_tic_103a/lang/el.utf8/LC_MESSAGES/gtk_tic.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/home/forger/Desktop/gtk_tic_103a/lang/el/LC_MESSAGES/gtk_tic.mo", O_RDONLY) = 3
open("/usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache", O_RDONLY) = 3
open("/usr/share/locale/el_GR.UTF-8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/el_GR.utf8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/el_GR/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/el.UTF-8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/el.utf8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/el/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/el_GR.UTF-8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/el_GR.utf8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/el_GR/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/el.UTF-8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/el.utf8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/el/LC_MESSAGES/gtk20.mo", O_RDONLY) = 3
open("/usr/share/locale/el_GR.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/el_GR.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/el_GR/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/el.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/el.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/el/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/el_GR.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/el_GR.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/el_GR/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/el.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/el.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/el/LC_MESSAGES/libc.mo", O_RDONLY) = 3


Χωρίς LANGUAGE, με LANG=el_GR.UTF-8 και LC_ALL=el_GR.UTF-8:
Κώδικας: Επιλογή όλων
open("/usr/lib/locale/locale-archive", O_RDONLY) = 3
open("/usr/share/locale/locale.alias", O_RDONLY) = 3
open("/home/forger/Desktop/gtk_tic_103a/lang/en_US/LC_MESSAGES/gtk_tic.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/home/forger/Desktop/gtk_tic_103a/lang/en/LC_MESSAGES/gtk_tic.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/en_US/LC_MESSAGES/gtk_tic.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/en/LC_MESSAGES/gtk_tic.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)


Στο δεύτερο φαίνεται πως ψάχνει αμέσως για en_US, όπως είναι η τιμή στο locale.
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

Re: C, GTK+2: Crossplatform Τρίλιζα (Tic-Tac-Toe Overkill)

Δημοσίευσηαπό migf1 » 09 Φεβ 2012, 00:01

Ευχαριστώ για την ανάλυση!

Το /gtk_tic όμως γιατί πρέπει να μπει στην LANGUAGE;
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: C, GTK+2: Crossplatform Τρίλιζα (Tic-Tac-Toe Overkill)

Δημοσίευσηαπό sokoban4ever » 09 Φεβ 2012, 00:33

@medigeekΩραίως, Read the source Luke ;)
τελικά υπήρχε κάποια προτεραιότητα.., όπως υποψιαζόμουν :)
Θέλουμε και μπορούμε να έχουμε μια καλύτερη ζωή και όσο θα ζούμε θα προσπαθούμε να την αποκτήσουμε ακόμα και αν πεθάνουμε προσπαθώντας, και αν κάποια στιγμή λιγίσουμε έχουμε το επίπεδο να πούμε κουράστηκα λίγο να ,να ξαποστάσουμε , ώστε να συνεχίσουμε πάλι δυνατοί ξανά.

Μήνυμα με αγάπη και αληλλεγγύη σε όλους τους ανθρώπους από όλους τους λαούς , ιδίως του Ελληνικού.
Άβαταρ μέλους
sokoban4ever
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 2331
Εγγραφή: 13 Φεβ 2009, 02:22
Εκτύπωση

Re: C, GTK+2: Crossplatform Τρίλιζα (Tic-Tac-Toe Overkill)

Δημοσίευσηαπό medigeek » 09 Φεβ 2012, 00:34

migf1 έγραψε:
Το /gtk_tic όμως γιατί πρέπει να μπει στην LANGUAGE;

Κώδικας: Επιλογή όλων
LANGUAGE=el ./gtk_tic

Δεν μπαίνει στο LANGUAGE, το LANGUAGE έχει τιμή "el" :)
Απλά εκτελώ το local gtk_tic (./gtk_tic = Εκτέλεσε το gtk_tic στον τρέχων φάκελο) αλλάζοντας την τιμή του LANGUAGE locally, δλδ. μόνο για το πρόγραμμα gtk_tic.
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

Re: C, GTK+2: Crossplatform Τρίλιζα (Tic-Tac-Toe Overkill)

Δημοσίευσηαπό migf1 » 09 Φεβ 2012, 00:41

Ααααα :)
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

ΠροηγούμενηΕπόμενο

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι