From dea745fcf94778c668ab63a6c4c9d2018d6db5d2 Mon Sep 17 00:00:00 2001 From: Maximiliano Sandoval Date: Mon, 1 Jun 2026 14:05:20 +0200 Subject: [PATCH] add Greek translations ExtJs comes with Greek translations using the code el_GR, but the only Greek code as per [ISO 639] is "el". Additionally, gettext [1] also uses "el" as the only language code for Greek, but calls it "Greek, Modern (1453-)". We make a copy of the original files for el_GR and replace s/el_GR/el/. [ISO 639] https://en.wikipedia.org/wiki/ISO_639 [1] https://www.gnu.org/software/gettext/manual/html_node/Usual-Language-Codes.html Signed-off-by: Maximiliano Sandoval Link: https://lore.proxmox.com/20260601120525.285737-2-m.sandoval@proxmox.com --- debian/rules | 4 +- extjs/build/classic/locale/locale-el-debug.js | 268 ++++++++++++++++++ extjs/build/classic/locale/locale-el.js | 1 + 3 files changed, 271 insertions(+), 2 deletions(-) create mode 100644 extjs/build/classic/locale/locale-el-debug.js create mode 100644 extjs/build/classic/locale/locale-el.js diff --git a/debian/rules b/debian/rules index b0dd68f9..77636255 100755 --- a/debian/rules +++ b/debian/rules @@ -9,9 +9,9 @@ override_dh_auto_test: dh_auto_test - # check if all languages are still shipped, as e.g. Georgian (ka) is manually added by us + # check if all languages are still shipped, as e.g. Georgian (ka) and Greek (el) are manually added by us set -e; for l in \ - af bg ca cs da de el_GR en en_AU en_GB es et fa fi fr fr_CA gr he hr hu id it ja ka ko lt \ + af bg ca cs da de el el_GR en en_AU en_GB es et fa fi fr fr_CA gr he hr hu id it ja ka ko lt \ lv mk nl no_NB no_NN pl pt pt_BR pt_PT ro ru sk sl sr sr_RS sv_SE th tr ukr vn zh_CN zh_TW; do \ echo "checking for '$$l' locale"; \ test -e "extjs/build/classic/locale/locale-$$l.js"; \ diff --git a/extjs/build/classic/locale/locale-el-debug.js b/extjs/build/classic/locale/locale-el-debug.js new file mode 100644 index 00000000..a9e0bbda --- /dev/null +++ b/extjs/build/classic/locale/locale-el-debug.js @@ -0,0 +1,268 @@ +/** + * Greek translation + * By thesilentman (utf8 encoding) + * 27 Apr 2008 + * + * Changes since previous (second) Version: + * + added Ext.Date.shortMonthNames + * + added Ext.Date.getShortMonthName + * + added Ext.Date.monthNumbers + * + added Ext.grid.feature.Grouping + */ +Ext.onReady(function() { + + if (Ext.Date) { + Ext.Date.monthNames = ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάιος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"]; + + Ext.Date.shortMonthNames = ["Ιαν", "Φεβ", "Μάρ", "Απρ", "Μάι", "Ιού", "Ιού", "Αύγ", "Σεπ", "Οκτ", "Νοέ", "Δεκ"]; + + Ext.Date.getShortMonthName = function(month) { + return Ext.Date.monthNames[month].substring(0, 3); + }; + + Ext.Date.monthNumbers = { + Jan: 0, + Feb: 1, + Mar: 2, + Apr: 3, + May: 4, + Jun: 5, + Jul: 6, + Aug: 7, + Sep: 8, + Oct: 9, + Nov: 10, + Dec: 11 + }; + + Ext.Date.getMonthNumber = function(name) { + return Ext.Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()]; + }; + + Ext.Date.dayNames = ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"]; + } + + if (Ext.util && Ext.util.Format) { + Ext.apply(Ext.util.Format, { + thousandSeparator: '.', + decimalSeparator: ',', + currencySign: '\u20ac', + // Greek Euro + dateFormat: 'd/m/Y' + }); + } +}); + +Ext.define("Ext.locale.el.view.View", { + override: "Ext.view.View", + emptyText: "" +}); + +Ext.define("Ext.locale.el.grid.plugin.DragDrop", { + override: "Ext.grid.plugin.DragDrop", + dragText: "{0} Επιλεγμένες σειρές" +}); + +Ext.define("Ext.locale.el.tab.Tab", { + override: "Ext.tab.Tab", + closeText: "Κλείστε το tab" +}); + +Ext.define("Ext.locale.el.form.field.Base", { + override: "Ext.form.field.Base", + invalidText: "Το περιεχόμενο του πεδίου δεν είναι αποδεκτό" +}); + +// changing the msg text below will affect the LoadMask +Ext.define("Ext.locale.el.view.AbstractView", { + override: "Ext.view.AbstractView", + loadingText: "Μεταφόρτωση δεδομένων..." +}); + +Ext.define("Ext.locale.el.picker.Date", { + override: "Ext.picker.Date", + todayText: "Σήμερα", + minText: "Η Ημερομηνία είναι προγενέστερη από την παλαιότερη αποδεκτή", + maxText: "Η Ημερομηνία είναι μεταγενέστερη από την νεότερη αποδεκτή", + disabledDaysText: "", + disabledDatesText: "", + nextText: 'Επόμενος Μήνας (Control+Δεξί Βέλος)', + prevText: 'Προηγούμενος Μήνας (Control + Αριστερό Βέλος)', + monthYearText: 'Επιλογή Μηνός (Control + Επάνω/Κάτω Βέλος για μεταβολή ετών)', + todayTip: "{0} (ΠΛήκτρο Διαστήματος)", + format: "d/m/y" +}); + +Ext.define("Ext.locale.el.toolbar.Paging", { + override: "Ext.PagingToolbar", + beforePageText: "Σελίδα", + afterPageText: "από {0}", + firstText: "Πρώτη Σελίδα", + prevText: "Προηγούμενη Σελίδα", + nextText: "Επόμενη Σελίδα", + lastText: "Τελευταία Σελίδα", + refreshText: "Ανανέωση", + displayMsg: "Εμφάνιση {0} - {1} από {2}", + emptyMsg: 'Δεν υπάρχουν δεδομένα' +}); + +Ext.define("Ext.locale.el.form.field.Text", { + override: "Ext.form.field.Text", + minLengthText: "Το μικρότερο αποδεκτό μήκος για το πεδίο είναι {0}", + maxLengthText: "Το μεγαλύτερο αποδεκτό μήκος για το πεδίο είναι {0}", + blankText: "Το πεδίο είναι υποχρεωτικό", + regexText: "", + emptyText: null +}); + +Ext.define("Ext.locale.el.form.field.Number", { + override: "Ext.form.field.Number", + minText: "Η μικρότερη τιμή του πεδίου είναι {0}", + maxText: "Η μεγαλύτερη τιμή του πεδίου είναι {0}", + nanText: "{0} δεν είναι αποδεκτός αριθμός" +}); + +Ext.define("Ext.locale.el.form.field.Date", { + override: "Ext.form.field.Date", + disabledDaysText: "Ανενεργό", + disabledDatesText: "Ανενεργό", + minText: "Η ημερομηνία αυτού του πεδίου πρέπει να είναι μετά την {0}", + maxText: "Η ημερομηνία αυτού του πεδίου πρέπει να είναι πριν την {0}", + invalidText: "{0} δεν είναι έγκυρη ημερομηνία - πρέπει να είναι στη μορφή {1}", + format: "d/m/y" +}); + +Ext.define("Ext.locale.el.form.field.ComboBox", { + override: "Ext.form.field.ComboBox", + valueNotFoundText: undefined +}, function() { + Ext.apply(Ext.form.field.ComboBox.prototype.defaultListConfig, { + loadingText: "Μεταφόρτωση δεδομένων..." + }); +}); + +Ext.define("Ext.locale.el.form.field.VTypes", { + override: "Ext.form.field.VTypes", + emailText: 'Το πεδίο δέχεται μόνο διευθύνσεις Email σε μορφή "user@example.com"', + urlText: 'Το πεδίο δέχεται μόνο URL σε μορφή "http:/' + '/www.example.com"', + alphaText: 'Το πεδίο δέχεται μόνο χαρακτήρες και _', + alphanumText: 'Το πεδίο δέχεται μόνο χαρακτήρες, αριθμούς και _' +}); + +Ext.define("Ext.locale.el.form.field.HtmlEditor", { + override: "Ext.form.field.HtmlEditor", + createLinkText: 'Δώστε τη διεύθυνση (URL) για το σύνδεσμο (link):' +}, function() { + Ext.apply(Ext.form.field.HtmlEditor.prototype, { + buttonTips: { + bold: { + title: 'Έντονα (Ctrl+B)', + text: 'Κάνετε το προεπιλεγμένο κείμενο έντονο.', + cls: Ext.baseCSSPrefix + 'html-editor-tip' + }, + italic: { + title: 'Πλάγια (Ctrl+I)', + text: 'Κάνετε το προεπιλεγμένο κείμενο πλάγιο.', + cls: Ext.baseCSSPrefix + 'html-editor-tip' + }, + underline: { + title: 'Υπογράμμιση (Ctrl+U)', + text: 'Υπογραμμίζετε το προεπιλεγμένο κείμενο.', + cls: Ext.baseCSSPrefix + 'html-editor-tip' + }, + increasefontsize: { + title: 'Μεγέθυνση κειμένου', + text: 'Μεγαλώνετε τη γραμματοσειρά.', + cls: Ext.baseCSSPrefix + 'html-editor-tip' + }, + decreasefontsize: { + title: 'Σμίκρυνση κειμένου', + text: 'Μικραίνετε τη γραμματοσειρά.', + cls: Ext.baseCSSPrefix + 'html-editor-tip' + }, + backcolor: { + title: 'Χρώμα Φόντου Κειμένου', + text: 'Αλλάζετε το χρώμα στο φόντο του προεπιλεγμένου κειμένου.', + cls: Ext.baseCSSPrefix + 'html-editor-tip' + }, + forecolor: { + title: 'Χρώμα Γραμματοσειράς', + text: 'Αλλάζετε το χρώμα στη γραμματοσειρά του προεπιλεγμένου κειμένου.', + cls: Ext.baseCSSPrefix + 'html-editor-tip' + }, + justifyleft: { + title: 'Αριστερή Στοίχιση Κειμένου', + text: 'Στοιχίζετε το κείμενο στα αριστερά.', + cls: Ext.baseCSSPrefix + 'html-editor-tip' + }, + justifycenter: { + title: 'Κεντράρισμα Κειμένου', + text: 'Στοιχίζετε το κείμενο στο κέντρο.', + cls: Ext.baseCSSPrefix + 'html-editor-tip' + }, + justifyright: { + title: 'Δεξιά Στοίχιση Κειμένου', + text: 'Στοιχίζετε το κείμενο στα δεξιά.', + cls: Ext.baseCSSPrefix + 'html-editor-tip' + }, + insertunorderedlist: { + title: 'Εισαγωγή Λίστας Κουκίδων', + text: 'Ξεκινήστε μια λίστα με κουκίδες.', + cls: Ext.baseCSSPrefix + 'html-editor-tip' + }, + insertorderedlist: { + title: 'Εισαγωγή Λίστας Αρίθμησης', + text: 'Ξεκινήστε μια λίστα με αρίθμηση.', + cls: Ext.baseCSSPrefix + 'html-editor-tip' + }, + createlink: { + title: 'Hyperlink', + text: 'Μετατρέπετε το προεπιλεγμένο κείμενο σε Link.', + cls: Ext.baseCSSPrefix + 'html-editor-tip' + }, + sourceedit: { + title: 'Επεξεργασία Κώδικα', + text: 'Μεταβαίνετε στη λειτουργία επεξεργασίας κώδικα.', + cls: Ext.baseCSSPrefix + 'html-editor-tip' + } + } + }); +}); + +Ext.define("Ext.locale.el.grid.header.Container", { + override: "Ext.grid.header.Container", + sortAscText: "Αύξουσα ταξινόμηση", + sortDescText: "Φθίνουσα ταξινόμηση", + lockText: "Κλείδωμα στήλης", + unlockText: "Ξεκλείδωμα στήλης", + columnsText: "Στήλες" +}); + +Ext.define("Ext.locale.el.grid.GroupingFeature", { + override: "Ext.grid.feature.Grouping", + emptyGroupText: '(Καμμία)', + groupByText: 'Ομαδοποίηση βάσει αυτού του πεδίου', + showGroupsText: 'Να εμφανίζεται στις ομάδες' +}); + +Ext.define("Ext.locale.el.grid.PropertyColumnModel", { + override: "Ext.grid.PropertyColumnModel", + nameText: "Όνομα", + valueText: "Περιεχόμενο", + dateFormat: "d/m/Y" +}); + +Ext.define("Ext.locale.el.window.MessageBox", { + override: "Ext.window.MessageBox", + buttonText: { + ok: "OK", + cancel: "Άκυρο", + yes: "Ναι", + no: "Όχι" + } +}); + +// This is needed until we can refactor all of the locales into individual files +Ext.define("Ext.locale.el.Component", { + override: "Ext.Component" +}); diff --git a/extjs/build/classic/locale/locale-el.js b/extjs/build/classic/locale/locale-el.js new file mode 100644 index 00000000..3db9f855 --- /dev/null +++ b/extjs/build/classic/locale/locale-el.js @@ -0,0 +1 @@ +Ext.onReady(function(){if(Ext.Date){Ext.Date.monthNames=["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"];Ext.Date.shortMonthNames=["Ιαν","Φεβ","Μάρ","Απρ","Μάι","Ιού","Ιού","Αύγ","Σεπ","Οκτ","Νοέ","Δεκ"];Ext.Date.getShortMonthName=function(a){return Ext.Date.monthNames[a].substring(0,3)};Ext.Date.monthNumbers={Jan:0,Feb:1,Mar:2,Apr:3,May:4,Jun:5,Jul:6,Aug:7,Sep:8,Oct:9,Nov:10,Dec:11};Ext.Date.getMonthNumber=function(a){return Ext.Date.monthNumbers[a.substring(0,1).toUpperCase()+a.substring(1,3).toLowerCase()]};Ext.Date.dayNames=["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"]}if(Ext.util&&Ext.util.Format){Ext.apply(Ext.util.Format,{thousandSeparator:'.',decimalSeparator:',',currencySign:'€',dateFormat:'d/m/Y'})}});Ext.define("Ext.locale.el.view.View",{override:"Ext.view.View",emptyText:""});Ext.define("Ext.locale.el.grid.plugin.DragDrop",{override:"Ext.grid.plugin.DragDrop",dragText:"{0} Επιλεγμένες σειρές"});Ext.define("Ext.locale.el.tab.Tab",{override:"Ext.tab.Tab",closeText:"Κλείστε το tab"});Ext.define("Ext.locale.el.form.field.Base",{override:"Ext.form.field.Base",invalidText:"Το περιεχόμενο του πεδίου δεν είναι αποδεκτό"});Ext.define("Ext.locale.el.view.AbstractView",{override:"Ext.view.AbstractView",loadingText:"Μεταφόρτωση δεδομένων..."});Ext.define("Ext.locale.el.picker.Date",{override:"Ext.picker.Date",todayText:"Σήμερα",minText:"Η Ημερομηνία είναι προγενέστερη από την παλαιότερη αποδεκτή",maxText:"Η Ημερομηνία είναι μεταγενέστερη από την νεότερη αποδεκτή",disabledDaysText:"",disabledDatesText:"",nextText:'Επόμενος Μήνας (Control+Δεξί Βέλος)',prevText:'Προηγούμενος Μήνας (Control + Αριστερό Βέλος)',monthYearText:'Επιλογή Μηνός (Control + Επάνω/Κάτω Βέλος για μεταβολή ετών)',todayTip:"{0} (ΠΛήκτρο Διαστήματος)",format:"d/m/y"});Ext.define("Ext.locale.el.toolbar.Paging",{override:"Ext.PagingToolbar",beforePageText:"Σελίδα",afterPageText:"από {0}",firstText:"Πρώτη Σελίδα",prevText:"Προηγούμενη Σελίδα",nextText:"Επόμενη Σελίδα",lastText:"Τελευταία Σελίδα",refreshText:"Ανανέωση",displayMsg:"Εμφάνιση {0} - {1} από {2}",emptyMsg:'Δεν υπάρχουν δεδομένα'});Ext.define("Ext.locale.el.form.field.Text",{override:"Ext.form.field.Text",minLengthText:"Το μικρότερο αποδεκτό μήκος για το πεδίο είναι {0}",maxLengthText:"Το μεγαλύτερο αποδεκτό μήκος για το πεδίο είναι {0}",blankText:"Το πεδίο είναι υποχρεωτικό",regexText:"",emptyText:null});Ext.define("Ext.locale.el.form.field.Number",{override:"Ext.form.field.Number",minText:"Η μικρότερη τιμή του πεδίου είναι {0}",maxText:"Η μεγαλύτερη τιμή του πεδίου είναι {0}",nanText:"{0} δεν είναι αποδεκτός αριθμός"});Ext.define("Ext.locale.el.form.field.Date",{override:"Ext.form.field.Date",disabledDaysText:"Ανενεργό",disabledDatesText:"Ανενεργό",minText:"Η ημερομηνία αυτού του πεδίου πρέπει να είναι μετά την {0}",maxText:"Η ημερομηνία αυτού του πεδίου πρέπει να είναι πριν την {0}",invalidText:"{0} δεν είναι έγκυρη ημερομηνία - πρέπει να είναι στη μορφή {1}",format:"d/m/y"});Ext.define("Ext.locale.el.form.field.ComboBox",{override:"Ext.form.field.ComboBox",valueNotFoundText:undefined},function(){Ext.apply(Ext.form.field.ComboBox.prototype.defaultListConfig,{loadingText:"Μεταφόρτωση δεδομένων..."})});Ext.define("Ext.locale.el.form.field.VTypes",{override:"Ext.form.field.VTypes",emailText:'Το πεδίο δέχεται μόνο διευθύνσεις Email σε μορφή "user@example.com"',urlText:'Το πεδίο δέχεται μόνο URL σε μορφή "http:/'+'/www.example.com"',alphaText:'Το πεδίο δέχεται μόνο χαρακτήρες και _',alphanumText:'Το πεδίο δέχεται μόνο χαρακτήρες, αριθμούς και _'});Ext.define("Ext.locale.el.form.field.HtmlEditor",{override:"Ext.form.field.HtmlEditor",createLinkText:'Δώστε τη διεύθυνση (URL) για το σύνδεσμο (link):'},function(){Ext.apply(Ext.form.field.HtmlEditor.prototype,{buttonTips:{bold:{title:'Έντονα (Ctrl+B)',text:'Κάνετε το προεπιλεγμένο κείμενο έντονο.',cls:Ext.baseCSSPrefix+'html-editor-tip'},italic:{title:'Πλάγια (Ctrl+I)',text:'Κάνετε το προεπιλεγμένο κείμενο πλάγιο.',cls:Ext.baseCSSPrefix+'html-editor-tip'},underline:{title:'Υπογράμμιση (Ctrl+U)',text:'Υπογραμμίζετε το προεπιλεγμένο κείμενο.',cls:Ext.baseCSSPrefix+'html-editor-tip'},increasefontsize:{title:'Μεγέθυνση κειμένου',text:'Μεγαλώνετε τη γραμματοσειρά.',cls:Ext.baseCSSPrefix+'html-editor-tip'},decreasefontsize:{title:'Σμίκρυνση κειμένου',text:'Μικραίνετε τη γραμματοσειρά.',cls:Ext.baseCSSPrefix+'html-editor-tip'},backcolor:{title:'Χρώμα Φόντου Κειμένου',text:'Αλλάζετε το χρώμα στο φόντο του προεπιλεγμένου κειμένου.',cls:Ext.baseCSSPrefix+'html-editor-tip'},forecolor:{title:'Χρώμα Γραμματοσειράς',text:'Αλλάζετε το χρώμα στη γραμματοσειρά του προεπιλεγμένου κειμένου.',cls:Ext.baseCSSPrefix+'html-editor-tip'},justifyleft:{title:'Αριστερή Στοίχιση Κειμένου',text:'Στοιχίζετε το κείμενο στα αριστερά.',cls:Ext.baseCSSPrefix+'html-editor-tip'},justifycenter:{title:'Κεντράρισμα Κειμένου',text:'Στοιχίζετε το κείμενο στο κέντρο.',cls:Ext.baseCSSPrefix+'html-editor-tip'},justifyright:{title:'Δεξιά Στοίχιση Κειμένου',text:'Στοιχίζετε το κείμενο στα δεξιά.',cls:Ext.baseCSSPrefix+'html-editor-tip'},insertunorderedlist:{title:'Εισαγωγή Λίστας Κουκίδων',text:'Ξεκινήστε μια λίστα με κουκίδες.',cls:Ext.baseCSSPrefix+'html-editor-tip'},insertorderedlist:{title:'Εισαγωγή Λίστας Αρίθμησης',text:'Ξεκινήστε μια λίστα με αρίθμηση.',cls:Ext.baseCSSPrefix+'html-editor-tip'},createlink:{title:'Hyperlink',text:'Μετατρέπετε το προεπιλεγμένο κείμενο σε Link.',cls:Ext.baseCSSPrefix+'html-editor-tip'},sourceedit:{title:'Επεξεργασία Κώδικα',text:'Μεταβαίνετε στη λειτουργία επεξεργασίας κώδικα.',cls:Ext.baseCSSPrefix+'html-editor-tip'}}})});Ext.define("Ext.locale.el.grid.header.Container",{override:"Ext.grid.header.Container",sortAscText:"Αύξουσα ταξινόμηση",sortDescText:"Φθίνουσα ταξινόμηση",lockText:"Κλείδωμα στήλης",unlockText:"Ξεκλείδωμα στήλης",columnsText:"Στήλες"});Ext.define("Ext.locale.el.grid.GroupingFeature",{override:"Ext.grid.feature.Grouping",emptyGroupText:'(Καμμία)',groupByText:'Ομαδοποίηση βάσει αυτού του πεδίου',showGroupsText:'Να εμφανίζεται στις ομάδες'});Ext.define("Ext.locale.el.grid.PropertyColumnModel",{override:"Ext.grid.PropertyColumnModel",nameText:"Όνομα",valueText:"Περιεχόμενο",dateFormat:"d/m/Y"});Ext.define("Ext.locale.el.window.MessageBox",{override:"Ext.window.MessageBox",buttonText:{ok:"OK",cancel:"Άκυρο",yes:"Ναι",no:"Όχι"}});Ext.define("Ext.locale.el.Component",{override:"Ext.Component"});