* [PATCH extjs/proxmox{-i18n,-yew-comp}/widget-toolkit 0/4] i18n: add Greek translations
@ 2026-06-01 12:05 Maximiliano Sandoval
2026-06-01 12:05 ` [PATCH extjs 1/4] " Maximiliano Sandoval
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Maximiliano Sandoval @ 2026-06-01 12:05 UTC (permalink / raw)
To: pve-devel
We internally received a contribution adding new translations to proxmox-i18n,
since this requires changes both in ExtJs and the UI, they are republished here
(commit 2/4) as a single patch series.
extjs:
Maximiliano Sandoval (1):
add Greek translations
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
proxmox-i18n:
Maximiliano Sandoval (1):
add Greek translations
Makefile | 1 +
el.po | 22472 +++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 22473 insertions(+)
create mode 100644 el.po
proxmox-yew-comp:
Maximiliano Sandoval (1):
add Greek translations
src/lib.rs | 1 +
1 file changed, 1 insertion(+)
proxmox-widget-toolkit:
Maximiliano Sandoval (1):
utils: add Greek translations
src/Utils.js | 1 +
1 file changed, 1 insertion(+)
Summary over all repositories:
7 files changed, 22746 insertions(+), 2 deletions(-)
--
Generated by murpp 0.10.0
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH extjs 1/4] add Greek translations
2026-06-01 12:05 [PATCH extjs/proxmox{-i18n,-yew-comp}/widget-toolkit 0/4] i18n: add Greek translations Maximiliano Sandoval
@ 2026-06-01 12:05 ` Maximiliano Sandoval
2026-06-01 12:05 ` [PATCH proxmox-yew-comp 3/4] " Maximiliano Sandoval
2026-06-01 12:05 ` [PATCH widget-toolkit 4/4] utils: " Maximiliano Sandoval
2 siblings, 0 replies; 4+ messages in thread
From: Maximiliano Sandoval @ 2026-06-01 12:05 UTC (permalink / raw)
To: pve-devel
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 <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"});
--
2.47.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH proxmox-yew-comp 3/4] add Greek translations
2026-06-01 12:05 [PATCH extjs/proxmox{-i18n,-yew-comp}/widget-toolkit 0/4] i18n: add Greek translations Maximiliano Sandoval
2026-06-01 12:05 ` [PATCH extjs 1/4] " Maximiliano Sandoval
@ 2026-06-01 12:05 ` Maximiliano Sandoval
2026-06-01 12:05 ` [PATCH widget-toolkit 4/4] utils: " Maximiliano Sandoval
2 siblings, 0 replies; 4+ messages in thread
From: Maximiliano Sandoval @ 2026-06-01 12:05 UTC (permalink / raw)
To: pve-devel
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
---
src/lib.rs | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/lib.rs b/src/lib.rs
index dd2ccb0..26958f1 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -300,6 +300,7 @@ pub fn available_language_list() -> Vec<LanguageInfo> {
LanguageInfo::new("da", "Dansk", gettext_noop("Danish")),
LanguageInfo::new("de", "Deutsch", gettext_noop("German")),
LanguageInfo::new("en", "English", gettext_noop("English")),
+ LanguageInfo::new("el", "Greek", gettext_noop("Greek")),
LanguageInfo::new("es", "Español", gettext_noop("Spanish")),
LanguageInfo::new("eu", "Euskera (Basque)", gettext_noop("Euskera (Basque)")),
LanguageInfo::new("fa", "فارسی", gettext_noop("Persian (Farsi)"))
--
2.47.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH widget-toolkit 4/4] utils: add Greek translations
2026-06-01 12:05 [PATCH extjs/proxmox{-i18n,-yew-comp}/widget-toolkit 0/4] i18n: add Greek translations Maximiliano Sandoval
2026-06-01 12:05 ` [PATCH extjs 1/4] " Maximiliano Sandoval
2026-06-01 12:05 ` [PATCH proxmox-yew-comp 3/4] " Maximiliano Sandoval
@ 2026-06-01 12:05 ` Maximiliano Sandoval
2 siblings, 0 replies; 4+ messages in thread
From: Maximiliano Sandoval @ 2026-06-01 12:05 UTC (permalink / raw)
To: pve-devel
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
---
src/Utils.js | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/Utils.js b/src/Utils.js
index ed88210..bb200df 100644
--- a/src/Utils.js
+++ b/src/Utils.js
@@ -70,6 +70,7 @@ Ext.define('Proxmox.Utils', {
da: `Dansk - ${gettext('Danish')}`,
de: `Deutsch - ${gettext('German')}`,
en: `English - ${gettext('English')}`,
+ el: `Greek - ${gettext('Greek')}`,
es: `Español - ${gettext('Spanish')}`,
eu: `Euskera (Basque) - ${gettext('Euskera (Basque)')}`,
fa: `فارسی - ${gettext('Persian (Farsi)')}`,
--
2.47.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-06-01 12:06 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-01 12:05 [PATCH extjs/proxmox{-i18n,-yew-comp}/widget-toolkit 0/4] i18n: add Greek translations Maximiliano Sandoval
2026-06-01 12:05 ` [PATCH extjs 1/4] " Maximiliano Sandoval
2026-06-01 12:05 ` [PATCH proxmox-yew-comp 3/4] " Maximiliano Sandoval
2026-06-01 12:05 ` [PATCH widget-toolkit 4/4] utils: " Maximiliano Sandoval
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.