dim459 έγραψε:Χμμμ, άλλη μια ερώτηση.
Είναι δυνατόν να αλλάξουμε τη γλώσσα στην οποία αναγράφεται η ημερομηνία, χωρίς από το settings->region & language να αλλάξουμε όλο το formats ; Το σύστημα το έχω πάντα στα αγγλικά, πλην όμως λόγω τοποθεσίας έχει αυτομάτως επιλέξει στο formats την Ελλάδα, με αποτέλεσμα η ημερομηνία να αναγράφεται στα ελληνικά, το οποίο δεν είναι προβληματικό, αλλά είναι ελαφρώς αστείο.
Αν αλλάξω το formats, μου αλλάζει και διάφορα άλλα στοιχεία, όπως αριθμούς νόμισμα και η πιο ανώδυνη αλλαγή που έχω βρει μέχρι στιγμής είναι να επιλέξω την Ιρλανδία.
Να και ένα screenshot :
Αν και όταν διάβασα την ερώτηση αρχικά σκέφτηκα να μην απαντήσω, αλλά άλλαξα γνώμη και το αφήνω στην κρίση σου αν θες να δοκιμάσεις το παρακάτω.
O τρόπος που ακολούθησα μπορεί εύκολα να χαρακτηριστεί βλακώδης, αλλά ήταν "λύση" πάνω στην απελπισία μου.
Τον γράφω τελικά, καλού κακού μπας και εμπνεύσει κανέναν να μας προτείνει κάτι σωστό.
Είμαι σχεδόν σίγουρος πως υπάρχει ορθή λύση, αλλά μου διαφεύγει. Ίσως κάποια ρύθμιση στο dconf;
Aντιμετώπισα το ίδιο πρόβλημα και δεν βρήκα σωστό τρόπο να το διορθώσω, αφού ακολούθησα όλες τις συμβατικές οδηγίες.
Άρχισα μετά τους πειραματισμούς και στο τέλος τα κατάφερα με ανορθόδοξο τρόπο, τον οποίον δεν θα πρότεινα σε κανέναν, οπότε αν θες δοκίμασέ το με ατομική σου ευθύνη.
Αντί να δώσω μία ξερή οδηγία για το πως να εφαρμόσεις την αλλαγή που θέλεις, θα περιγράψω εκτεταμένα τι προσπάθειες έκανα και απέτυχαν και τέλος πως το "κατάφερα".
Μην επιχειρήσετε να εφαρμόσετε την παρακάτω διαδικασία, δεν προτείνεται σε αρχάριους χρήστες ή χρήστες που δεν έχουν ιδιαίτερο πρόβλημα με τις τρέχουσες ρυθμίσεις της γλώσσας. Aν παρόλα αυτά επιχειρήσει κάποιος να ακολουθήσει τα βήματα, όλα τα παρακάτω πρέπει να διαβαστούν προσεκτικά.
Τι συμβαίνει και δημιουργείται αυτή η κατάσταση:
- Επιλέγουμε κατά την εγκατάσταση το σύστημά μας να είναι σε αγγλική γλώσσα.
- Ο εγκαταστάτης ρυθμίζει τα τοπικά formats (διάταξη διευθύνσεων, νομίσματα, διάταξη αριθμών/σύμβολα κλπ) και την γλώσσα του ημερολογίου ανάλογα την τοποθεσία μας, στη συγκεκριμένη περίπτωση την Ελλάδα.
Αυτό έχει ως αποτέλεσμα μετά την εγκατάσταση το σύστημά μας να έχει τα πάντα στα αγγλικά, εκτός από το ημερολόγιο που είναι στα ελληνικά.
Μπορούμε εύκολα να δούμε γιατί, ανοίγοντας το
System Settings > Language Support*, στην καρτέλα Regional Formats βλέπουμε να είναι η ρύθμιση στα ελληνικά.
Αυτό συμπεριλαμβάνει το ημερολόγιο σε ελληνική γλώσσα, την υποδιαστολή στους αριθμούς να είναι κόμμα (,) και το νόμισμα να είναι το Euro.
Αν επιχειρήσουμε να το αλλάξουμε στα αγγλικά (US) τότε ναι μεν αλλάζει η γλώσσα του ημερολογίου στα αγγλικά, αλλά αλλάζουν και τα υπόλοιπα, δηλαδή η υποδιαστολή γίνεται τελεία (.) και το νόμισμα από € γίνεται $. Πράγμα που δεν το θέλουμε.
Στην προσπάθειά μου να αλλάξω μόνο τη γλώσσα του ημερολογίου χωρίς να επηρεαστούν τα υπόλοιπα, το πρώτο που δοκίμασα είναι να κάνω τις απαραίτητες αλλαγές στο αρχείο
/etc/default/locale όπου είναι αποθηκευμένες οι σχετικές ρυθμίσεις. Μπορούμε να δούμε τις τρέχουσες στο αποτέλεσμα της εντολής:
- Κώδικας: Επιλογή όλων
locale
To oποίο σε μία τέτοια κατάσταση είναι αυτό:
- Κώδικας: Επιλογή όλων
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=el_GR.UTF-8
LC_TIME=el_GR.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=el_GR.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=el_GR.UTF-8
LC_NAME=el_GR.UTF-8
LC_ADDRESS=el_GR.UTF-8
LC_TELEPHONE=el_GR.UTF-8
LC_MEASUREMENT=el_GR.UTF-8
LC_IDENTIFICATION=el_GR.UTF-8
LC_ALL=
Παρατηρούμε πως είναι όλα στα ελληνικά, εκτός από τα δύο πρώτα που αφορούν το σύστημα.
Εμάς μας ενδιαφέρει η παράμετρος
LC_TIME που αφορά το format του ημερολογίου.
Η πρώτη δοκιμή λοιπόν ήταν να ανοίξω το αρχείο που locale που ανέφερα παραπάνω και να αλλάξω το
LC_TIME=el_GR.UTF-8 σε
LC_TIME=en_US.UTF-8:
- Κώδικας: Επιλογή όλων
gksudo gedit /etc/default/locale
Aφού αποθήκευσα την αλλαγή, μετά από επανεκκίνηση δεν είδα αποτελέσματα, ακόμα το ημερολόγιο ήταν στα ελληνικά και η επιστροφη της εντολής
locale ήταν ακριβώς ίδια με την πρώτη φορά.
Δοκίμασα να κάνω το ίδιο με εντολές που παρέχει το σύστημα, όπως:
- Κώδικας: Επιλογή όλων
sudo update-locale LC_TIME=en_US.UTF-8
Αλλά πάλι δεν γινόταν κάτι μετά από logout-login ή επανεκκίνηση.
Αυτό που έκανα και τελικά λειτούργησε,
αλλά δεν είναι ο σωστός τρόπος (ούτε ως workaround δεν μπορείς να το χαρακτηρίσεις), είναι να αλλάξω τις ρυθμίσεις στο αρχείο της ελληνικής γλώσσας, αντικαθιστώντας το κομμάτι που αφορά το ημερολόγιο, με το αντίστοιχο στο αρχείο της αγγλικής γλώσσας. Έτσι, ουσιαστικά στην ελληνική γλώσσα όλα είναι ίδια, μόνο που υπάρχει αγγλικό ημερολόγιο. Αφού γίνει η αλλαγή έκανα recompile τα locales και μετά από επανεκκίνηση το Regional Format ήταν πάλι στα ελληνικά, δηλαδή η υποδιαστολή, το νόμισμα, αλλά το ημερολόγιο ήταν σε αγγλική γλώσσα.
ΑΝ θες να κάνεις κάτι τέτοιο (που όπως είπα
δεν το προτείνω), τότε:
- Πρέπει πρώτα να πάρεις backup των αρχείων που θα ανοίξουμε:
- Κώδικας: Επιλογή όλων
sudo cp /usr/share/i18n/locales/en_US /διαδρομή/backup/en_US.backup
sudo cp /usr/share/i18n/locales/el_GR /διαδρομή/backup/el_GR.backup
- Ανοίγεις δύο τερματικά:
- Στο ένα εκτελείς:
- Κώδικας: Επιλογή όλων
gksudo gedit /usr/share/i18n/locales/en_US
Kαι στο άλλο:
- Κώδικας: Επιλογή όλων
gksudo gedit /usr/share/i18n/locales/el_GR
- Θα έχεις έτσι στον gedit δύο καρτέλες όπου στη μία θα είναι το αρχείο της ελληνικής γλώσσας και στην άλλη το αρχείο της αγγλικής, του οποίου το περιεχόμενο (του en_US) θα είναι αυτό:
-
Μορφοποιημένος Κώδικας: Επιλογή όλων
-
escape_char /
comment_char %
% Locale for English locale in the USA
% Contributed by Ulrich Drepper <drepper@redhat.com>, 2000
LC_IDENTIFICATION
title "English locale for the USA"
source "Free Software Foundation, Inc."
address "59 Temple Place - Suite 330, Boston, MA 02111-1307, USA"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
fax ""
language "English"
territory "USA"
revision "1.0"
date "2000-06-24"
%
category "en_US:2000";LC_IDENTIFICATION
category "en_US:2000";LC_CTYPE
category "en_US:2000";LC_COLLATE
category "en_US:2000";LC_TIME
category "en_US:2000";LC_NUMERIC
category "en_US:2000";LC_MONETARY
category "en_US:2000";LC_MESSAGES
category "en_US:2000";LC_PAPER
category "en_US:2000";LC_NAME
category "en_US:2000";LC_ADDRESS
category "en_US:2000";LC_TELEPHONE
END LC_IDENTIFICATION
LC_CTYPE
copy "en_GB"
END LC_CTYPE
LC_COLLATE
% Copy the template from ISO/IEC 14651
copy "iso14651_t1"
END LC_COLLATE
LC_MONETARY
int_curr_symbol "<U0055><U0053><U0044><U0020>"
currency_symbol "<U0024>"
mon_decimal_point "<U002E>"
mon_thousands_sep "<U002C>"
mon_grouping 3;3
positive_sign ""
negative_sign "<U002D>"
int_frac_digits 2
frac_digits 2
p_cs_precedes 1
int_p_sep_by_space 1
p_sep_by_space 0
n_cs_precedes 1
int_n_sep_by_space 1
n_sep_by_space 0
p_sign_posn 1
n_sign_posn 1
%
END LC_MONETARY
LC_NUMERIC
decimal_point "<U002E>"
thousands_sep "<U002C>"
grouping 3;3
END LC_NUMERIC
LC_TIME
abday "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/
"<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
"<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
"<U0053><U0061><U0074>"
day "<U0053><U0075><U006E><U0064><U0061><U0079>";/
"<U004D><U006F><U006E><U0064><U0061><U0079>";/
"<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
"<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
"<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
"<U0046><U0072><U0069><U0064><U0061><U0079>";/
"<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
week 7;19971130;7
first_weekday 1
first_workday 2
abmon "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
"<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
"<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
"<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
"<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
"<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
mon "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
"<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
"<U004D><U0061><U0072><U0063><U0068>";/
"<U0041><U0070><U0072><U0069><U006C>";/
"<U004D><U0061><U0079>";/
"<U004A><U0075><U006E><U0065>";/
"<U004A><U0075><U006C><U0079>";/
"<U0041><U0075><U0067><U0075><U0073><U0074>";/
"<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
"<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
"<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
"<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
% Appropriate date and time representation (%c)
% "%a %d %b %Y %r %Z"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0072><U0020><U0025><U005A>"
%
% Appropriate date representation (%x)
% "%m/%d/%Y"
d_fmt "<U0025><U006D><U002F><U0025><U0064><U002F><U0025><U0059>"
%
% Appropriate time representation (%X)
% "%r"
t_fmt "<U0025><U0072>"
%
% Appropriate AM/PM time representation (%r)
% "%I:%M:%S %p"
t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
<U0025><U0070>"
%
% Strings for AM/PM
%
am_pm "<U0041><U004D>";"<U0050><U004D>"
%
% Appropriate date representation (date(1)) "%a %b %e %H:%M:%S %Z %Y"
date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
<U0025><U005A><U0020><U0025><U0059>"
END LC_TIME
LC_MESSAGES
yesexpr "<U005E><U005B><U0079><U0059><U005D><U002E><U002A>"
noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
yesstr "<U0059><U0065><U0073>"
nostr "<U004E><U006F>"
END LC_MESSAGES
LC_PAPER
height 279
width 216
END LC_PAPER
LC_NAME
name_fmt "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
<U0025><U006D><U0025><U0074><U0025><U0066>"
name_miss "<U004D><U0069><U0073><U0073><U002E>"
name_mr "<U004D><U0072><U002E>"
name_mrs "<U004D><U0072><U0073><U002E>"
name_ms "<U004D><U0073><U002E>"
END LC_NAME
LC_ADDRESS
postal_fmt "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0068>/
<U0020><U0025><U0073><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
<U004E><U0025><U0054><U002C><U0020><U0025><U0053><U0020><U0025><U007A><U0025>/
<U004E><U0025><U0063><U0025><U004E>"
country_name "<U0055><U0053><U0041>"
country_post "<U0055><U0053><U0041>"
country_ab2 "<U0055><U0053>"
country_ab3 "<U0055><U0053><U0041>"
country_num 840
country_car "<U0055><U0053><U0041>"
country_isbn 0
lang_name "<U0045><U006E><U0067><U006C><U0069><U0073><U0068>"
lang_ab "<U0065><U006E>"
lang_term "<U0065><U006E><U0067>"
lang_lib "<U0065><U006E><U0067>"
END LC_ADDRESS
LC_TELEPHONE
tel_int_fmt "<U002B><U0025><U0063><U0020><U0028><U0025><U0061><U0029>/
<U0020><U0025><U006C>"
tel_dom_fmt "<U0028><U0025><U0061><U0029><U0020><U0025><U006C>"
int_select "<U0031><U0031>"
int_prefix "<U0031>"
END LC_TELEPHONE
LC_MEASUREMENT
measurement 2
END LC_MEASUREMENT
- Aντιγράφεις από εδώ το κομμάτι που αφορά το LC_TIME, είναι αυτό που βρίσκεται μεταξύ των LC_TIME ... END LC_TIME:
-
Μορφοποιημένος Κώδικας: Επιλογή όλων
-
LC_TIME
abday "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/
"<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
"<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
"<U0053><U0061><U0074>"
day "<U0053><U0075><U006E><U0064><U0061><U0079>";/
"<U004D><U006F><U006E><U0064><U0061><U0079>";/
"<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
"<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
"<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
"<U0046><U0072><U0069><U0064><U0061><U0079>";/
"<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
week 7;19971130;7
first_weekday 1
first_workday 2
abmon "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
"<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
"<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
"<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
"<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
"<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
mon "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
"<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
"<U004D><U0061><U0072><U0063><U0068>";/
"<U0041><U0070><U0072><U0069><U006C>";/
"<U004D><U0061><U0079>";/
"<U004A><U0075><U006E><U0065>";/
"<U004A><U0075><U006C><U0079>";/
"<U0041><U0075><U0067><U0075><U0073><U0074>";/
"<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
"<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
"<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
"<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
% Appropriate date and time representation (%c)
% "%a %d %b %Y %r %Z"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0072><U0020><U0025><U005A>"
%
% Appropriate date representation (%x)
% "%m/%d/%Y"
d_fmt "<U0025><U006D><U002F><U0025><U0064><U002F><U0025><U0059>"
%
% Appropriate time representation (%X)
% "%r"
t_fmt "<U0025><U0072>"
%
% Appropriate AM/PM time representation (%r)
% "%I:%M:%S %p"
t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
<U0025><U0070>"
%
% Strings for AM/PM
%
am_pm "<U0041><U004D>";"<U0050><U004D>"
%
% Appropriate date representation (date(1)) "%a %b %e %H:%M:%S %Z %Y"
date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
<U0025><U005A><U0020><U0025><U0059>"
END LC_TIME
- Πας μετά στην καρτέλα για τα ελληνικά (el_GR) και:
- Στο κομμάτι:
-
Μορφοποιημένος Κώδικας: Επιλογή όλων
-
category "el_GR:2000";LC_IDENTIFICATION
category "el_GR:2000";LC_CTYPE
category "el_GR:2000";LC_COLLATE
category "el_GR:2000";LC_TIME
category "el_GR:2000";LC_NUMERIC
category "el_GR:2000";LC_MONETARY
category "el_GR:2000";LC_MESSAGES
category "el_GR:2000";LC_PAPER
category "el_GR:2000";LC_NAME
category "el_GR:2000";LC_ADDRESS
category "el_GR:2000";LC_TELEPHONE
Aλλάζεις το:
- Κώδικας: Επιλογή όλων
category "el_GR:2000";LC_TIME
Σε:
- Κώδικας: Επιλογή όλων
category "en_US:2000";LC_TIME
- Kαι στη συνέχεια βρίσκεις το αντίστοιχο κομμάτι του LC_TIME ... END LC_TIME και το αντικαθιστάς όλο με αυτό που αντέγραψες από το αγγλικό (ουσιαστικά το σβήνεις και κάνεις επικόλληση).
- Αποθηκεύεις τις αλλαγές στο ελληνικό (στο αγγλικό δεν έγινε καμία), κλείνεις τo gedit και κάνεις compile το νέο αρχείο με την εντολή:
- Κώδικας: Επιλογή όλων
sudo locale-gen
- Ρυθμίζεις από το Language Support το Regional Format να είναι στα ελληνικά (Αpply System Wide).
- Τέλος, μετά από επανεκκίνηση είχα το επιθυμητό αποτέλεσμα:
Όπως καταλαβαίνεις δεν αξίζει τον κόπο όλο αυτό. Ρισκάρεις τη σταθερότητα του συστήματος αν γίνει λάθος.
Το GNOME-Shell δεν διαχειρίζεται καλά τέτοια σφάλματα.
Για πολλοστή φορά τονίζω πως δεν είναι ορθός τρόπος επίλυσης αυτής της κατάστασης και πως μάλλον θα υπάρχει κάτι που θα είναι.
Μπορείς με παρόμοιο τρόπο να φτιάξεις ένα δικό σου locale - greeklish
αντί να πειράξεις το ελληνικό.
Ή μπορείς μέσα στο αγγλικό να αλλάξεις τον χαρακτήρα της υποδιαστολής, το νόμισμα, τον χαρακτήρα που χωρίζει τις χιλιάδες και γενικά ότι θες, υπάρχουν άπειροι συνδιασμοί.
Πληροφορίες για το Locale Συγνώμη για το μακροσκελές της απάντησης.
*Aν δεν υπάρχει το Language Support στο System Settings, γίνεται εγκατάσταση με:
- Κώδικας: Επιλογή όλων
sudo apt-get install gnome-language-selector