From 83f46c8e5ef2cdb11f3c6c25aae63169075a5b42 Mon Sep 17 00:00:00 2001 From: Darcy Wong Date: Wed, 7 Aug 2024 05:59:35 +0700 Subject: [PATCH 1/8] chore(common): Update localization for Greek Polytonic --- .../src/main/res/values-b+el/strings.xml | 24 +- .../app/src/main/res/values-b+el/strings.xml | 38 +- .../KeymanEngine/el.lproj/Localizable.strings | 18 +- .../el.lproj/Localizable.stringsdict | 6 +- .../Keyman/el.lproj/Localizable.strings | 10 +- linux/keyman-config/locale/el_polyton.po | 332 +++++++ .../KMAboutWindowController.strings | 8 + .../el-polyton.lproj/preferences.strings | 38 + .../KMInfoWindowController.strings | 8 + .../KMKeyboardHelpWindowController.strings | 8 + .../el-polyton.lproj/Localizable.strings | 74 ++ .../el-polyton.lproj/MainMenu.strings | 14 + .../kmshell/locale/el-polyton/strings.xml | 915 ++++++++++++++++++ .../setup/locale/el-polyton/strings.xml | 78 ++ 14 files changed, 1523 insertions(+), 48 deletions(-) create mode 100644 linux/keyman-config/locale/el_polyton.po create mode 100644 mac/Keyman4MacIM/Keyman4MacIM/KMAboutWindow/el-polyton.lproj/KMAboutWindowController.strings create mode 100644 mac/Keyman4MacIM/Keyman4MacIM/KMConfiguration/el-polyton.lproj/preferences.strings create mode 100644 mac/Keyman4MacIM/Keyman4MacIM/KMInfoWindow/el-polyton.lproj/KMInfoWindowController.strings create mode 100644 mac/Keyman4MacIM/Keyman4MacIM/KMKeyboardHelpWindow/el-polyton.lproj/KMKeyboardHelpWindowController.strings create mode 100644 mac/Keyman4MacIM/Keyman4MacIM/el-polyton.lproj/Localizable.strings create mode 100644 mac/Keyman4MacIM/Keyman4MacIM/el-polyton.lproj/MainMenu.strings create mode 100644 windows/src/desktop/kmshell/locale/el-polyton/strings.xml create mode 100644 windows/src/desktop/setup/locale/el-polyton/strings.xml diff --git a/android/KMAPro/kMAPro/src/main/res/values-b+el/strings.xml b/android/KMAPro/kMAPro/src/main/res/values-b+el/strings.xml index 43e43eb4ca9..428bf5ad598 100644 --- a/android/KMAPro/kMAPro/src/main/res/values-b+el/strings.xml +++ b/android/KMAPro/kMAPro/src/main/res/values-b+el/strings.xml @@ -30,9 +30,9 @@ Μέγεθος κειμένου: %1$d - Μεγαλῶστε τὸ κείμενο + Μεγαλῶστε τὴν γραμματοσειρά - Μεγαλῶστε τὸ κείμενο + Μικρύνετε τὴν γραμματοσειρά Ρύθμιση μεγέθους κειμένου @@ -68,7 +68,7 @@ Μεταβολὴ ὕψους πληκτρολογίου - Spacebar caption + Λεζάντα πλήκτρου διαστήματος Πληκτρολόγιο @@ -80,9 +80,9 @@ \'Ονομα πληκτρολογίου στὸ πλῆκτρο διαστήματος - \'Ονομα γλώσσας στὸ πλῆκτρο διαστήματος + Ὄνομα γλώσσας στὸ πλῆκτρο διαστήματος - \'Ονομα πληκτρολογίου καὶ γλώσσας στὸ πλῆκτρο διαστήματος + Ὄνομα πληκτρολογίου καὶ γλώσσας στὸ πλῆκτρο διαστήματος Καμμία λεζάντα στὸ πλῆκτρο διαστήματος @@ -92,13 +92,13 @@ Πρὸς ὑλοποίησιν - Ὅταν εἶναι off, ἐμφανίζεται μόνο ὅταν ἔχει ἐνεργοποιηθεῖ τὸ προγνωστικὸ κείμενο + OFF: ἐμφάνιση μόνον ὅταν ἔχει ἐνεργοποιηθεῖ ἡ πρόβλεψη κειμένου Ἐπιτρέψτε τὴν ἀποστολὴ ἀναφορῶν κατάρρευσης μέσῳ δικτύου - Ὅταν εἶναι ΟΝ, θὰ ἀποστέλλονται ἀναφορὲς κατάρρευσης + ON: Ἀποστολὴ ἀναφορῶν κατάρρευσης - Ὅταν εἶναι off, δὲν θὰ ἀποστέλλονται ἀναφορὲς κατάρρευσης + OFF: Δὲν ἀποστέλλονται ἀναφορὲς κατάρρευσης Ἐγκατάσταση ἀπὸ τὸ keyman.com @@ -118,9 +118,9 @@ Ὅλες οἱ γλῶσσες ἔχουν ἤδη ἐγκατασταθεῖ - Σύρετε τὸ πληκτρολόγιο γιὰ νὰ ἀλλάξετε τὸ ὕψος + Σύρετε τὸ πληκτρολόγιο γιὰ νὰ ἀλλάξετε τὸ ὕψος του - Περιστρέψτε τὴν συσκευὴ γιὰ λειτουργία πορτραίτου καὶ τοπίου + Περιστρέψτε τὴν συσκευὴ γιὰ προσαρμογὴ τοῦ ὕψους σὲ λειτουργία πορτραίτου καὶ τοπίου Ἐπαναφέρετε τὶς προεπιλεγμένες ρυθμίσεις @@ -150,9 +150,9 @@ Τὸ πακέτο πληκτρολογίου δὲν ἔχει βελτιστοποιημένα πληκτρολόγια ἀφῆς πρὸς ἐγκατάστασιν - Δὲν ὑπάρχει νέο προγνωστικό κείμενο πρὸς ἐγκατάστασιν + Δὲν ὑπάρχουν προγνώσεις κειμένων πρὸς ἐγκατάστασιν - Δὲν ὑπάρχουν πληκτρολόγια ἢ προγνωστικό κείμενο πρὸς ἐγκατάστασιν + Δὲν ὑπάρχουν πληκτρολόγια ἢ προγνώσεις κειμένων πρὸς ἐγκατάστασιν Τὸ πακέτο πληκτρολογίου δὲν ἔχει σχετικὲς μὲ αὐτὸ γλῶσσες πρὸς ἐγκατάστασιν diff --git a/android/KMEA/app/src/main/res/values-b+el/strings.xml b/android/KMEA/app/src/main/res/values-b+el/strings.xml index 871171d63f7..75c774ebd16 100644 --- a/android/KMEA/app/src/main/res/values-b+el/strings.xml +++ b/android/KMEA/app/src/main/res/values-b+el/strings.xml @@ -27,7 +27,7 @@ Κλεῖστε - Κλεῖστε τὸ Κῆμαν + Κλεῖστε τὸ Keyman Προχωρῆστε @@ -53,11 +53,11 @@ Θὰ θέλατε νὰ κατεβάσετε τὴν τελευταία ἔκδοση αὐτοῦ τοῦ πληκτρολογίου; - Θά θέλατε νὰ ἐνημερώσετε τώρα πληκτρολόγια καὶ λεξικά; + Θὰ θέλατε νὰ ἐνημερώσετε τώρα πληκτρολόγια καὶ λεξικά; - Ἐνημερώσεις Πόρων + Ἐνημερώσεις - Διαθέσιμες Ἐνημερώσεις Πόρων + Διαθέσιμες Ἐνημερώσεις %1$s (Διαθέσιμη Ἐνημέρωση) @@ -67,13 +67,13 @@ Ἔκδοση πληκτρολογίου - Σύνδεσμος βοηθείας + Βοήθεια Ἀπεγκαταστῆστε πληκτρολόγιο [νέο] %1$s - Σαρῶστε αὐτὸν τὸν κωδικό γιὰ νὰ φορτώσετε\nαὐτὸ τὸ πληκτρολόγιο σὲ ἄλλη συσκευή + Σαρῶστε αὐτὸν τὸν κωδικὸ γιὰ νὰ φορτώσετε\nαὐτὸ τὸ πληκτρολόγιο σὲ ἄλλη συσκευή Καλωσορίσατε στὸ %1$s @@ -81,22 +81,22 @@ Μοιραῖο σφάλμα πληκτρολογίου στὸ %1$s:%2$s γιὰ τὴν %3$s γλῶσσα. Φορτώνεται προεπιλεγμένο πληκτρολόγιο. - Error in keyboard %1$s:%2$s for %3$s language. + Σφάλμα στὸ πληκτρολόγιο %1$s:%2$s γιὰ τὴν γλῶσσα \"%3$s\". - Ἔλεγχος συσχετισμένου λεξικοῦ πρὸς λῆψιν - Ἀδυναμία συνδέσεως μὲ τὸν διακομιστὴ Κῆμαν γιὰ τὸν ἔλεγχο συσχετισμένου λεξικοῦ πρὸς λῆψιν + Ἀναζήτηση σχετικοῦ λεξικοῦ πρὸς μεταφόρτωσιν + Ἀδυναμία συνδέσεως μὲ τὸν διακομιστὴ Keyman γιὰ τὴν εὕρεση σχετικοῦ λεξικοῦ πρὸς μεταφόρτωσιν Θὰ θέλατε νὰ κατεβάσετε τὴν τελευταία ἔκδοση αὐτοῦ τοῦ λεξικοῦ; - Δὲν ὑπάρχει λεξικὸ πρὸς λῆψιν + Δὲν ὑπάρχει λεξικὸ πρὸς μεταφόρτωσιν Μὴ διαθέσιμος κατάλογος πόρων Ἔχει ξεκινήσει ἐνημέρωση καταλόγου στὸ παρασκήνιο - Ἡ λήψη τοῦ καταλόγου συνεχίζεται· παρακαλοῦμε ξαναδοκιμάστε σὲ λίγο! + Ἡ μεταφόρτωση τοῦ καταλόγου συνεχίζεται· παρακαλοῦμε ξαναδοκιμάστε σὲ λίγο! - Ἔλεγχος πόρου σὲ ἐξέλιξη + Ἀναζήτηση πόρου σὲ ἐξέλιξη Ἡ λήψη τοῦ πληκτρολογίου ἔχει ξεκινήσει στὸ παρασκήνιο @@ -112,7 +112,7 @@ Ἡ λήψη ἀπέτυχε - Ἀποτυχία ἀνακτήσεως ληφθέντος ἀρχείου + Ἀποτυχία ἀνακλήσεως ληφθέντος ἀρχείου Ἀποτυχία προσβάσεως στὸν διακομιστή! @@ -120,11 +120,11 @@ Ἕνας ἢ περισσότεροι πόροι ἀπέτυχαν νὰ ἐνημερωθοῦν! - Οἱ πόροι ἐνημερώθηκαν ἐπιτυχῶς! + Ὅλες οἱ ἐνημερώσεις ὁλοκληρώθηκαν ἐπιτυχῶς! Ἔκδοση λεξικοῦ - Ἀπεγκαταστῆτε λεξικό + Ἀπεγκαταστῆστε λεξικό Θὰ θέλατε νὰ διαγράψετε αὐτὸ τὸ λεξικό; @@ -136,16 +136,16 @@ Ἐνεργοποιῆστε τὶς διορθώσεις - Ἐνεργοποιῆστε προβλέψεις + Ἐνεργοποιῆστε προβλέψεις κειμένου - Λεξικά + Λεξικό Λεξικό Λεξικά - Ἔλεγχος διαθεσίμου λεξικοῦ - Ἔλεγχος λεξικῶν ὀνλάϊν + Ἀναζήτηση διαθεσίμου λεξικοῦ + Ἀναζήτηση λεξικῶν ὀνλάϊν Λεξικό: %1$s diff --git a/ios/engine/KMEI/KeymanEngine/el.lproj/Localizable.strings b/ios/engine/KMEI/KeymanEngine/el.lproj/Localizable.strings index 47b3aa9de08..1bd8c7713fd 100644 --- a/ios/engine/KMEI/KeymanEngine/el.lproj/Localizable.strings +++ b/ios/engine/KMEI/KeymanEngine/el.lproj/Localizable.strings @@ -44,19 +44,19 @@ "command-uninstall-keyboard-confirm" = "Θὰ θέλατε νὰ ἀπεγκαταστήσετε αὐτὸ τὸ πληκτρολόγιο;"; /* Text for the command to uninstall a lexical model */ -"command-uninstall-lexical-model" = "Ἀπεγκαταστῆτε λεξικό"; +"command-uninstall-lexical-model" = "Ἀπεγκαταστῆστε λεξικό"; /* Confirmation text to display before uninstalling a lexical model */ "command-uninstall-lexical-model-confirm" = "Θὰ θέλατε νὰ ἀπεγκαταστήσετε αὐτὸ τὸ λεξικό;"; /* Text for error when a keyboard cannot load properly */ -"error-loading-keyboard" = "Ἀδυνατοῦμε νὰ φορτώσομε τὸ πληκτρολόγιο ποὺ ζητήσατε"; +"error-loading-keyboard" = "Ἀδυναμία φορτώσεως τοῦ πληκτρολογίου ποὺ ζητήσατε"; /* Text for error when a lexical model cannot load properly */ -"error-loading-lexical-model" = "Ἀδυνατοῦμε νὰ φορτώσομε τὸ λεξικὸ ποὺ ζητήσατε"; +"error-loading-lexical-model" = "Ἀδυναμία φορτώσεως τοῦ λεξικοῦ ποὺ ζητήσατε"; /* Text for error when an installed file is unexpectedly missing */ -"error-missing-file" = "Δὲν βρέθηκε κάποιο ἀπαραίτητο ἀρχεῖο."; +"error-missing-file" = "Δὲν βρέθηκε κάποιο ἀπαιτούμενο ἀρχεῖο."; /* Text for error when an installed file is unexpectedly missing */ "error-missing-file-critical" = "Κάποιο σημαντικὸ ἀρχεῖο δὲν εὑρέθη. Παρακαλοῦμε προσπαθῆστε νὰ ἐγκαταστήσετε ἐκ νέου τὴν ἐφαρμογή."; @@ -77,7 +77,7 @@ "error-update-no-link" = "Δὲν ὑπάρχει πηγαῖος κώδικας πρὸς ἐνημέρωσιν αὐτοῦ τοῦ πακέτου"; /* Text for error when updating a resource: Keyman does not know how to update the resource */ -"error-update-not-managed" = "Ἀδυνατοῦμε νὰ ἐνημερώσομε πόρο μὴ διαχειριζόμενο ἀπὸ τὴν μηχανὴ Κῆμαν"; +"error-update-not-managed" = "Ἀδυναμία ἐνημερώσεως πόρου μὴ διαχειριζομένου ἀπὸ μηχανὴ Keyman"; /* Text for the command to open the help page of a keyboard, as shown on resource information views */ "info-command-help-keyboard" = "Βοήθεια γιὰ τὸ πληκτρολόγιο"; @@ -155,7 +155,7 @@ "menu-langsettings-toggle-correct" = "Ἐνεργοποιῆστε τὶς διορθώσεις"; /* Label for the toggle that enables predictions that is displayed within a language-specific settings menu */ -"menu-langsettings-toggle-predict" = "Ἐνεργοποιῆστε προβλέψεις"; +"menu-langsettings-toggle-predict" = "Ἐνεργοποιῆστε τὶς προβλέψεις κειμένου"; /* Help message for a prompt that appears for confirming a lexical model download: language (1): lexical model (dictionary) name (2) */ "menu-lexical-model-install-message" = "Θὰ θέλατε νὰ ἐγκαταστήσετε αὐτὸ τὸ λεξικό;"; @@ -200,13 +200,13 @@ "menu-settings-spacebar-hint-blank" = "Καμμία λεζάντα στὸ πλῆκτρο διαστήματος"; /* Secondary text showing current setting for spacebar caption - keyboard */ -"menu-settings-spacebar-hint-keyboard" = "Νὰ ἐμφανίζεται στὸ στὸ πλῆκτρο διαστήματος τὸ ὄνομα τοῦ πληκτρολογίου"; +"menu-settings-spacebar-hint-keyboard" = "Ὄνομα πληκτρολογίου στὸ πλῆκτρο διαστήματος"; /* Secondary text showing current setting for spacebar caption - language */ -"menu-settings-spacebar-hint-language" = "Νὰ ἐμφανίζεται στὸ στὸ πλῆκτρο διαστήματος τὸ ὄνομα τῆς γλώσσας"; +"menu-settings-spacebar-hint-language" = "Ὄνομα γλώσσας στὸ πλῆκτρο διαστήματος"; /* Secondary text showing current setting for spacebar caption - language + keyboard */ -"menu-settings-spacebar-hint-languageKeyboard" = "Νὰ ἐμφανίζεται στὸ στὸ πλῆκτρο διαστήματος τὸ ὄνομα τοῦ πληκτρολογίου καὶ τῆς γλώσσας"; +"menu-settings-spacebar-hint-languageKeyboard" = "Ὄνομα πληκτρολογίου καὶ γλώσσας στὸ πλῆκτρο διαστήματος"; /* Label for the "Spacebar Caption" item on the main settings screen */ "menu-settings-spacebar-text" = "Λεζάντα Πλήκτρου Διαστήματος"; diff --git a/ios/engine/KMEI/KeymanEngine/el.lproj/Localizable.stringsdict b/ios/engine/KMEI/KeymanEngine/el.lproj/Localizable.stringsdict index afaf5ae03d8..b0544d994e6 100644 --- a/ios/engine/KMEI/KeymanEngine/el.lproj/Localizable.stringsdict +++ b/ios/engine/KMEI/KeymanEngine/el.lproj/Localizable.stringsdict @@ -13,9 +13,9 @@ NSStringFormatValueTypeKey u one - Τὸ λεξικὸ %u ἐγκατεστάθη + Ἐγκατεστάθη %u λεξικό other - %u λεξικὰ ἐγκατεστάθησαν + Ἐγκατεστάθησαν %u λεξικά notification-update-failed @@ -31,7 +31,7 @@ one %u ἐνημέρωση ἀπέτυχε other - %u ἐνημερώσεις ἀπέτυχαν + Ἀπέτυχαν %u ἐνημερώσεις notification-update-success diff --git a/ios/keyman/Keyman/Keyman/el.lproj/Localizable.strings b/ios/keyman/Keyman/Keyman/el.lproj/Localizable.strings index 2df136fccc7..d5d0fcec496 100644 --- a/ios/keyman/Keyman/Keyman/el.lproj/Localizable.strings +++ b/ios/keyman/Keyman/Keyman/el.lproj/Localizable.strings @@ -24,7 +24,7 @@ /* The name of the iOS Settings menu option for giving the keyboard full access. (The menu entry underneath the app's name within the app-specific keyboard menu.) */ -"ios-settings-allow-full-access" = "Ἐπιστρέψτε πλήρη πρόσβαση"; +"ios-settings-allow-full-access" = "Ἐπιτρέψτε πλήρη πρόσβαση"; /* Short-form used when installing a font in order to display a language properly. */ "language-for-font" = "Γραμματοσειρά %@"; @@ -60,13 +60,13 @@ underneath the app's name within the app-specific keyboard menu.) */ "menu-show-browser" = "Φυλλομετρητής"; /* Menu option used to control in-app font size. */ -"menu-text-size" = "Μέγεθος κειμένου"; +"menu-text-size" = "Μέγεθος γραμματοσειρᾶς"; /* Used to describe the current font size */ -"text-size-label" = "Μέγεθος κειμένου: %i"; +"text-size-label" = "Μέγεθος γραμματοσειρᾶς: %i"; /* Text to indicate that a user should set a toggle within iOS Settings to 'active'. */ -"toggle-to-enable" = "Ἐνεργοποιῆστε %@"; +"toggle-to-enable" = "Ἐνεργοποίηση %@"; /* First option on the Get Started tutorial - Add a keyboard for your language */ "tutorial-add-keyboard" = "Προσθέστε πληκτρολόγιο γιὰ τὴν γλῶσσα σας"; @@ -75,7 +75,7 @@ underneath the app's name within the app-specific keyboard menu.) */ "tutorial-show-help" = "Περισσότερες πληροφορίες"; /* Second option on the Get Started tutorial - Set up Keyman as system-wide keyboard */ -"tutorial-system-keyboard" = "Ὁρίστε τὸ Κῆμαν ὡς παν-συστημικὸ πληκτρολόγιο"; +"tutorial-system-keyboard" = "Ὁρίστε τὸ Κῆμαν ὡς πληκτρολόγιο ὁλοκλήρου τοῦ συστήματος"; /* Used to display app version (as in \"Version: 1.0.2\" */ "version-label" = "Ἔκδοση: %@"; diff --git a/linux/keyman-config/locale/el_polyton.po b/linux/keyman-config/locale/el_polyton.po new file mode 100644 index 00000000000..fa9797acce3 --- /dev/null +++ b/linux/keyman-config/locale/el_polyton.po @@ -0,0 +1,332 @@ +msgid "" +msgstr "" +"Project-Id-Version: keyman\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-08-19 19:17+0200\n" +"PO-Revision-Date: 2024-08-06 22:57\n" +"Last-Translator: \n" +"Language-Team: Greek (Polytonic)\n" +"Language: el_polyton\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: keyman\n" +"X-Crowdin-Project-ID: 386703\n" +"X-Crowdin-Language: el-polyton\n" +"X-Crowdin-File: /master/linux/keyman-config.pot\n" +"X-Crowdin-File-ID: 504\n" + +#: keyman_config/__init__.py:68 +msgid "Neither sentry-sdk nor raven is available. Not enabling Sentry error reporting." +msgstr "Δὲν εἶναι διαθέσιμα οὔτε τὸ sentry-sdk οὔτε τὸ raven. Δὲν ἐνεργοποιεῖται ἡ ἀναφορὰ σφαλμάτων Sentry." + +#: keyman_config/downloadkeyboard.py:23 +msgid "Download Keyman keyboards" +msgstr "Μεταφόρτωση πληκτρολογίων Keyman" + +#: keyman_config/downloadkeyboard.py:37 keyman_config/keyboard_details.py:49 +#: keyman_config/keyboard_details.py:340 keyman_config/view_installed.py:205 +msgid "_Close" +msgstr "_Close" + +#: keyman_config/install_kmp.py:99 +msgid "You do not have permissions to install the keyboard files to the shared area /usr/local/share/keyman" +msgstr "Δὲν σᾶς ἐπιτρέπεται νὰ ἐγκαταστήσετε τὰ ἀρχεῖα τοῦ πληκτρολογίου στὴν κοινὴ περιοχὴ /usr/local/share/keyman" + +#: keyman_config/install_kmp.py:103 +msgid "You do not have permissions to install the documentation to the shared documentation area /usr/local/share/doc/keyman" +msgstr "Δὲν σᾶς ἐπιτρέπεται νὰ ἐγκαταστήσετε τὴν τεκμηρίωση στὴν κοινὴ περιοχὴ τεκμηρίωσης /usr/local/share/doc/keyman" + +#: keyman_config/install_kmp.py:107 +msgid "You do not have permissions to install the font files to the shared font area /usr/local/share/fonts" +msgstr "Δὲν σᾶς ἐπιτρέπεται νὰ ἐγκαταστήσετε τὰ ἀρχεῖα γραμματοσειρῶν στὴν κοινὴ περιοχὴ γραμματοσειρῶν /usr/local/share/fonts" + +#: keyman_config/install_kmp.py:179 +#, python-brace-format +msgid "install_kmp.py: error: No kmp.json or kmp.inf found in {package}" +msgstr "install_kmp.py: σφάλμα: Δὲν βρέθηκε kmp.json ἢ kmp.inf στὸ {package}" + +#: keyman_config/install_kmp.py:246 +#, python-brace-format +msgid "install_kmp.py: error: No kmp.json or kmp.inf found in {packageFile}" +msgstr "install_kmp.py: σφάλμα: Δὲν βρέθηκε kmp.json ἢ kmp.inf στὸ {packageFile}" + +#: keyman_config/install_window.py:54 +#, python-brace-format +msgid "Installing keyboard/package {keyboardid}" +msgstr "Ἐγκαθίσταται πληκτρολόγιο/πακέτο {keyboardid}" + +#: keyman_config/install_window.py:72 keyman_config/install_window.py:93 +msgid "Keyboard is installed already" +msgstr "Τὸ πληκτρολόγιο ἔχει ἤδη ἐγκατασταθεῖ" + +#: keyman_config/install_window.py:74 +#, python-brace-format +msgid "The {name} keyboard is already installed at version {version}. Do you want to uninstall then reinstall it?" +msgstr "Τὸ πληκτρολόγιο {name} ἔχει ἤδη ἐγκατασταθεῖ στὴν ἔκδοση {version}. Θέλετε νὰ τὸ ἀφαιρέσετε καὶ νὰ τὸ ἐγκαταστήσετε ἐκ νέου;" + +#: keyman_config/install_window.py:95 +#, python-brace-format +msgid "The {name} keyboard is already installed with a newer version {installedversion}. Do you want to uninstall it and install the older version {version}?" +msgstr "Τὸ πληκτρολόγιο {name} ἔχει ἤδη ἐγκατασταθεῖ μὲ τὴν νεώτερη ἔκδοση {installedversion}. Θέλετε νὰ τὸ ἀφαιρέσετε καὶ νὰ ἐγκαταστήσετε τὴν παλαιότερη ἔκδοση {version};" + +#: keyman_config/install_window.py:128 +msgid "Keyboard layouts: " +msgstr "Διατάξεις πληκτρολογίου: " + +#: keyman_config/install_window.py:147 +msgid "Fonts: " +msgstr "Γραμματοσειρές: " + +#: keyman_config/install_window.py:167 keyman_config/keyboard_details.py:96 +msgid "Package version: " +msgstr "Ἔκδοση πακέτου: " + +#: keyman_config/install_window.py:179 +msgid "Author: " +msgstr "Κατασκευαστής: " + +#: keyman_config/install_window.py:197 +msgid "Website: " +msgstr "Ἱστότοπος: " + +#: keyman_config/install_window.py:211 +msgid "Copyright: " +msgstr "Πνευματικὰ δικαιώματα: " + +#: keyman_config/install_window.py:245 +msgid "Details" +msgstr "Λεπτομέρειες" + +#: keyman_config/install_window.py:248 +msgid "README" +msgstr "README" + +#: keyman_config/install_window.py:256 keyman_config/view_installed.py:200 +msgid "_Install" +msgstr "_Install" + +#: keyman_config/install_window.py:260 +msgid "_Cancel" +msgstr "_Cancel" + +#: keyman_config/install_window.py:305 +#, python-brace-format +msgid "Keyboard {name} installed" +msgstr "Τὸ πληκτρολόγιο {name} ἐγκατεστάθη" + +#: keyman_config/install_window.py:310 keyman_config/install_window.py:315 +#, python-brace-format +msgid "Keyboard {name} could not be installed." +msgstr "Τὸ πληκτρολόγιο {name} δὲν μπόρεσε νὰ ἐγκατασταθεῖ." + +#: keyman_config/install_window.py:311 +msgid "Error Message:" +msgstr "Μήνυμα σφάλματος:" + +#: keyman_config/install_window.py:316 +msgid "Warning Message:" +msgstr "Προειδοποιητικὸ μήνυμα:" + +#: keyman_config/keyboard_details.py:37 +#, python-brace-format +msgid "{name} keyboard" +msgstr "πληκτρολόγιο {name}" + +#: keyman_config/keyboard_details.py:53 +msgid "ERROR: Keyboard metadata is damaged.\n" +"Please \"Uninstall\" and then \"Install\" the keyboard." +msgstr "ΣΦΑΛΜΑ: Ζημία σὲ μεταδεδομένα πληκτρολογίου.\n" +"Παρακαλοῦμε \"Ἀπεγκαταστῆστε\" καὶ κατόπιν \"Ἐγκαταστῆστε\" τὸ πληκτρολόγιο." + +#: keyman_config/keyboard_details.py:74 +msgid "Package name: " +msgstr "Ὄνομα πακέτου: " + +#: keyman_config/keyboard_details.py:85 +msgid "Package id: " +msgstr "Id πακέτου: " + +#: keyman_config/keyboard_details.py:108 +msgid "Package description: " +msgstr "Περιγραφὴ πακέτου: " + +#: keyman_config/keyboard_details.py:121 +msgid "Package author: " +msgstr "Κατασκευαστὴς πακέτου: " + +#: keyman_config/keyboard_details.py:133 +msgid "Package copyright: " +msgstr "Πνευματικὰ δικαιώματα πακέτου: " + +#: keyman_config/keyboard_details.py:174 +msgid "Keyboard filename: " +msgstr "Ὄνομα ἀρχείου πακέτου: " + +#: keyman_config/keyboard_details.py:187 +msgid "Keyboard name: " +msgstr "Ὄνομα πληκτρολογίου: " + +#: keyman_config/keyboard_details.py:198 +msgid "Keyboard id: " +msgstr "Id πληκτρολογίου: " + +#: keyman_config/keyboard_details.py:209 +msgid "Keyboard version: " +msgstr "Ἔκδοση πληκτρολογίου: " + +#: keyman_config/keyboard_details.py:221 +msgid "Keyboard author: " +msgstr "Σχεδιαστὴς πληκτρολογίου: " + +#: keyman_config/keyboard_details.py:232 +msgid "Keyboard license: " +msgstr "Ἄδεια χρήσης πληκτρολογίου: " + +#: keyman_config/keyboard_details.py:243 +msgid "Keyboard description: " +msgstr "Περιγραφὴ πληκτρολογίου: " + +#: keyman_config/keyboard_details.py:334 +#, python-brace-format +msgid "Scan this code to load this keyboard\n" +"on another device or share online" +msgstr "Σαρῶστε αὐτὸν τὸν κωδικὸ γιὰ νὰ φορτώσετε αὐτὸ τὸ πληκτρολόγιο\n" +"σὲ ἄλλη συσκευὴ ἢ μοιρασθῆτε το ὀνλάϊν" + +#: keyman_config/options.py:24 +#, python-brace-format +msgid "{packageId} Settings" +msgstr "Ρυθμίσεις {packageId}" + +#: keyman_config/view_installed.py:30 +msgid "Keyman Configuration" +msgstr "Παράμετροι Keyman" + +#: keyman_config/view_installed.py:60 +msgid "Choose a kmp file..." +msgstr "Ἐπιλέξτε ἀρχεῖο kmp..." + +#. i18n: file type in file selection dialog +#: keyman_config/view_installed.py:65 +msgid "KMP files" +msgstr "Ἀρχεῖα KMP" + +#. i18n: column header in table displaying installed keyboards +#: keyman_config/view_installed.py:141 +msgid "Icon" +msgstr "Εἰκονίδιο" + +#. i18n: column header in table displaying installed keyboards +#: keyman_config/view_installed.py:145 +msgid "Name" +msgstr "Ὄνομα" + +#. i18n: column header in table displaying installed keyboards +#: keyman_config/view_installed.py:148 +msgid "Version" +msgstr "Ἔκδοση" + +#: keyman_config/view_installed.py:161 +msgid "_Uninstall" +msgstr "_Uninstall" + +#: keyman_config/view_installed.py:162 keyman_config/view_installed.py:304 +msgid "Uninstall keyboard" +msgstr "Ἀπεγκαταστῆστε πληκτρολόγιο" + +#: keyman_config/view_installed.py:167 +msgid "_About" +msgstr "_About" + +#: keyman_config/view_installed.py:168 keyman_config/view_installed.py:306 +msgid "About keyboard" +msgstr "Περὶ τοῦ πληκτρολογίου" + +#: keyman_config/view_installed.py:173 +msgid "_Help" +msgstr "_Help" + +#: keyman_config/view_installed.py:174 keyman_config/view_installed.py:305 +msgid "Help for keyboard" +msgstr "Βοήθεια γιὰ τὸ πληκτρολόγιο" + +#: keyman_config/view_installed.py:179 +msgid "_Options" +msgstr "_Options" + +#: keyman_config/view_installed.py:180 keyman_config/view_installed.py:307 +msgid "Settings for keyboard" +msgstr "Ρυθμίσεις πληκτρολογίου" + +#: keyman_config/view_installed.py:190 +msgid "_Refresh" +msgstr "_Refresh" + +#: keyman_config/view_installed.py:191 +msgid "Refresh keyboard list" +msgstr "Ἀνανεῶστε τὸν κατάλογο πληκτρολογίων" + +#: keyman_config/view_installed.py:195 +msgid "_Download" +msgstr "_Download" + +#: keyman_config/view_installed.py:196 +msgid "Download and install a keyboard from the Keyman website" +msgstr "Κατεβάστε καὶ ἐγκαταστῆστε πληκτρολόγιο ἀπὸ τὸν ἱστότοπο Keyman" + +#: keyman_config/view_installed.py:201 +msgid "Install a keyboard from a file" +msgstr "Ἐγκαταστῆστε πληκτρολόγιο ἀπὸ ἀρχεῖο" + +#: keyman_config/view_installed.py:206 +msgid "Close window" +msgstr "Κλεῖστε τὸ παράθυρο" + +#: keyman_config/view_installed.py:278 +#, python-brace-format +msgid "Uninstall keyboard {package}" +msgstr "Ἀπεγκαταστῆστε πληκτρολόγιο {package}" + +#: keyman_config/view_installed.py:280 +#, python-brace-format +msgid "Help for keyboard {package}" +msgstr "Βοήθεια γιὰ πληκτρολόγιο {package}" + +#: keyman_config/view_installed.py:282 +#, python-brace-format +msgid "About keyboard {package}" +msgstr "Περὶ τοῦ πληκτρολογίου {package}" + +#: keyman_config/view_installed.py:284 +#, python-brace-format +msgid "Settings for keyboard {package}" +msgstr "Ρυθμίσεις πληκτρολογίου {package}" + +#: keyman_config/view_installed.py:349 +msgid "Uninstall keyboard package?" +msgstr "Θὰ ἀπεγκαταστήσετε τὸ πακέτο πληκτρολογίου;" + +#: keyman_config/view_installed.py:351 +#, python-brace-format +msgid "Are you sure that you want to uninstall the {keyboard} keyboard and its fonts?" +msgstr "Εἶσθε βέβαιοι ὅτι θέλετε νὰ ἀπεγκαταστήσετε τὸ πληκτρολόγιο {keyboard} καὶ τὶς γραμματοσειρές του;" + +#: keyman_config/welcome.py:22 +#, python-brace-format +msgid "{name} installed" +msgstr "Τὸ {name} ἐγκατεστάθη" + +#: keyman_config/welcome.py:40 +msgid "Open in _Web browser" +msgstr "Ἀνοῖξτε στὸν φυλλομετρητὴ _Web" + +#: keyman_config/welcome.py:42 +msgid "Open in the default web browser to do things like printing" +msgstr "Ἀνοῖξτε στὸν προεπιλεγμένο φυλλομετρητὴ γιὰ νὰ ἐκτελέσετε π.χ., μία ἐκτύπωση" + +#: keyman_config/welcome.py:45 +msgid "_OK" +msgstr "_OK" + diff --git a/mac/Keyman4MacIM/Keyman4MacIM/KMAboutWindow/el-polyton.lproj/KMAboutWindowController.strings b/mac/Keyman4MacIM/Keyman4MacIM/KMAboutWindow/el-polyton.lproj/KMAboutWindowController.strings new file mode 100644 index 00000000000..a6dc5d6122c --- /dev/null +++ b/mac/Keyman4MacIM/Keyman4MacIM/KMAboutWindow/el-polyton.lproj/KMAboutWindowController.strings @@ -0,0 +1,8 @@ +/* button text to close the About window */ +"Kab-Up-fYH.title" = "Κλεῖστε"; + +/* text of link to the license agreement */ +"hYC-Bx-aoP.title" = "Ἄδεια χρήσης"; + +/* button text to open Configuration window */ +"vkh-b5-vO7.title" = "Παράμετροι..."; diff --git a/mac/Keyman4MacIM/Keyman4MacIM/KMConfiguration/el-polyton.lproj/preferences.strings b/mac/Keyman4MacIM/Keyman4MacIM/KMConfiguration/el-polyton.lproj/preferences.strings new file mode 100644 index 00000000000..6b750343d00 --- /dev/null +++ b/mac/Keyman4MacIM/Keyman4MacIM/KMConfiguration/el-polyton.lproj/preferences.strings @@ -0,0 +1,38 @@ +/* Checkbox text to always show on-screen keyboard */ +"4UX-80-0Vo.title" = "Νὰ ἐμφανίζεται πάντοτε τὸ πληκτρολόγιο ὀθόνης"; + +/* Checkbox text to enable verbose Console logging */ +"7J6-zy-R20.title" = "Χρησιμοποιῆστε λεπτομερῆ καταγραφὴ μηνυμάτων κονσόλας"; + +/* Support button text */ +"93O-x6-RLF.label" = "Ὑποστήριξη"; + +/* Download Keyboard button text */ +"CTw-kf-WNS.title" = "Κατεβάστε πληκτρολόγιο..."; + +/* Keyman Configuration window title */ +"F0z-JX-Cv5.title" = "Παράμετροι Keyman"; + +/* button text to go back to previous page */ +"JOK-JV-n8w.title" = "Πίσω"; + +/* Keyboards button text */ +"MPN-9N-wWc.label" = "Πληκτρολόγια"; + +/* text to explain verbose Console logging option */ +"MrI-GM-7d6.title" = "Ὅταν εἶναι ἐνεργὴ ἡ λεπτομερὴς καταγραφὴ μηνυμάτων κονσόλας, τὸ Keyman θὰ καταγράφει ἐνέργειες ποὺ θὰ βοηθήσουν τὴν ὁμάδα ὑποστήριξης Keyman νὰ διαγνώσει τυχὸν πρόβλημα. Μὲ τὸ πρόγραμμα κονσόλας μπορεῖτε νὰ δεῖτε τὰ μηνύματα τοῦ Keyman σὲ ἀρχεῖο. Στὴν Κονσόλα φιλτράρετε καὶ προβάλετε ὅλα τὰ μηνύματα ἀπὸ τὴν διεργασία \"Keyman\". Ἂν χρειασθεῖ, αὐτὴ ἡ ἀναφορὰ μπορεῖ νὰ ἐξαχθεῖ καὶ νὰ ἀποσταλεῖ στὴν ὑποστήριξη τοῦ Keyman."; + +/* button text to move forward to the next page */ +"eXr-8V-h1g.title" = "Μπροστά"; + +/* button text to return to the home help page */ +"fXS-aC-CMH.title" = "Ἀρχική"; + +/* Options button text */ +"frd-No-seV.label" = "Ἐπιλογές"; + +/* Installed Keyboard column heading */ +"jex-Nd-Qzg.headerCell.title" = "Ἐγκατεστημένο Πληκτρολόγιο"; + +/* Verbose logging tooltip text */ +"uWx-3J-U0D.ibShadowedToolTip" = "Ἐνεργοποιῆστε ἂν ἔχετε προβλήματα μὲ ἕνα συγκεκριμένο πληκτρολόγιο ἢ μὲ τὸ Keyman γενικῶς."; diff --git a/mac/Keyman4MacIM/Keyman4MacIM/KMInfoWindow/el-polyton.lproj/KMInfoWindowController.strings b/mac/Keyman4MacIM/Keyman4MacIM/KMInfoWindow/el-polyton.lproj/KMInfoWindowController.strings new file mode 100644 index 00000000000..af78cc7f5f8 --- /dev/null +++ b/mac/Keyman4MacIM/Keyman4MacIM/KMInfoWindow/el-polyton.lproj/KMInfoWindowController.strings @@ -0,0 +1,8 @@ +/* Package Information window title */ +"F0z-JX-Cv5.title" = "Πληροφορίες πακέτου"; + +/* button text to show Details */ +"Fvy-XJ-s38.label" = "Λεπτομέρειες"; + +/* button text to show Read Me */ +"waA-IW-Qyn.label" = "Read Me"; diff --git a/mac/Keyman4MacIM/Keyman4MacIM/KMKeyboardHelpWindow/el-polyton.lproj/KMKeyboardHelpWindowController.strings b/mac/Keyman4MacIM/Keyman4MacIM/KMKeyboardHelpWindow/el-polyton.lproj/KMKeyboardHelpWindowController.strings new file mode 100644 index 00000000000..ed234ea2e29 --- /dev/null +++ b/mac/Keyman4MacIM/Keyman4MacIM/KMKeyboardHelpWindow/el-polyton.lproj/KMKeyboardHelpWindowController.strings @@ -0,0 +1,8 @@ +/* Keyboard Help window title */ +"F0z-JX-Cv5.title" = "Βοήθεια γιὰ τὸ πληκτρολόγιο"; + +/* OK button text */ +"Zla-QF-m0K.title" = "OK"; + +/* Print button text */ +"fYY-Uj-y4S.title" = "Ἐκτυπῶστε..."; diff --git a/mac/Keyman4MacIM/Keyman4MacIM/el-polyton.lproj/Localizable.strings b/mac/Keyman4MacIM/Keyman4MacIM/el-polyton.lproj/Localizable.strings new file mode 100644 index 00000000000..006c96a99c2 --- /dev/null +++ b/mac/Keyman4MacIM/Keyman4MacIM/el-polyton.lproj/Localizable.strings @@ -0,0 +1,74 @@ +/* Message displayed to confirm delete of the Keyman keyboard selected by the user from the keyboard list */ +"message-confirm-delete-keyboard" = "Εἶσθε βέβαιοι ὅτι θέλετε νὰ διαγράψετε τὸ πληκτρολόγιο '%@';"; + +/* Delete keyboard confirmation info indicating that the delete action cannot be undone */ +"info-cannot-undo-delete-keyboard" = "Δὲν μπορεῖτε νὰ ἀναιρέσετε αὐτὴν τὴν ἐνέργεια."; + +/* Button text to cancel delete of the specified installed Keyman keyboard */ +"button-cancel-delete-keyboard" = "Ἀκυρῶστε"; + +/* Button text to confirm delete of the specified installed Keyman keyboard */ +"button-delete-keyboard" = "Διαγράψτε"; + +/* Message displayed to confirm installation of a keyboard from the specifed .kmp file double-clicked by the user */ +"message-confirm-install-keyboard" = "Θὰ ἐγκαταστήσετε πληκτρολόγιο Keyman;"; + +/* Message displayed to confirm installation of a keyboard from the specifed .kmp file double-clicked by the user */ +"info-install-keyboard-filename" = "Θέλετε ἡ ἐφαρμογὴ Keyman νὰ ἐγκαταστήσει τὸ πληκτρολόγιο ἀπὸ τὸ ἀρχεῖο '%@';"; + +/* Button text to cancel installation of the double-clicked Keyman file */ +"button-cancel-install-keyboard" = "Ἀκυρῶστε"; + +/* Button text to confirm installation of the double-clicked Keyman file */ +"button-install-keyboard" = "Ἐγκαταστῆστε"; + +/* Message displayed to inform user that .kmp file could not be read/unzipped */ +"message-keyboard-file-unreadable" = "Δὲν μπορέσαμε νὰ διαβάσομε τὸ ἀρχεῖο Keyman '%@'."; + +/* Message displayed in Configuration window when keyboard cannot be loaded */ +"message-error-loading-keyboard" = "(σφάλμα κατὰ τὴν φόρτωση πληκτρολογίου)"; + +/* Message displayed in Configuration window when keyboard metadata cannot be loaded */ +"message-error-unknown-metadata" = "ἄγνωστο"; + +/* Button text to acknowledge that .kmp file could not be read */ +"button-keyboard-file-unreadable" = "OK"; + +/* label text to identify Keyman version */ +"version-label-text" = "Ἔκδοση: %@"; + +/* Status text for keyboard downloading */ +"message-keyboard-downloading" = "Μεταφόρτωση σὲ ἐξέλιξη..."; + +/* Status text for keyboard download complete */ +"message-keyboard-download-complete" = "Ὁλοκλήρωση φόρτωσης."; + +/* Button text to cancel downloading keyboard */ +"button-cancel-downloading" = "Ἀκυρῶστε"; + +/* Button text keyboard download complete */ +"button-download-complete" = "Ἕτοιμοι"; + +/* keyboards label in the Package Information window */ +"keyboards-label" = "Πληκτρολόγια:"; + +/* fonts label in the Package Information window */ +"fonts-label" = "Γραμματοσειρές:"; + +/* package version label in the Package Information window */ +"package-version-label" = "Ἔκδοση πακέτου:"; + +/* author label in the Package Information window */ +"author-label" = "Δημιουργός:"; + +/* website label in the Package Information window */ +"website-label" = "Ἱστότοπος:"; + +/* copyright label in the Package Information window */ +"copyright-label" = "Πνευματικὰ δικαιώματα:"; + +/* message displayed to alert user to need grant accessibility permission */ +"privacy-alert-text" = "Τὸ Keyman, γιὰ νὰ λειτουργήσει σωστά, ἀπαιτεῖ ὁρισμένες δυνατότητες προσπέλασης:\n\nἘπιτρέψτε τὴν πρόσβαση στὶς Προτιμήσεις Συστήματος, τὴν Ἀσφάλεια & Ἰδιωτικότητα.\nἘπανεκκινῆστε τὸ σύστημά σας."; + +/* Text of menu item in Input Menu when no Keyboards are configured -- include parentheses */ +"no-keyboard-configured-menu-placeholder" = "(Δὲν ἔχει ἐγκατασταθεῖ πληκτρολόγιο)"; diff --git a/mac/Keyman4MacIM/Keyman4MacIM/el-polyton.lproj/MainMenu.strings b/mac/Keyman4MacIM/Keyman4MacIM/el-polyton.lproj/MainMenu.strings new file mode 100644 index 00000000000..dc5aae4d89c --- /dev/null +++ b/mac/Keyman4MacIM/Keyman4MacIM/el-polyton.lproj/MainMenu.strings @@ -0,0 +1,14 @@ +/* Configuration window menu text */ +"P1b-lE-yFw.title" = "Διαμόρφωση..."; + +/* Keyboards menu text */ +"bQa-j9-nHe.title" = "Πληκτρολόγια"; + +/* Keyboards menu text */ +"goP-aK-3WB.title" = "Πληκτρολόγια"; + +/* About menu text */ +"kb2-ww-RS3.title" = "Περὶ ἡμῶν"; + +/* On-Screen Keyboard menu text */ +"s96-JI-YDh.title" = "Πληκτρολόγιο ὀθόνης"; diff --git a/windows/src/desktop/kmshell/locale/el-polyton/strings.xml b/windows/src/desktop/kmshell/locale/el-polyton/strings.xml new file mode 100644 index 00000000000..04263b70133 --- /dev/null +++ b/windows/src/desktop/kmshell/locale/el-polyton/strings.xml @@ -0,0 +1,915 @@ + + + + + + + Ἀ. Δεληγιάννη + + + + Segoe UI + + + + 9 + + + + &Ναί + + + + &Ὄχι + + + + OK + + + + Ἀκύρωση + + + + Κλεῖστε + + + + OK + + + + Ἀκύρωση + + + + Προσθέστε/ἀφαιρέστε γλῶσσα... + + + + Πατῆστε αὐτὸ τὸ εἰκονίδιο γιὰ νὰ ἐπιλέξετε γλῶσσα + + + + Τὸ Keyman λειτουργεῖ ἀκόμα. Γιὰ νὰ χρησιμοποιήσετε τὸ πληκτρολόγιο γλώσσας σας, πατῆστε σ\' αὐτὸ τὸ εἰκονίδιο + + + + Τὸ Keyman βρίσκεται ἤδη σὲ λειτουργία. Πατῆστε τὸ εἰκονίδιο Keyman στὴν περιοχὴ εἰδοποιήσεων συστήματος γιὰ νὰ χρησιμοποιήσετε τὸ πληκτρολόγιο τῆς γλώσσας σας + + + + Παραμετροποίηση Keyman + + + + Βοήθεια + + + + Ἀπεγκατάσταση + + + + Ἐνεργοποίηση + + + + Ἀπενεργοποίηση + + + + Πληκτρολόγια + + + + K + + + + Ἐπιλογές + + + + O + + + + Πλῆκτρα συντομεύσεως + + + + H + + + + Ὑποστήριξη + + + + S + + + + Παραμείνετε σὲ ἐπαφή + + + + T + + + + Ὄνομα ἀρχείου: + + + + Ἔκδοση πακέτου: + + + + Ἔκδοση πληκτρολογίου: + + + + Δημιουργός: + + + + Ἱστότοπος: + + + + Πακέτο: + + + + Γραμματοσειρές: + + + + Πληκτρολόγια: + + + + Πληκτρολόγιο: + + + + Γλῶσσα πληκτρολογίου: + + + + Κωδικοποιήσεις: + + + + Τύπος πληκτρολογίου: + + + + Σταθερό (σύμφωνα μὲ τὴν θέση) + + + + Σύμφωνα μὲ τὴν διάταξη τῶν Windows (Μνημονικό) + + + + Γλῶσσες: + + + + + + + + Προσθέστε γλῶσσα + + + + Προσθέστε/ἀφαιρέστε γλῶσσα + + + + Πληκτρολόγιο ὀθόνης: + + + + Ἐξατομικευμένο + + + + Ἐγκατεστημένο + + + + Μὴ ἐγκατεστημένο + + + + Τεκμηρίωση: + + + + Ἐγκατεστημένη + + + + Μὴ ἐγκατεστημένη + + + + Μήνυμα: + + + + Πνευματικὰ δικαιώματα: + + + + Οἱ ἀλλαγὲς ἐφαρμόζονται ἀμέσως + + + + Ἐγκαταστῆστε πληκτρολόγιο... + + + + Κατεβάστε πληκτρολόγιο... + + + + Ἐπιλογὲς πληκτρολογίου... + + + + Δὲν ἔχετε ἐγκατεστημένα πληκτρολόγια. Πατῆστε τὸ πλῆκτρο \"Κατεβάστε πληκτρολόγιο\" καὶ ἐγκαταστῆστε ἕνα πληκτρολόγιο ἀπὸ τὸν ἱστότοπο τοῦ Keyman. + + + + + Μπορεῖτε νὰ ἀφαιρέσετε τὸ πληκτρολόγιο \'%1$s\' μόνον ἂν εἶσθε Διαχειριστής + + + + Μοιρασθῆτε πληκτρολόγιο + + + + Σαρῶστε αὐτὸν τὸν κωδικό γιὰ νὰ φορτώσετε τὸ πληκτρολόγιο σὲ ἄλλη συσκευή ἢ + + + + μοιρασθῆτε ὀνλάϊν + + + + + + + + Γενικά + + + + Ἔναρξη + + + + Πληκτρολόγιο ὀθόνης + + + + Προχωρημένες ἐπιλογές + + + + Τὰ πλῆκτρα συντομεύσεως ἀνοιγοκλείνουν τὴν ἐνεργοποίηση τοῦ πληκτρολογίου + + + + Ἐξομοιῶστε τὸ AltGr μὲ τὸ Ctrl+Alt + + + + Χρησιμοποιῆστε τὰ νεκρὰ πλῆκτρα ὡς συνήθη πλῆκτρα + + + + Προβάλετε μηνύματα-ὑποδείξεις + + + + Ἀναφέρετε σφάλματα στὸ keyman.com αὐτομάτως + + + + Μοιρασθῆτε ἀνώνυμα στατιστικὰ στοιχεῖα χρήσεως μὲ τὸ keyman.com + + + + Ἔναρξη μαζὶ μὲ τὰ Windows + + + + Προβάλετε τὴν ἐναρκτήρια ὀθονη + + + + Προβάλετε τὴν ὀθόνης καλωσορίσματος + + + + Νὰ ἐλέγχετε σὲ ἑβδομαδιαία βάση τὸ keyman.com γιὰ ἐνημερώσεις + + + + Κατὰ τὴν ἔναρξη τοῦ Keyman, νὰ ἐξετάζετε ἂν ὑπάρχουν μὴ συμβατὲς ἐφαρμογές + + + + Μετὰ τὸ πάτημα πλήκτρου νὰ ἐλευθερώνετε τὸ Shift/Ctrl/Alt στὸ πληκτρολόγιο ὀθόνης + + + + Ὅταν ἐπιλέγετε πληκτρολόγιο Keyman, νὰ προβάλλετε πάντα τὸ πληκτρολόγιο ὀθόνης + + + + Μόλις ἐπιλεγεῖ πληκτρολόγιο νὰ ἐμφανίζεται αὐτομάτως τὸ κατάλληλο πληκτρολόγιο ὀθόνης ἢ ὀθόνη βοηθείας + + + + Διερεύνηση σφαλμάτων + + + + Πληκτρολόγιο ἀφετηρίας... + + + + + + + + + + + + + (δὲν ἔχει ὁρισθεῖ πλῆκτρο συντομεύσεως) + + + + Κλεῖστε τὸ Keyman + + + + Ἀνοῖξτε τὸ μενοῦ τοῦ πληκτρολογίου + + + + Προβάλετε τὸ πληκτρολόγιο ὀθόνης + + + + Ἀνοῖξτε τὴν παραμετροποίηση + + + + Προβάλετε τὸν βοηθὸ γραμματοσειρῶν + + + + Προβάλετε τὸν χάρτη χαρακτήρων + + + + Ἀνοῖξτε τὸν ἐπεξεργαστὴ κειμένου + + + + Ἀνοῖξτε τὴν ἐναλλαγὴ γλώσσας + + + + Γενικὰ πλῆκτρα συντομεύσεως + + + + Διατάξεις πληκτρολογίου + + + + Ἂν ἔχετε προβλήματα μὲ τὴν χρήση τοῦ Keyman, ὑποβάλετε ἐρώτημα στὸ φόρουμ τῆς κοινότητας Keyman. + + + + Ἀνοῖξτε τὸ φόρουμ τῆς κοινότητας Keyman + + + + Δημιουργός: SIL International + + + + Πνευματικὰ δικαιώματα © SIL International. All Rights Reserved. + + + + Ἔκδοση + + + + Χρήσιμοι σύνδεσμοι + + + + Βοήθεια ὀνλάϊν + + + + Δεῖτε ἂν ὑπάρχουν ἐνημερώσεις + + + + Ρυθμίσεις ἐνδιάμεσου διακομιστῆ... + + + + Ρυθμίσεις συστήματος Keyman... + + + + Διαγνωστικά + + + + Κατεβάστε πληκτρολόγιο ἀπὸ τὸ keyman.com + + + + Μὴν ἐγκαθιστᾶτε, ἁπλῶς κατεβάστε + + + + + Ἀδύνατον νὰ κατεβάσομε πληκτρολόγιο, σφάλμα %2$d: %1$s + + + + < Πίσω + + + + Ἐγκαταστῆστε πληκτρολόγιο / πακέτο + + + + Λεπτομέρειες + + + + Readme + + + + Ἐγκαταστῆστε + + + + Παραμετροποίηση ἐνδιάμεσου διακομιστῆ (proxy) + + + + Διακομιστής: + + + + Θύρα: + + + + Ὄνομα χρήστη: + + + + Συνθηματικὸς κωδικός: + + + + Ὁρίστε τὸ βασικὸ πληκτρολόγιο + + + + Ἐπιλέξτε τὸ βασικὸ λατινικὸ πληκτρολόγιο ποὺ χρησιμοποιεῖτε στὰ Windows. Τὰ πληκτρολόγια Κῆμαν θὰ προσαρμοσθοῦν αὐτομάτως στὴν διάταξη πληκτρων ποὺ προτιμᾶτε. + + + + Ἀλλάξτε πλῆκτρο συντομεύσεως + + + + + Ἐπιλέξτε ἕνα σύνηθες πλῆκτρο συντομεύσεως. Ἐναλλακτικά, ἐπιλέξτε \'Ἐξατομικευμένο\', κρατῆστε πατημένα τὰ Ctrl,Shift καὶ/ἢ Alt καὶ πληκτρολογῆστε τὸ ἐπιθυμητὸ πλῆκτρο συντομεύσεως γιὰ τὴν γλῶσσα %1$s: + + + + Ἐπιλέξτε ἕνα σύνηθες πλῆκτρο συντομεύσεως. Ἐναλλακτικά, ἐπιλέξτε \"Ἐξατομικευμένο\", κρατῆστε πατημένα τὰ Ctrl,Shift καὶ/ἢ Alt καὶ πληκτρολογῆστε τὸ πλῆκτρο συντομεύσεως ποὺ ἐπιθυμεῖτε: + + + + + Τὸ πλῆκτρο συντομεύσεως %1$s δημιουργεῖ πρόβλημα στὴν κανονικὴ χρήση τοῦ πληκτρολογίου. Πρέπει νὰ χρησιμοποιήσετε τοὐλάχιστον τὸ Ctrl ἢ τὸ Alt. Θέλετε νὰ τὸ ἀλλάξετε τώρα\; + + + + + Τὸ πλῆκτρο συντομεύσεως %1$s δημιουργεῖ πρόβλημα στὸ πλῆκτρο συντομεύσεως ποὺ ἔχετε ἐπιλέξει γιὰ τὸ πληκτρολόγιο %2$s. Ἂν συνεχίσετε, τὸ πλῆκτρο συντομεύσεως γιὰ τὸ %2$s θὰ διαγραφεῖ. Θὰ συνεχίσετε\; + + + + + Τὸ πλῆκτρο συντομεύσεως %1$s δημιουργεῖ πρόβλημα σὲ ἄλλο πλῆκτρο συντομεύσεως. Ἂν συνεχίσετε, τὸ ἄλλο πλῆκτρο θὰ διαγραφεῖ. Θὰ συνεχίσετε\; + + + + Ὑπάρχουν συνιστῶσες Keyman πρὸς ἐνημέρωσιν + + + + Ὑπάρχουν ἐνημερώσεις Keyman πρὸς ἐγκατάστασιν + + + + Παρακαλοῦμε ἐπιλέξτε ποιὲς ἐνημερώσεις θέλετε νὰ ἐγκαταστήσετε: + + + + Μπορεῖτε νὰ κατεβάσετε τὴν νέα ἔκδοση ἀπὸ τό: + + + + Ἐγκαταστῆστε τώρα + + + + Ἀκυρῶστε + + + + Παλαιὰ ἔκδοση + + + + Ἐνημερωμένη συνιστῶσα + + + + Μέγεθος + + + + + Keyman %1$s + + + + + Πληκτρολόγιο %1$s %2$s + + + + Ἀδυναμία ἐπικοινωνίας μὲ τὸ keyman.com - Παρακαλοῦμε βεβαιωθῆτε ὅτι ἔχετε ἐνεργὴ διαδικτυακὴ σύνδεση καὶ ξαναδοκιμάστε. + + + + + Ἀδυναμία ἐπικοινωνίας μὲ τὸ keyman.com - Παρακαλοῦμε βεβαιωθῆτε ὅτι ἔχετε ἐνεργὴ διαδικτυακὴ σύνδεση καὶ ξαναδοκιμάστε. Τὸ ληφθὲν σφάλμα ἦταν: %1$s + + + + Ὑπάρχουν διαθέσιμες ἐνημερώσεις Keyman + + + + Πατῆστε σ΄ αὐτὸ τὸ εἰκονίδιο γιὰ νὰ κατεβάσετε καὶ νὰ ἐγκαταστήσετε ἐνημερώσεις + + + + Δεῖτε καὶ &ἐγκαταστῆστε ἐνημερώσεις Keyman + + + + Τερματισμὸς ἐλέγχου ὀνλάϊν ἐνημερώσεων + + + + Keyman + + + + Ἔναρξη Keyman + + + + Ἔξοδος + + + + Παραμετροποίηση + + + + Προβάλλετε αὐτὴν τὴν ὀθόνη κατὰ τὴν ἐκκίνηση + + + + Γλῶσσα προβολῆς + + + + Βρεῖτε ὀνλάϊν ἄλλες γλῶσσες προβολῆς... + + + + Βοηθῆστε τὴν μετάφραση τῆς διεπαφῆς χρήστη... + + + + Ἑλληνικά Πολυτονικά + + + + Ἑλληνικά Πολυτονικά (Greek Polytonic) + + + + el + + + + en + + + + Keyman + + + + Ἐπαναφέρετε τὰ μηνύματα-ὑποδείξεις + + + + Ὅλα τὰ μηνύματα-ὑποδείξεις ἐπανῆλθαν καὶ θὰ ἐπαναπροβληθοῦν. + + + + + Θέλετε νὰ τερματίσετε τὸ Keyman\; + + + + + Σίγουρα θέλετε νὰ βγῆτε ἀπὸ τὸ Keyman\; Τὰ πληκτρολόγια Keyman θὰ ἐξακολουθοῦν νὰ ἐμφανίζονται στὶς γλῶσσες τῶν Windows, ἀλλὰ δὲν θὰ εἶναι λειτουργικὰ μέχρι νὰ ἐπανεκκινήσετε τὸ Keyman. + + + + + Τὸ πληκτρολόγιο ὀθόνης ἔκλεισε + + + + + Κλείσατε τὸ πληκτρολόγιο ὀθόνης. Τὸ Keyman λειτουργεῖ ἀκόμα. Μπορεῖτε νὰ ἀνοίξετε ὁποτεδήποτε τὸ πληκτρολόγιο ὀθόνης πατῶντας στὸ εἰκονίδιο τοῦ Keyman καὶ ἐπιλέγοντας \"Πληκτρολόγιο ὀθόνης\" + + + + Μὴν ξαναπροβάλετε αὐτὴν τὴν ὑπόδειξη + + + + Βοήθεια Keyman + + + + Περιεχόμενα βοήθειας + + + + Βοήθεια γιὰ τὸ \" + + + + πληκτρολόγιο \" + + + + Δεῖτε τὸ πληκτρολόγιο ὀθόνης + + + + Δεῖτε τὸν βοηθὸ γραμματοσειρῶν + + + + Δεῖτε τὸν πίνακα τῶν χαρακτήρων + + + + Ἀνοῖξτε τὴν παραμετροποίηση τοῦ Κῆμαν + + + + Ἀνοῖξτε τὴν βοήθεια + + + + Κλεῖστε τὸ πληκτρολόγιο ὀθόνης + + + + Ἀπενεργοποιῆστε τὸ Κῆμαν + + + + Πληκτρολόγιο &ὀθόνης + + + + &Ἀνεύρεση γραμματοσειρῶν + + + + Πίνακας &χαρακτήρων + + + + &Ἐπεξεργαστὴς κειμένου... + + + + &Παραμετροποίηση... + + + + &Βοήθεια... + + + + Ἔ&ξοδος + + + + Ὅταν εἶναι ἀνενεργό, νὰ ἀχνοφαίνεται + + + + Νὰ ἐμφανίζεται ἡ γραμμὴ ἐργαλείων + + + + Ἀποθηκεῦστε ὡς ἱστοσελίδα... + + + + Ἐκτυπῶστε... + + + + Keyman + + + + + Ἔκδοση %1$s + + + + Ἐ&κτυπῶστε... + + + + + Ὑπάρχει ἤδη ἐγκατεστημένο πακέτο μέ ὄνομα %1$s. Θέλετε νὰ τὸ ἀπεγκαταστήσετε καὶ νὰ ἐγκαταστήσετε τὸ καινούργιο\; + + + + + Ἔχει ἤδη ἐγκατασταθεῖ πληκτρολόγιο μὲ ὄνομα \'%1$s\'. Ἂν συνεχίσετε, αὐτὸ θὰ ἀπεγκατασταθεῖ πρὶν ἐγκαταστήσετε τὸ καινούργιο. Νὰ συνεχίσομε\; + + + + + Τὸ πληκτρολόγιο \'%1$s\' ἀνήκει στὸ πακέτο \'%2$s\'. Πρέπει νὰ ἀπεγκαταστήσετε ὁλόκληρο τὸ πακέτο. Νὰ συνεχίσομε\; + + + + + Ἀδυνατοῦμε νὰ ἐγκαταστήσομε μία ἀκόμα γλῶσσα· τὰ Windows ἔχουν ὅριο 4 ἐξατομικευμένων \'μεταβατικῶν\' γλωσσῶν καὶ ἴσως νὰ ἔχετε φθάσει σ΄ αὐτὸ τὸ ὅριο. + + + + + Τὸ πακέτο ἢ πληκτρολόγιο \'%1$s\' δὲν περιλαμβάνουν εἰσαγωγικὴ βοήθεια. + + + + Αὐτὸ τὸ λειτουργικὸ σύστημα δὲν ὑποστηρίζεται. + + + + KeymanDesktop.chm + + + + Τὸ ἀρχεῖο βοηθείας δὲν εὑρέθη. + + + + Κωδικοσελίδα + + + + Unicode + + + + Κατεβάζομε ἀρχεῖο + + + + + Σίγουρα θέλετε νὰ ἀφαιρέσετε τὸ πληκτρολόγιο ὀθόνης ποὺ ἔχει ἐγκατασταθεῖ γιὰ τὸ %1$s\; + + + + + Σίγουρα θέλετε νὰ ἀπεγκαταστήσετε τὸ πληκτρολόγιο %1$s\; + + + + + Σίγουρα θέλετε νὰ ἀπεγκαταστήσετε τὸ πακέτο %1$s\;\n\n%2$s + + + + + Θὰ ἀπεγκατασταθοῦν καὶ οἱ ἑξῆς γραμματοσειρές: %1$s. + + + + Ὁ Πίνακας Χαρακτήρων, γιὰ νὰ χρησιμοποιηθεῖ, ἀπαιτεῖ νὰ ἔχει κατασκευασθεῖ προηγουμένως μία βάση δεδομένων χαρακτήρων. Νὰ τὴν κατασκευάσομε τώρα\; + + + + + Ἡ βάση δεδομένων χαρακτήρων Unicode δὲν μπόρεσε νὰ διαγραφεῖ ὥστε νὰ ἀναδομηθεῖ. Λεπτομέρειες σφάλματο: %1$s + + + + + Ἡ βάση δεδομένων χαρακτήρων Unicode δὲν μπόρεσε νὰ δημιουργηθεῖ καὶ ἀπενεργοποιήθηκε. Λεπτομέρειες σφάλματο: %1$s + + + + + Ἡ βάση δεδομένων χαρακτήρων Unicode δὲν φορτώθηκε ἐπιτυχῶς (%1$s). Νὰ τὴν ἀναδομήσομε τώρα\; + + + + + Τὸ Keyman δὲν κατάφερε νὰ ξεκινήσει. Πρὶν συνεχίσετε, παρακαλοῦμε ἐλέγξτε τὶς ρυθμίσεις ἀσφαλείας σας γιὰ νὰ βεβαιωθῆτε ὅτι τὸ πρόγραμμα keyman.exe μπορεῖ νὰ ξεκινήσει. Τὸ ἐπιστραφὲν σφάλμα ἦταν:\n\n\"%1$s\"\n\nΘέλετε νὰ δοκιμάσετε νὰ ἐπανεκκινήσετε τώρα τὸ Keyman\; + + + + Οἱ πληροφορίες ἐντοπισμοῦ σφαλμάτων τοῦ Keyman θὰ ἀποθηκεύονται σὲ ἀρχεῖο-ἀναφορὰ μὲ τὸ ὄνομα %LOCALAPPDATA%\Keyman\Diag\system#.etl (ὅπου # εἶναι ἀριθμός). >>Γιὰ νὰ διαγράψετε αὐτὸ τὸ ἀρχεῖο, πρέπει νὰ βγῆτε ἀπὸ τὸ Keyman.\n\n\ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Αὐτὸ τὸ ἀρχεῖο μπορεῖ νὰ μεγαλώσει πολὺ γρήγορα. Ἡ ἐνεργοποίηση τοῦ ἐντοπισμοῦ σφαλμάτων μπορεῖ νὰ καταστήσει πολὺ βραδύτερο τὸ σύστημά σας, γι\' αὐτὸ θὰ πρέπει νὰ ἐκτελεῖται μόνον κατόπιν συστάσεως τῆς τεχνικῆς ὑποστήριξης.\n\nΠΡΟΕΙΔΟΠΟΙΗΣΗ ΙΔΙΩΤΙΚΟΤΗΤΟΣ: Παρακαλοῦμε σημειῶστε ὅτι στὸ ἀρχεῖο καταγραφῆς προβλημάτων ἀποθηκεύεται ὅ,τι πληκτρολογεῖτε στὸ πληκτρολόγιο. Ἡ ἐνεργοποίηση τοῦ ἀρχείου καταγραφῆς θὰ πρέπει νὰ γίνεται μόνον ὅσο διαρκεῖ μία ἀναζήτηση ἢ διάγνωση προβλήματος. + + + + Παρακαλοῦμε περιμένετε· ἀναζητοῦμε γραμματοσειρὲς γιὰ τὸ πληκτρολόγιο %1$s + + + + Τὸ πληκτρολόγιο %1$s δὲν εἶναι Unicode. Δὲν μποροῦν νὰ ἐντοπισθοῦν αὐτομάτως γραμματοσειρές. Γιὰ πληροφορίες γραμματοσειρῶν παρακαλοῦμε ἐλέγξτε τὴν τεκμηρίωση τοῦ πληκτρολογίου. + + + + Δὲν ἔχουν μέχρι στιγμῆς ἐγκατασταθεῖ ἢ φορτωθεῖ διατάξεις πληκτρολογίων. + + + + Παρακαλοῦμε ἀνοῖξτε ἕνα πληκτρολόγιο Κῆμαν καὶ βρῆτε ἀνάλογες γραμματοσειρές. + + + + Δὲν εὑρέθησαν προτάσεις γραμματοσειρῶν γιὰ τὸ πληκτρολόγιο %1$s. + + + + Ἐπεξεργαστὴς κειμένου - Keyman + diff --git a/windows/src/desktop/setup/locale/el-polyton/strings.xml b/windows/src/desktop/setup/locale/el-polyton/strings.xml new file mode 100644 index 00000000000..ddacddd5b8c --- /dev/null +++ b/windows/src/desktop/setup/locale/el-polyton/strings.xml @@ -0,0 +1,78 @@ + + + Ἑλληνικά Πολυτονικά + Ἐγκατάσταση $APPNAME $VERSION + Ἐγκαταστῆστε $APPNAME $VERSION + Τὸ $APPNAME $VERSION ἐγκατεστάθη ἐπιτυχῶς. + Εἶσθε βέβαιοι ὅτι θέλετε νὰ ἀκυρώσετε τὴν ἐγκατάσταση τοῦ $APPNAME? + Ἐξαγωγὴ πακέτου... + Ἔλεγχος πακέτων... + Ἀναζητοῦνται ἐνημερώσεις ὀνλάϊν... + Ἐλέγχονται ἐγκατεστημένες ἐκδόσεις... + Τελειώνουμε... + + • %1:s $APPNAME %0:s + + • %2:s %0:s %1:s + + • %3:s %0:s %1:s γιὰ %2:s + Δὲν ὑπάρχει τίποτε πρὸς ἐγκατάστασιν. + + (μεταφόρτωση %0:s) + Ἡ ἐγκατάσταση περιλαμβάνει: + Τὸ $APPNAME $VERSION προσφέρεται δωρεὰν καὶ εἶναι ἐφαρμογὴ ἀνοικτοῦ κώδικα + &Διαβάστε τὴν ἄδεια χρήσης + &Ἐπιλογὲς ἐγκατάστασης + Ἐγκατάσταση $APPNAME + OK + &Ἐγκατάσταση + Ἀκύρωση + Ἔξοδος + Ἐγκαθίσταται τὸ $APPNAME + Ἀφαιροῦνται παλαιότερες ἐκδόσεις + Ἡ ἐγκατάσταση ὁλοκληρώθηκε + Γιὰ νὰ ὁλοκληρωθεῖ ἡ ἐγκατάσταση, πρέπει νὰ ἐπανεκκινήσετε τὰ Windows. Ἀφοῦ τὸ κάνετε ἡ ἐγκατάσταση θὰ συνεχισθεῖ. + +Νὰ γίνει ἐπανεκκίνηση τώρα; + Τὰ Windows δὲν μπόρεσαν νὰ ξεκινήσουν αὐτομάτως. Θὰ πρέπει νὰ ἐπανεκκινήσετε τὰ Windows πρὶν προσπαθήσετε νὰ ξεκινήσετε τὸ $APPNAME. + Γιὰ νὰ ὁλοκληρώσετε τὴν ἐγκατάσταση θὰ πρέπει νὰ ἐπανεκκινήσετε τὰ Windows. Ὅταν τὸ κάνετε, ἡ ἐγκατάσταση θὰ τελειώσει. + Τὸ $APPNAME $VERSION ἀπαιτεῖ Windows 7 ἢ νεώτερα. Ὡστόσο ἀνιχνεύθηκαν τὰ Keyman Desktop 7, 8 ἢ 9. Θέλετε νὰ ἐγκαταστήσετε τὰ πληκτρολόγια ποὺ περιέχονται σὲ αὐτὸ τὸ πακέτο ἐγκατάστασης στὴν ἤδη ἐγκατεστημένη ἔκδοση τοῦ Keyman Desktop; + Αὐτὴ ἡ ἔκδοση τοῦ $APPNAME ἀπαιτεῖ τὰ Windows 7 ἢ νεώτερα. Θέλετε νὰ κατεβάσετε τὸ Keyman Desktop 8; + Ἐπιλογὲς ἐγκατάστασης + Ἐπιλογὲς ἐγκατάστασης + Προκαθορισμένες ρυθμίσεις $APPNAME + Ἑνότητες πρὸς ἐγκατάστασιν ἢ ἀναβάθμισιν + Ἡ γλῶσσα τοῦ πληκτρολογίου + Ἡ πρὸς ἐγκατάστασιν ἔκδοση + Ξεκινῆστε τὸ $APPNAME μόλις ξεκινήσουν τὰ Windows + Ξεκινῆστε τὸ $APPNAME μόλις ὁλοκληρωθεῖ ἡ ἐγκατάσταση + Ἐλέγχετε ὀνλάϊν περιοδικῶς ἂν ὑπάρχουν ἀναβαθμίσεις + Ἀναβαθμίστε πληκτρολόγια ἐγκατεστημένα μὲ παλαιότερες ἐκδόσεις στὴν ἔκδοση $VERSION + Μοιρασθῆτε ἀνώνυμα στατιστικὰ στοιχεῖα χρήσεως μὲ τὸ keyman.com + + Ἔκδοση ἐγκατάστασης: %0:s + Ἐγκαταστῆστε τὸ $APPNAME + Ἀναβαθμίστε τὸ $APPNAME + + Τὸ $APPNAME %0:s ἔχει ἤδη ἐγκατασταθεῖ. + + Κατεβάστε τὴν ἔκδοση %0:s (%1:s) + + Ἔκδοση %0:s + + Ἐγκαταστῆστε τὸ %0:s + + Κατεβάστε τὴν ἔκδοση %0:s (%1:s) + + Ἔκδοση %0:s + + Ἐπιλέξτε τὴν γλῶσσα ποὺ θέλετε νὰ χρησιμοποιήσετε μὲ τὸ πληκτρολόγιο %0:s + Ἡ προεπιλεγμένη γλῶσσα + + Φορτώνεται τὸ %0:s + + Φορτώνεται τὸ %0:s + Τὸ πρόγραμμα ἐγκατάστασης τοῦ $APPNAME δὲν μπόρεσε νὰ συνδεθεῖ μὲ τὸ keyman.com γιὰ νὰ κατεβάσει πρόσθετους πόρους. + Παρακαλοῦμε ἐλέγξτε ἂν εἶσθε ὀνλάϊν καὶ ἐπιτρέψτε στὸ πρόγραμμα ἐγκατάστασης τοῦ $APPNAME νὰ προσπελάσει τὸ Διαδίκτυο ρυθμίζοντας ἀναλόγως τὸ τοῖχος προστασίας σας. + Πατῆστε \"Διακοπή\" γιὰ νὰ σταματήσετε τὴν ἐγκατάσταση, \"Ξαναδοκιμάστε\" γιὰ νὰ προσπαθήσετε ἐκ νέου νὰ φορτώσετε πόρους ἢ \"Ἀγνοῆστε\" γιὰ νὰ συνεχίσετε χωρὶς ὀνλάϊν σύνδεση. + From 118a9478822123631558487a0a87f82dee8046da Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Wed, 7 Aug 2024 09:24:41 +0700 Subject: [PATCH 2/8] chore(common): add support for build target platform exclusions Add `builder_describe_platform` function to builder.inc.sh, associated documentation and unit test, and use it in Developer and Common build scripts. Relates-to: #11755 --- common/build.sh | 5 + developer/src/build.sh | 12 ++ developer/src/common/build.sh | 3 + resources/build/builder.md | 64 ++++++++ resources/build/test/builder-platform.test.sh | 55 +++++++ resources/build/test/test-utils.inc.sh | 16 ++ resources/build/test/test.sh | 4 + resources/builder.inc.sh | 147 +++++++++++++++++- 8 files changed, 304 insertions(+), 2 deletions(-) create mode 100755 resources/build/test/builder-platform.test.sh create mode 100644 resources/build/test/test-utils.inc.sh diff --git a/common/build.sh b/common/build.sh index 2d3c2ff8c40..5119bca8ac5 100755 --- a/common/build.sh +++ b/common/build.sh @@ -16,6 +16,11 @@ builder_describe "Keyman common and resources modules" \ build \ test +builder_describe_platform \ + :linux linux \ + :mac mac \ + :windows win + builder_parse "$@" #------------------------------------------------------------------------------------------------------------------- diff --git a/developer/src/build.sh b/developer/src/build.sh index de7ab491716..9c1f9b89430 100755 --- a/developer/src/build.sh +++ b/developer/src/build.sh @@ -42,6 +42,18 @@ builder_describe \ "--npm-publish+ For publish, do a npm publish, not npm pack (only for CI)" \ "--dry-run,-n+ Don't actually publish anything to external endpoints, just dry run" +builder_describe_platform \ + :ext win,delphi \ + :kmanalyze win \ + :kmdbrowserhost win,delphi \ + :kmdecomp win \ + :kmconvert win,delphi \ + :samples win \ + :setup win,delphi \ + :test win,delphi \ + :tike win,delphi \ + :inst win,delphi + builder_parse "$@" #------------------------------------------------------------------------------------------------------------------- diff --git a/developer/src/common/build.sh b/developer/src/common/build.sh index 53358c80b05..b37c2bc948f 100755 --- a/developer/src/common/build.sh +++ b/developer/src/common/build.sh @@ -11,5 +11,8 @@ builder_describe \ ":delphi Delphi components" \ ":web Web components" +builder_describe_platform \ + :delphi win,delphi + builder_parse "$@" builder_run_child_actions clean configure build test diff --git a/resources/build/builder.md b/resources/build/builder.md index 3855288392c..5311b24591f 100644 --- a/resources/build/builder.md +++ b/resources/build/builder.md @@ -229,6 +229,14 @@ builder_describe \ "--feature=FOO Enable feature foo" ``` +## Constraining build targets by platform or tooling + +You can use [`builder_describe_platform`](#builderdescribeplatform-function) to +constrain certain targets to only run on specific platforms or if specific +toolchains are installed. + +## Parsing command line + After describing the available parameters, you need to pass the command line parameters in for parsing and validation: @@ -555,6 +563,47 @@ repository root, not filesystem root. -------------------------------------------------------------------------------- +## `builder_describe_platform` function + +Describes the platforms for which a given target will be available, and +filters the list of targets accordingly, removing targets that cannot be built +on the current platform. Removed targets will be listed in a separate section +in the help documentation. + +### Usage + +```bash +builder_describe_platform :target platform[,...] [:target platform[,...] ...] +``` + +### Parameters + +* `target platform[s]` ...: Target and its list of corresponding platform(s) + +### Description + +Multiple targets can be listed. Each target must be followed by a comma +separated list of platforms. The currently supported platforms are: + +Operating System platforms: +* `win`: Windows +* `mac`: macOS +* `linux`: Linux + +Development tooling platforms: +* `delphi`: (On Windows only, Delphi is installed) + +Targets not specified will be built on all platforms. + +### Example + +```bash +builder_describe_platform \ + :tike win,delphi +``` + +-------------------------------------------------------------------------------- + ## `builder_display_usage` function Prints the help for the script, constructed from the [`builder_describe`] @@ -795,6 +844,21 @@ available anyway. -------------------------------------------------------------------------------- +## `builder_is_target_excluded_by_platform` function + +Returns `true` (aka 0) if the target has been excluded from the build because +it is for a different platform, or because the required tools are not installed. + +### Usage + +```bash +if builder_is_target_excluded_by_platform $target; then + ... +fi +``` + +-------------------------------------------------------------------------------- + ## `builder_parse` function Initializes a build.sh script, parses command line. Will abort the script if diff --git a/resources/build/test/builder-platform.test.sh b/resources/build/test/builder-platform.test.sh new file mode 100755 index 00000000000..dd087d08af8 --- /dev/null +++ b/resources/build/test/builder-platform.test.sh @@ -0,0 +1,55 @@ +#!/usr/bin/env bash + +set -eu + +## START STANDARD BUILD SCRIPT INCLUDE +# adjust relative paths as necessary +THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")" +. "${THIS_SCRIPT%/*}/../../../resources/builder.inc.sh" +# END STANDARD BUILD SCRIPT INCLUDE + +. "${THIS_SCRIPT_PATH}/test-utils.inc.sh" + +# Test overrides which disable win, delphi + +BUILDER_PLATFORM_OVERRIDE=linux +BUILDER_TOOLS_OVERRIDE= + +builder_describe \ + "Tests platform requirements" \ + build \ + :linux-project \ + :mac-project \ + :win-project \ + :delphi-project + +builder_describe_platform \ + :linux-project linux \ + :mac-project mac \ + :win-project win \ + :delphi-project win,delphi + +assert-equal "${_builder_targets[*]}" ":linux-project" "_builder_targets" +assert-equal "${!_builder_targets_excluded_by_platform[*]}" ":delphi-project :win-project :mac-project" "_builder_targets_excluded_by_platform" + +# Test overrides with enable win, delphi + +BUILDER_PLATFORM_OVERRIDE=win +BUILDER_TOOLS_OVERRIDE=(delphi) + +builder_describe \ + "Tests platform requirements" \ + build \ + :linux-project \ + :mac-project \ + :win-project \ + :delphi-project + +builder_describe_platform \ + :linux-project linux \ + :mac-project mac \ + :win-project win \ + :delphi-project win,delphi + +assert-equal "${_builder_targets[*]}" ":win-project :delphi-project" "_builder_targets" +assert-equal "${!_builder_targets_excluded_by_platform[*]}" ":linux-project :mac-project" "_builder_targets_excluded_by_platform" diff --git a/resources/build/test/test-utils.inc.sh b/resources/build/test/test-utils.inc.sh new file mode 100644 index 00000000000..da7a5579661 --- /dev/null +++ b/resources/build/test/test-utils.inc.sh @@ -0,0 +1,16 @@ +function assert-equal() { + local actual="$1" + local expected="$2" + local message= + if [[ $# -gt 2 ]]; then + message="$3: " + fi + + builder_echo "Testing: '$*'" + + if [[ "$actual" != "$expected" ]]; then + builder_die "FAIL: ${message}expected actual '$actual' to equal expected '$expected'" + else + builder_echo green "PASS: ${message}expected actual '$actual' to be equal to expected '$expected'" + fi +} diff --git a/resources/build/test/test.sh b/resources/build/test/test.sh index 60c86072b07..1cbaa254769 100755 --- a/resources/build/test/test.sh +++ b/resources/build/test/test.sh @@ -206,6 +206,10 @@ echo -e "${COLOR_BLUE}## Running dependency tests${COLOR_RESET}" "$THIS_SCRIPT_PATH/debug-deps/test.sh" "$THIS_SCRIPT_PATH/ignored-flags/test.sh" +echo -e "${COLOR_BLUE}## Test builder.inc.sh platform and tool constraints${COLOR_RESET}" +"$THIS_SCRIPT_PATH/builder-platform.test.sh" + + echo -e "${COLOR_BLUE}## Test builder.inc.sh 'builder-style' script${COLOR_RESET}" ./builder-invalid-script.test.sh || builder_die "FAIL: builder-invalid-script.test.sh returned failure code $?" diff --git a/resources/builder.inc.sh b/resources/builder.inc.sh index 9dc7f179942..c823e457aec 100755 --- a/resources/builder.inc.sh +++ b/resources/builder.inc.sh @@ -834,6 +834,7 @@ builder_describe() { _builder_deps=() # array of all dependencies for this script _builder_options_inheritable=() # array of all options that should be passed to child scripts _builder_default_action=build + declare -A -g _builder_targets_excluded_by_platform=() declare -A -g _builder_params declare -A -g _builder_options_short declare -A -g _builder_options_var @@ -1325,7 +1326,14 @@ _builder_parse_expanded_parameters() { # apply the selected action to all targets if [[ ! -z $target ]]; then # A target was specified but is not valid - _builder_parameter_error "$0" target "$target" + if builder_is_target_excluded_by_platform "$target"; then + builder_echo red "$0: Target $target is unavailable because it requires ${_builder_targets_excluded_by_platform[$target]}" + echo + builder_display_usage + exit 64 + else + _builder_parameter_error "$0" target "$target" + fi fi for e in "${_builder_targets[@]}"; do @@ -1392,7 +1400,17 @@ _builder_parse_expanded_parameters() { ;; *) # script does not recognize anything of action or target form at this point. - if builder_is_child_build; then + if [[ $key =~ ^: ]]; then + # This is an unsupported target + if builder_is_target_excluded_by_platform "$key"; then + builder_echo red "$0: Target $key is unavailable because it requires ${_builder_targets_excluded_by_platform[$key]}" + echo + builder_display_usage + exit 64 + else + _builder_parameter_error "$0" target "$key" + fi + elif builder_is_child_build; then # For child builds, don't fail the build when pass inheritable # parameters (#11408) builder_echo_debug "Parameter '$key' is not supported, ignoring" @@ -1520,6 +1538,19 @@ builder_display_usage() { _builder_pad $width " $e" "$description" done + if [[ ${#_builder_targets_excluded_by_platform[@]} -gt 0 ]]; then + echo + echo "Unavailable Targets: " + for e in "${!_builder_targets_excluded_by_platform[@]}"; do + if [[ ! -z "${_builder_params[$e]+x}" ]]; then + description="${_builder_params[$e]}" + else + description=$(_builder_get_default_description "$e") + fi + _builder_pad $width " $e" "$description (requires ${_builder_targets_excluded_by_platform[$e]})" + done + fi + echo echo "Options: " @@ -1893,6 +1924,118 @@ _builder_has_function_been_called() { return 1 } +################################################################################ +# Platform restrictions +################################################################################ + +# Describes the platforms for which a given target will be available, and +# filters the list of targets accordingly, removing targets that cannot be built +# on the current platform. Removed targets will be listed in a separate section +# in the help documentation. +# +# Parameters: target platform[s] ... Target and its list of corresponding +# platform(s) +# +# Multiple targets can be listed. Each target must be followed by a comma +# separated list of platforms. The currently supported platforms are: +# +# Operating System platforms: +# win Windows +# mac macOS +# linux Linux +# +# Development tooling platforms: +# delphi (On Windows only, Delphi is installed) +# +builder_describe_platform() { + + local builder_platforms=(linux mac win) + local builder_tools=(delphi) + + # --- Detect platform --- + + # Default value, since it's the most general case/configuration to detect. + local builder_platform=linux + + # This is copied from build-utils.sh to avoid creating a dependency on it + if [[ $OSTYPE == darwin* ]]; then + builder_platform=mac + elif [[ $OSTYPE == msys ]]; then + builder_platform=win + elif [[ $OSTYPE == cygwin ]]; then + builder_platform=win + fi + + # --- Detect tools --- + + local builder_installed_tools=() + + # Detect delphi compiler (see also delphi_environment.inc.sh) + if [[ $builder_platform == win ]]; then + local ProgramFilesx86="$(cygpath -w -F 42)" + if [[ -x "$(cygpath -u "$ProgramFilesx86\\Embarcadero\\Studio\\20.0\\bin\\dcc32.exe")" ]]; then + builder_installed_tools+=(delphi) + fi + fi + + # For testing, we can override the current platform + if [[ ! -z "${BUILDER_PLATFORM_OVERRIDE+x}" ]]; then + builder_warn "BUILDER_PLATFORM_OVERRIDE variable found. Overriding detected platform '$builder_platform' with '$BUILDER_PLATFORM_OVERRIDE'" + builder_platform="$BUILDER_PLATFORM_OVERRIDE" + fi + + # For testing, we can override the current tools + if [[ ! -z "${BUILDER_TOOLS_OVERRIDE+x}" ]]; then + builder_warn "BUILDER_TOOLS_OVERRIDE variable found. Overriding detected tools (${builder_installed_tools[@]}) with (${BUILDER_TOOLS_OVERRIDE[@]})" + builder_installed_tools=("${BUILDER_TOOLS_OVERRIDE[@]}") + fi + + # --- Exclude targets depending on missing tools and platforms + while [[ $# -gt 1 ]]; do + local target="$1" + shift + local platforms platform + IFS="," read -r -a platforms <<< "$1" + shift + + for platform in "${platforms[@]}"; do + if _builder_item_in_array "$platform" "${builder_platforms[@]}"; then + # Check operating system + if [[ "$platform" != "$builder_platform" ]]; then + _builder_targets_excluded_by_platform[$target]=$platform + _builder_targets=( ${_builder_targets[@]/$target} ) + fi + elif _builder_item_in_array "$platform" "${builder_tools[@]}"; then + # Check installed tools + if ! _builder_item_in_array "$platform" "${builder_installed_tools[@]}"; then + _builder_targets_excluded_by_platform[$target]=$platform + _builder_targets=( ${_builder_targets[@]/$target} ) + fi + else + builder_warn "Available platforms: ${builder_platforms[@]}" + builder_warn "Available tools: ${builder_tools[@]}" + builder_die "Invalid platform or tool specified for builder_describe_platforms: $platform" + fi + done + done +} + +# Returns 0 if the specified target is excluded by platform requirements +# +# Parameters: target Target to verify +# +builder_is_target_excluded_by_platform() { + local target="$1" + if [[ ! -z "${_builder_targets_excluded_by_platform[$target]+x}" ]]; then + return 0 + fi + return 1 +} + +################################################################################ +# Final initialization +################################################################################ + # # Initialize builder once all functions are declared # From 95e0090b74f0d02829314315ff22cf2af9630306 Mon Sep 17 00:00:00 2001 From: Darcy Wong Date: Wed, 7 Aug 2024 10:01:42 +0700 Subject: [PATCH 3/8] fix(mac): Specify el.lproj folders --- crowdin.yml | 6 ++++++ .../KMAboutWindowController.strings | 0 .../{el-polyton.lproj => el.lproj}/preferences.strings | 0 .../KMInfoWindowController.strings | 0 .../KMKeyboardHelpWindowController.strings | 0 .../{el-polyton.lproj => el.lproj}/Localizable.strings | 0 .../{el-polyton.lproj => el.lproj}/MainMenu.strings | 0 7 files changed, 6 insertions(+) rename mac/Keyman4MacIM/Keyman4MacIM/KMAboutWindow/{el-polyton.lproj => el.lproj}/KMAboutWindowController.strings (100%) rename mac/Keyman4MacIM/Keyman4MacIM/KMConfiguration/{el-polyton.lproj => el.lproj}/preferences.strings (100%) rename mac/Keyman4MacIM/Keyman4MacIM/KMInfoWindow/{el-polyton.lproj => el.lproj}/KMInfoWindowController.strings (100%) rename mac/Keyman4MacIM/Keyman4MacIM/KMKeyboardHelpWindow/{el-polyton.lproj => el.lproj}/KMKeyboardHelpWindowController.strings (100%) rename mac/Keyman4MacIM/Keyman4MacIM/{el-polyton.lproj => el.lproj}/Localizable.strings (100%) rename mac/Keyman4MacIM/Keyman4MacIM/{el-polyton.lproj => el.lproj}/MainMenu.strings (100%) diff --git a/crowdin.yml b/crowdin.yml index 3c95e40186a..812cfa21c77 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -127,6 +127,7 @@ files: languages_mapping: osx_code: pt-PT: pt-PT.lproj + el-polyton: el.lproj - source: /mac/Keyman4MacIM/Keyman4MacIM/KMConfiguration/en.lproj/preferences.strings dest: /mac/app/preferences.strings @@ -134,6 +135,7 @@ files: languages_mapping: osx_code: pt-PT: pt-PT.lproj + el-polyton: el.lproj - source: /mac/Keyman4MacIM/Keyman4MacIM/KMInfoWindow/en.lproj/KMInfoWindowController.strings dest: /mac/app/KMInfoWindowController.strings @@ -141,6 +143,7 @@ files: languages_mapping: osx_code: pt-PT: pt-PT.lproj + el-polyton: el.lproj - source: /mac/Keyman4MacIM/Keyman4MacIM/KMKeyboardHelpWindow/en.lproj/KMKeyboardHelpWindowController.strings dest: /mac/app/KMKeyboardHelpWindowController.strings @@ -148,6 +151,7 @@ files: languages_mapping: osx_code: pt-PT: pt-PT.lproj + el-polyton: el.lproj - source: /mac/Keyman4MacIM/Keyman4MacIM/en.lproj/Localizable.strings dest: /mac/app/Localizable.strings @@ -155,6 +159,7 @@ files: languages_mapping: osx_code: pt-PT: pt-PT.lproj + el-polyton: el.lproj - source: /mac/Keyman4MacIM/Keyman4MacIM/en.lproj/MainMenu.strings dest: /mac/app/MainMenu.strings @@ -162,6 +167,7 @@ files: languages_mapping: osx_code: pt-PT: pt-PT.lproj + el-polyton: el.lproj # crowdin parameters descriptions: diff --git a/mac/Keyman4MacIM/Keyman4MacIM/KMAboutWindow/el-polyton.lproj/KMAboutWindowController.strings b/mac/Keyman4MacIM/Keyman4MacIM/KMAboutWindow/el.lproj/KMAboutWindowController.strings similarity index 100% rename from mac/Keyman4MacIM/Keyman4MacIM/KMAboutWindow/el-polyton.lproj/KMAboutWindowController.strings rename to mac/Keyman4MacIM/Keyman4MacIM/KMAboutWindow/el.lproj/KMAboutWindowController.strings diff --git a/mac/Keyman4MacIM/Keyman4MacIM/KMConfiguration/el-polyton.lproj/preferences.strings b/mac/Keyman4MacIM/Keyman4MacIM/KMConfiguration/el.lproj/preferences.strings similarity index 100% rename from mac/Keyman4MacIM/Keyman4MacIM/KMConfiguration/el-polyton.lproj/preferences.strings rename to mac/Keyman4MacIM/Keyman4MacIM/KMConfiguration/el.lproj/preferences.strings diff --git a/mac/Keyman4MacIM/Keyman4MacIM/KMInfoWindow/el-polyton.lproj/KMInfoWindowController.strings b/mac/Keyman4MacIM/Keyman4MacIM/KMInfoWindow/el.lproj/KMInfoWindowController.strings similarity index 100% rename from mac/Keyman4MacIM/Keyman4MacIM/KMInfoWindow/el-polyton.lproj/KMInfoWindowController.strings rename to mac/Keyman4MacIM/Keyman4MacIM/KMInfoWindow/el.lproj/KMInfoWindowController.strings diff --git a/mac/Keyman4MacIM/Keyman4MacIM/KMKeyboardHelpWindow/el-polyton.lproj/KMKeyboardHelpWindowController.strings b/mac/Keyman4MacIM/Keyman4MacIM/KMKeyboardHelpWindow/el.lproj/KMKeyboardHelpWindowController.strings similarity index 100% rename from mac/Keyman4MacIM/Keyman4MacIM/KMKeyboardHelpWindow/el-polyton.lproj/KMKeyboardHelpWindowController.strings rename to mac/Keyman4MacIM/Keyman4MacIM/KMKeyboardHelpWindow/el.lproj/KMKeyboardHelpWindowController.strings diff --git a/mac/Keyman4MacIM/Keyman4MacIM/el-polyton.lproj/Localizable.strings b/mac/Keyman4MacIM/Keyman4MacIM/el.lproj/Localizable.strings similarity index 100% rename from mac/Keyman4MacIM/Keyman4MacIM/el-polyton.lproj/Localizable.strings rename to mac/Keyman4MacIM/Keyman4MacIM/el.lproj/Localizable.strings diff --git a/mac/Keyman4MacIM/Keyman4MacIM/el-polyton.lproj/MainMenu.strings b/mac/Keyman4MacIM/Keyman4MacIM/el.lproj/MainMenu.strings similarity index 100% rename from mac/Keyman4MacIM/Keyman4MacIM/el-polyton.lproj/MainMenu.strings rename to mac/Keyman4MacIM/Keyman4MacIM/el.lproj/MainMenu.strings From 67cff9c8787883da3eac50b1aaed57f2ba0a83b4 Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Wed, 7 Aug 2024 10:09:05 +0700 Subject: [PATCH 4/8] chore(common): sort bash arrays before asserts in unit tests --- resources/build/test/builder-platform.test.sh | 12 +++++++++--- resources/build/test/test-utils.inc.sh | 2 -- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/resources/build/test/builder-platform.test.sh b/resources/build/test/builder-platform.test.sh index dd087d08af8..78b40fb348c 100755 --- a/resources/build/test/builder-platform.test.sh +++ b/resources/build/test/builder-platform.test.sh @@ -30,7 +30,10 @@ builder_describe_platform \ :delphi-project win,delphi assert-equal "${_builder_targets[*]}" ":linux-project" "_builder_targets" -assert-equal "${!_builder_targets_excluded_by_platform[*]}" ":delphi-project :win-project :mac-project" "_builder_targets_excluded_by_platform" + +# seems bash associative array order is unstable? so sort array for test +readarray -t btebp_sorted < <(printf '%s\n' "${!_builder_targets_excluded_by_platform[@]}" | sort) +assert-equal "${btebp_sorted[*]}" ":delphi-project :mac-project :win-project" "_builder_targets_excluded_by_platform" # Test overrides with enable win, delphi @@ -51,5 +54,8 @@ builder_describe_platform \ :win-project win \ :delphi-project win,delphi -assert-equal "${_builder_targets[*]}" ":win-project :delphi-project" "_builder_targets" -assert-equal "${!_builder_targets_excluded_by_platform[*]}" ":linux-project :mac-project" "_builder_targets_excluded_by_platform" +readarray -t bt_sorted < <(printf '%s\n' "${_builder_targets[@]}" | sort) +assert-equal "${bt_sorted[*]}" ":delphi-project :win-project" "_builder_targets" + +readarray -t btebp_sorted < <(printf '%s\n' "${!_builder_targets_excluded_by_platform[@]}" | sort) +assert-equal "${btebp_sorted[*]}" ":linux-project :mac-project" "_builder_targets_excluded_by_platform" diff --git a/resources/build/test/test-utils.inc.sh b/resources/build/test/test-utils.inc.sh index da7a5579661..47f0aca33eb 100644 --- a/resources/build/test/test-utils.inc.sh +++ b/resources/build/test/test-utils.inc.sh @@ -6,8 +6,6 @@ function assert-equal() { message="$3: " fi - builder_echo "Testing: '$*'" - if [[ "$actual" != "$expected" ]]; then builder_die "FAIL: ${message}expected actual '$actual' to equal expected '$expected'" else From 581ba36ab86f5afe3bc8e5ad81db88d1d18afcac Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Wed, 7 Aug 2024 10:29:06 +0700 Subject: [PATCH 5/8] chore(developer): add flag for CI to build on mac, linux --- developer/src/.build-builder | 1 + 1 file changed, 1 insertion(+) create mode 100644 developer/src/.build-builder diff --git a/developer/src/.build-builder b/developer/src/.build-builder new file mode 100644 index 00000000000..a06440b36fa --- /dev/null +++ b/developer/src/.build-builder @@ -0,0 +1 @@ +The presence of this file tells CI that we can build Developer on mac and linux, as of 18.0. We will be able to remove this file in 19.0. From c744cffc7ca38a7cdfd7cd7b6801e575c5393167 Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Wed, 7 Aug 2024 10:46:18 +0700 Subject: [PATCH 6/8] chore: move new build env to separate PR --- developer/src/.build-builder | 1 - 1 file changed, 1 deletion(-) delete mode 100644 developer/src/.build-builder diff --git a/developer/src/.build-builder b/developer/src/.build-builder deleted file mode 100644 index a06440b36fa..00000000000 --- a/developer/src/.build-builder +++ /dev/null @@ -1 +0,0 @@ -The presence of this file tells CI that we can build Developer on mac and linux, as of 18.0. We will be able to remove this file in 19.0. From 57d4aeef97b03a4746af8f39d9b4d444537f2419 Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Wed, 7 Aug 2024 09:55:51 +0700 Subject: [PATCH 7/8] feat(common): add top-level build.sh This top-level builder script will build as many projects as are possible to build on the current platform. For example, iOS and macOS projects can only be built on macOS; Windows and parts of Developer can only be built on Windows. Relates-to: #6268 --- build.sh | 36 ++++++++++++++++++++++++++++++++++++ resources/build/builder.md | 9 +++++---- resources/builder.inc.sh | 12 ++++++++++-- 3 files changed, 51 insertions(+), 6 deletions(-) create mode 100755 build.sh diff --git a/build.sh b/build.sh new file mode 100755 index 00000000000..a455d3307f6 --- /dev/null +++ b/build.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash +## START STANDARD BUILD SCRIPT INCLUDE +# adjust relative paths as necessary +THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")" +. "${THIS_SCRIPT%/*}/resources/build/builder.inc.sh" +## END STANDARD BUILD SCRIPT INCLUDE + +builder_describe "Keyman -- all projects" \ + ":common" \ + ":core" \ + ":android" \ + ":ios" \ + ":linux" \ + ":mac" \ + ":web" \ + ":windows" \ + ":developer" \ + clean \ + configure \ + build \ + test \ + install \ + publish + +builder_describe_platform \ + :android android-studio \ + :ios mac \ + :linux linux \ + :mac mac \ + :windows win + +builder_parse "$@" + +#------------------------------------------------------------------------------------------------------------------- + +builder_run_child_actions clean configure build test publish install diff --git a/resources/build/builder.md b/resources/build/builder.md index 5311b24591f..0e3ef901f7f 100644 --- a/resources/build/builder.md +++ b/resources/build/builder.md @@ -586,12 +586,13 @@ Multiple targets can be listed. Each target must be followed by a comma separated list of platforms. The currently supported platforms are: Operating System platforms: -* `win`: Windows -* `mac`: macOS -* `linux`: Linux +* `win`: Windows +* `mac`: macOS +* `linux`: Linux Development tooling platforms: -* `delphi`: (On Windows only, Delphi is installed) +* `delphi`: Delphi is installed (Windows only) +* `android-studio`: Android Studio is installed (`$ANDROID_HOME` variable) Targets not specified will be built on all platforms. diff --git a/resources/builder.inc.sh b/resources/builder.inc.sh index c823e457aec..60b0b5878ce 100755 --- a/resources/builder.inc.sh +++ b/resources/builder.inc.sh @@ -1945,12 +1945,13 @@ _builder_has_function_been_called() { # linux Linux # # Development tooling platforms: -# delphi (On Windows only, Delphi is installed) +# delphi Delphi is installed (on Windows only) +# android Android Studio is installed # builder_describe_platform() { local builder_platforms=(linux mac win) - local builder_tools=(delphi) + local builder_tools=(android-studio delphi) # --- Detect platform --- @@ -1978,6 +1979,13 @@ builder_describe_platform() { fi fi + # Detect Android Studio based on ANDROID_HOME environment variable + if [[ ! -z ${ANDROID_HOME+x} ]]; then + builder_installed_tools+=(android-studio) + fi + + # --- Overrides --- + # For testing, we can override the current platform if [[ ! -z "${BUILDER_PLATFORM_OVERRIDE+x}" ]]; then builder_warn "BUILDER_PLATFORM_OVERRIDE variable found. Overriding detected platform '$builder_platform' with '$BUILDER_PLATFORM_OVERRIDE'" From 5c250cdd6e7216dc2669fa42b789870bcddbebc5 Mon Sep 17 00:00:00 2001 From: sgschantz Date: Thu, 8 Aug 2024 12:25:43 +0700 Subject: [PATCH 8/8] chore(mac): updated mac project settings to include Greek localization --- .../Keyman4MacIM.xcodeproj/project.pbxproj | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/mac/Keyman4MacIM/Keyman4MacIM.xcodeproj/project.pbxproj b/mac/Keyman4MacIM/Keyman4MacIM.xcodeproj/project.pbxproj index 8e0b973442e..66dac595c8c 100644 --- a/mac/Keyman4MacIM/Keyman4MacIM.xcodeproj/project.pbxproj +++ b/mac/Keyman4MacIM/Keyman4MacIM.xcodeproj/project.pbxproj @@ -257,6 +257,12 @@ 29C1E1772800227700759EDE /* pt-PT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-PT"; path = "pt-PT.lproj/KMKeyboardHelpWindowController.strings"; sourceTree = ""; }; 29C1E1782800227800759EDE /* pt-PT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-PT"; path = "pt-PT.lproj/MainMenu.strings"; sourceTree = ""; }; 29C1E179280025A900759EDE /* pt-PT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-PT"; path = "pt-PT.lproj/Localizable.strings"; sourceTree = ""; }; + 29D470942C648D5100224B4F /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/KMAboutWindowController.strings; sourceTree = ""; }; + 29D470952C648D5100224B4F /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/preferences.strings; sourceTree = ""; }; + 29D470962C648D5200224B4F /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/KMInfoWindowController.strings; sourceTree = ""; }; + 29D470972C648D5200224B4F /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/KMKeyboardHelpWindowController.strings; sourceTree = ""; }; + 29D470982C648D5200224B4F /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/MainMenu.strings; sourceTree = ""; }; + 29D470992C648D7100224B4F /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/Localizable.strings; sourceTree = ""; }; 29DD8400276C49E20066A16E /* am */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = am; path = am.lproj/KMAboutWindowController.strings; sourceTree = ""; }; 29DD8401276C49E20066A16E /* am */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = am; path = am.lproj/preferences.strings; sourceTree = ""; }; 29DD8402276C49E30066A16E /* am */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = am; path = am.lproj/KMInfoWindowController.strings; sourceTree = ""; }; @@ -795,6 +801,7 @@ uk, ru, es, + el, ); mainGroup = 989C9BFF1A7876DE00A20425; productRefGroup = 989C9C091A7876DE00A20425 /* Products */; @@ -1053,6 +1060,7 @@ 298566D42980D47C004ACA95 /* uk */, 298566E02980E579004ACA95 /* ru */, CEFFECD82A417FEA00D58C36 /* es */, + 29D470942C648D5100224B4F /* el */, ); name = KMAboutWindowController.xib; sourceTree = ""; @@ -1079,6 +1087,7 @@ 298566D52980D47D004ACA95 /* uk */, 298566E12980E579004ACA95 /* ru */, CEFFECD92A417FEB00D58C36 /* es */, + 29D470952C648D5100224B4F /* el */, ); name = preferences.xib; path = Keyman4MacIM/KMConfiguration; @@ -1105,6 +1114,7 @@ 298566D92980D489004ACA95 /* uk */, 298566E52980E584004ACA95 /* ru */, CEFFECDD2A4180FD00D58C36 /* es */, + 29D470992C648D7100224B4F /* el */, ); name = Localizable.strings; sourceTree = ""; @@ -1131,6 +1141,7 @@ 298566D62980D47D004ACA95 /* uk */, 298566E22980E57A004ACA95 /* ru */, CEFFECDA2A417FEB00D58C36 /* es */, + 29D470962C648D5200224B4F /* el */, ); name = KMInfoWindowController.xib; path = Keyman4MacIM/KMInfoWindow; @@ -1158,6 +1169,7 @@ 298566D72980D47D004ACA95 /* uk */, 298566E32980E57A004ACA95 /* ru */, CEFFECDB2A417FEC00D58C36 /* es */, + 29D470972C648D5200224B4F /* el */, ); name = KMKeyboardHelpWindowController.xib; path = Keyman4MacIM/KMKeyboardHelpWindow; @@ -1185,6 +1197,7 @@ 298566D82980D47E004ACA95 /* uk */, 298566E42980E57A004ACA95 /* ru */, CEFFECDC2A417FEC00D58C36 /* es */, + 29D470982C648D5200224B4F /* el */, ); name = MainMenu.xib; sourceTree = "";