diff --git a/intl/el_GR.po b/intl/el_GR.po new file mode 100644 index 0000000..6d93975 --- /dev/null +++ b/intl/el_GR.po @@ -0,0 +1,1223 @@ +msgid "" +msgstr "" +"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-Language: el.GR\n" +"X-Source-Language: en.US\n" +"X-Qt-Contexts: true\n" + +#: ../ui/CloneDialog.ui:17 +msgctxt "CloneDialog|" +msgid "Clone Repository" +msgstr "Αντιγραφή Αποθετηρίου" + +#: ../ui/CloneDialog.ui:28 +msgctxt "CloneDialog|" +msgid "URL" +msgstr "Διεύθυνση" + +#: ../ui/CloneDialog.ui:35 +msgctxt "CloneDialog|" +msgid "The URL of the source repository" +msgstr "Η διεύθυνση του αποθετηρίου πηγής" + +#: ../ui/CloneDialog.ui:42 +msgctxt "CloneDialog|" +msgid "User Name" +msgstr "Όνομα Χρήστη" + +#: ../ui/CloneDialog.ui:49 +msgctxt "CloneDialog|" +msgid "" +"The user name used to access the remote repository. Leave blank if not " +"required" +msgstr "" +"Το όνομα χρήστη για την πρόσβαση του απομακρυσμένου αποθετηρίου. Αφήστε το " +"κενό αν δεν χρειάζεται" + +#: ../ui/CloneDialog.ui:56 +msgctxt "CloneDialog|" +msgid "Password" +msgstr "Συνθυματικό" + +#: ../ui/CloneDialog.ui:63 +msgctxt "CloneDialog|" +msgid "" +"The password used to access the remote repository. Leave blank if not " +"required" +msgstr "" +"Το συνθυματικό για την πρόσβαση του απομακρυσμένου αποθετηρίου. Αφήστε το " +"κενό αν δεν χρειάζεται" + +#: ../ui/CloneDialog.ui:73 +msgctxt "CloneDialog|" +msgid "Repository" +msgstr "Αποθετήριο" + +#: ../ui/CloneDialog.ui:82 +msgctxt "CloneDialog|" +msgid "Path to the local repository file" +msgstr "Διαδρομή για το αρχείο τοπικού αποθετηρίου" + +#: ../ui/CloneDialog.ui:101 +msgctxt "CloneDialog|" +msgid "..." +msgstr "..." + +#: ../src/CloneDialog.cpp:52 ../src/CloneDialog.cpp:61 +#: ../src/CloneDialog.cpp:87 +msgctxt "CloneDialog|" +msgid "Error" +msgstr "Σφάλμα" + +#: ../src/CloneDialog.cpp:52 +msgctxt "CloneDialog|" +msgid "Invalid URL." +msgstr "Μη αποδεκτή διεύθυνση." + +#: ../src/CloneDialog.cpp:61 +msgctxt "CloneDialog|" +msgid "Invalid Repository File." +msgstr "Μη αποδεκτό αρχείο αποθετηρίου" + +#: ../src/CloneDialog.cpp:72 +msgctxt "CloneDialog|" +msgid "Fossil Repository (*.fossil)" +msgstr "Αποθετήριο Fossil (*.fossil)" + +#: ../src/CloneDialog.cpp:76 +msgctxt "CloneDialog|" +msgid "Select Fossil Repository" +msgstr "Επιλέξετε Αποθετήριο Fossil" + +#: ../src/CloneDialog.cpp:87 +msgctxt "CloneDialog|" +msgid "This repository file already exists." +msgstr "Αυτό τό αρχείο αποθετηρίου υπάρχει ήδη." + +#: ../ui/CommitDialog.ui:17 +msgctxt "CommitDialog|" +msgid "Commit" +msgstr "Καταχώρηση" + +#: ../ui/FileActionDialog.ui:17 +msgctxt "FileActionDialog|" +msgid "File Action" +msgstr "Ενέργειες αρχείου" + +#: ../ui/MainWindow.ui:14 +msgctxt "MainWindow|" +msgid "Fuel" +msgstr "Fuel" + +#: ../ui/MainWindow.ui:184 +msgctxt "MainWindow|" +msgid "&File" +msgstr "&Αρχείο" + +#: ../ui/MainWindow.ui:199 +msgctxt "MainWindow|" +msgid "&Help" +msgstr "&Βοήθεια" + +#: ../ui/MainWindow.ui:205 +msgctxt "MainWindow|" +msgid "&View" +msgstr "Εμφάνιση" + +#: ../ui/MainWindow.ui:222 +msgctxt "MainWindow|" +msgid "Main Toolbar" +msgstr "Κύρια μπάρα εργαλείων" + +#: ../ui/MainWindow.ui:276 +msgctxt "MainWindow|" +msgid "Refresh" +msgstr "Ανανέωση" + +#: ../ui/MainWindow.ui:279 ../ui/MainWindow.ui:282 +msgctxt "MainWindow|" +msgid "Refresh the views" +msgstr "Ανανεώνει τις προβολές" + +#: ../ui/MainWindow.ui:285 +msgctxt "MainWindow|" +msgid "F5" +msgstr "F5" + +#: ../ui/MainWindow.ui:294 +msgctxt "MainWindow|" +msgid "Commit" +msgstr "Εισαγωγή" + +#: ../ui/MainWindow.ui:297 ../ui/MainWindow.ui:300 +msgctxt "MainWindow|" +msgid "Commit modifications" +msgstr "Καταχώρηση τροποποιήσεων" + +#: ../ui/MainWindow.ui:303 +msgctxt "MainWindow|" +msgid "Ctrl+M" +msgstr "Ctrl+M" + +#: ../ui/MainWindow.ui:312 +msgctxt "MainWindow|" +msgid "Diff" +msgstr "Σύνγκριση" + +#: ../ui/MainWindow.ui:315 ../ui/MainWindow.ui:318 +msgctxt "MainWindow|" +msgid "Display the differences between the current and last committed version" +msgstr "" +"Εμφάνιση των διαφορών μεταξύ της τρέχουσας και της προηγούμενης έκδοσης" + +#: ../ui/MainWindow.ui:321 +msgctxt "MainWindow|" +msgid "Ctrl+D" +msgstr "Ctrl+D" + +#: ../ui/MainWindow.ui:330 +msgctxt "MainWindow|" +msgid "Add" +msgstr "Προσθήκη" + +#: ../ui/MainWindow.ui:333 ../ui/MainWindow.ui:336 +msgctxt "MainWindow|" +msgid "Add files to the repository" +msgstr "Πρόσθεση αρχείων στο αποθετήριο" + +#: ../ui/MainWindow.ui:339 +msgctxt "MainWindow|" +msgid "Ctrl++" +msgstr "Ctrl++" + +#: ../ui/MainWindow.ui:348 +msgctxt "MainWindow|" +msgid "Delete" +msgstr "Διαγραφή" + +#: ../ui/MainWindow.ui:351 ../ui/MainWindow.ui:354 +msgctxt "MainWindow|" +msgid "Delete files from the repository" +msgstr "Διαγραφή αρχείων από το αποθετήριο" + +#: ../ui/MainWindow.ui:357 +msgctxt "MainWindow|" +msgid "Ctrl+-" +msgstr "Ctrl+-" + +#: ../ui/MainWindow.ui:366 +msgctxt "MainWindow|" +msgid "&New..." +msgstr "&Δημιουργία..." + +#: ../ui/MainWindow.ui:369 ../ui/MainWindow.ui:372 +msgctxt "MainWindow|" +msgid "Make a new Fossil repository" +msgstr "Δημιουργία καινούργιου αποθετηρίου Fossil" + +#: ../ui/MainWindow.ui:375 +msgctxt "MainWindow|" +msgid "Ctrl+N" +msgstr "Ctrl+N" + +#: ../ui/MainWindow.ui:384 +msgctxt "MainWindow|" +msgid "&Open..." +msgstr "Ά&νοιγμα..." + +#: ../ui/MainWindow.ui:387 ../ui/MainWindow.ui:390 +msgctxt "MainWindow|" +msgid "Open a Fossil repository or workspace folder" +msgstr "Άνοιγμα αποθετηρίου Fossil ή χώρου εργασίας" + +#: ../ui/MainWindow.ui:393 +msgctxt "MainWindow|" +msgid "Ctrl+O" +msgstr "Ctrl+O" + +#: ../ui/MainWindow.ui:401 +msgctxt "MainWindow|" +msgid "&Close" +msgstr "&Κλείσιμο" + +#: ../ui/MainWindow.ui:404 ../ui/MainWindow.ui:407 +msgctxt "MainWindow|" +msgid "Close the current workspace" +msgstr "Κλείσιμο του τρέχοντος χώρου εργασίας" + +#: ../ui/MainWindow.ui:416 +msgctxt "MainWindow|" +msgid "Clone..." +msgstr "Αντιγραφή..." + +#: ../ui/MainWindow.ui:425 +msgctxt "MainWindow|" +msgid "Push" +msgstr "Προώθηση" + +#: ../ui/MainWindow.ui:428 ../ui/MainWindow.ui:431 +msgctxt "MainWindow|" +msgid "Push changes to the remote repository" +msgstr "Προώθηση αλλαγών στο απομακρυσμένο αποθετήριο" + +#: ../ui/MainWindow.ui:434 +msgctxt "MainWindow|" +msgid "Ctrl+P" +msgstr "Ctrl+P" + +#: ../ui/MainWindow.ui:443 +msgctxt "MainWindow|" +msgid "Pull" +msgstr "Λήψη" + +#: ../ui/MainWindow.ui:446 ../ui/MainWindow.ui:449 +msgctxt "MainWindow|" +msgid "Pull changes from the remote repository" +msgstr "Λήψη αλλαγών από το απομακρυσμένο αποθετήριο" + +#: ../ui/MainWindow.ui:452 +msgctxt "MainWindow|" +msgid "Ctrl+L" +msgstr "Ctrl+L" + +#: ../ui/MainWindow.ui:461 ../src/MainWindow.cpp:1858 +msgctxt "MainWindow|" +msgid "Rename" +msgstr "Μετονομασία" + +#: ../ui/MainWindow.ui:464 ../ui/MainWindow.ui:467 +msgctxt "MainWindow|" +msgid "Rename the selected file" +msgstr "Μετονομασία του επιλεγμένου αρχείου" + +#: ../ui/MainWindow.ui:470 +msgctxt "MainWindow|" +msgid "Ctrl+R" +msgstr "Ctrl+R" + +#: ../ui/MainWindow.ui:479 +msgctxt "MainWindow|" +msgid "&Quit" +msgstr "Έ&ξοδος" + +#: ../ui/MainWindow.ui:482 +msgctxt "MainWindow|" +msgid "Quit" +msgstr "Έ&ξοδος" + +#: ../ui/MainWindow.ui:485 +msgctxt "MainWindow|" +msgid "Ctrl+Q" +msgstr "Ctrl+Q" + +#: ../ui/MainWindow.ui:497 +msgctxt "MainWindow|" +msgid "History" +msgstr "Ίστορικό" + +#: ../ui/MainWindow.ui:500 ../ui/MainWindow.ui:503 +msgctxt "MainWindow|" +msgid "Display the version history of a file via the fossil UI" +msgstr "Έμφάνιση του ιστόρικου ενός αρχείο μέσω του fossil" + +#: ../ui/MainWindow.ui:506 +msgctxt "MainWindow|" +msgid "Ctrl+H" +msgstr "Ctrl+H" + +#: ../ui/MainWindow.ui:518 +msgctxt "MainWindow|" +msgid "Fossil UI" +msgstr "Fossil UI" + +#: ../ui/MainWindow.ui:521 ../ui/MainWindow.ui:524 +msgctxt "MainWindow|" +msgid "Starts the Fosill UI in the Web Browser" +msgstr "Εκκίνηση του Fosill UI μέσω του Web Browser" + +#: ../ui/MainWindow.ui:533 +msgctxt "MainWindow|" +msgid "Revert" +msgstr "Επαναφορά" + +#: ../ui/MainWindow.ui:536 ../ui/MainWindow.ui:539 +msgctxt "MainWindow|" +msgid "Revert files to the last commited version" +msgstr "Επαναφορά αρχείων στην τελευταία καταχωρημένη έκδοση" + +#: ../ui/MainWindow.ui:548 +msgctxt "MainWindow|" +msgid "Clear Log" +msgstr "Διαγραφή Ιστορικού" + +#: ../ui/MainWindow.ui:551 +msgctxt "MainWindow|" +msgid "Clears the log" +msgstr "Διαγραφή του ιστορικού εκτέλεσης του Fossil" + +#: ../ui/MainWindow.ui:554 +msgctxt "MainWindow|" +msgid "Ctrl+K" +msgstr "Ctrl+K" + +#: ../ui/MainWindow.ui:563 +msgctxt "MainWindow|" +msgid "Timeline" +msgstr "Χρονικό" + +#: ../ui/MainWindow.ui:566 ../ui/MainWindow.ui:569 +msgctxt "MainWindow|" +msgid "Display the change history of the fossil repository" +msgstr "Εμφάνιση του χρονικού του αποθετηρίου fossil" + +#: ../ui/MainWindow.ui:578 +msgctxt "MainWindow|" +msgid "Open file" +msgstr "Άνοιγμα αρχείου" + +#: ../ui/MainWindow.ui:581 ../ui/MainWindow.ui:584 +msgctxt "MainWindow|" +msgid "Open the selected file" +msgstr "Άνοιγμα του επιλεγμένου αρχείου" + +#: ../ui/MainWindow.ui:587 +msgctxt "MainWindow|" +msgid "Ctrl+Return" +msgstr "Ctrl+Return" + +#: ../ui/MainWindow.ui:596 +msgctxt "MainWindow|" +msgid "Open Containing" +msgstr "Άνοιγμα φακέλου" + +#: ../ui/MainWindow.ui:599 ../ui/MainWindow.ui:602 +msgctxt "MainWindow|" +msgid "Open the folder containing the selected file" +msgstr "Άνοιγμα του φακέλου που περιέχει το επιλεγμένο αρχείο" + +#: ../ui/MainWindow.ui:605 +msgctxt "MainWindow|" +msgid "Alt+Return" +msgstr "Alt+Return" + +#: ../ui/MainWindow.ui:614 ../src/MainWindow.cpp:1913 +msgctxt "MainWindow|" +msgid "Undo" +msgstr "Αναίρεση" + +#: ../ui/MainWindow.ui:617 ../ui/MainWindow.ui:620 +msgctxt "MainWindow|" +msgid "Undo the last fossil action" +msgstr "Αναίρεση της τελευταίας ενέργειας του fossil" + +#: ../ui/MainWindow.ui:623 +msgctxt "MainWindow|" +msgid "Ctrl+Z" +msgstr "Ctrl+Z" + +#: ../ui/MainWindow.ui:632 +msgctxt "MainWindow|" +msgid "&About..." +msgstr "Σχετικά..." + +#: ../ui/MainWindow.ui:635 +msgctxt "MainWindow|" +msgid "About Fuel" +msgstr "Σχετικά με το Fuel" + +#: ../ui/MainWindow.ui:644 ../src/MainWindow.cpp:1956 +msgctxt "MainWindow|" +msgid "Update" +msgstr "Ενημέρωση" + +#: ../ui/MainWindow.ui:647 ../ui/MainWindow.ui:650 +msgctxt "MainWindow|" +msgid "Update the workspace to the latest version" +msgstr "Ενημέρωση του χώρου εργασίας στην τελευταία έκδοση" + +#: ../ui/MainWindow.ui:653 +msgctxt "MainWindow|" +msgid "Ctrl+U" +msgstr "Ctrl+U" + +#: ../ui/MainWindow.ui:662 +msgctxt "MainWindow|" +msgid "&Preferences..." +msgstr "&Ρυθμίσεις" + +#: ../ui/MainWindow.ui:665 ../ui/MainWindow.ui:668 +msgctxt "MainWindow|" +msgid "Fuel Preferences" +msgstr "Ρυθμίσεις του Fuel" + +#: ../ui/MainWindow.ui:679 +msgctxt "MainWindow|" +msgid "&Modified" +msgstr "&Τροποποιημένα" + +#: ../ui/MainWindow.ui:682 +msgctxt "MainWindow|" +msgid "Show modifed files" +msgstr "Εμφάνιση τροποποιημένων αρχείων" + +#: ../ui/MainWindow.ui:693 +msgctxt "MainWindow|" +msgid "&Unchanged" +msgstr "&Αμετάβλητα" + +#: ../ui/MainWindow.ui:696 +msgctxt "MainWindow|" +msgid "Show unchanged files" +msgstr "Εμφάνιση αμετάβλητων αρχείων" + +#: ../ui/MainWindow.ui:707 +msgctxt "MainWindow|" +msgid "Un&known" +msgstr "Ά&γνωστα" + +#: ../ui/MainWindow.ui:710 +msgctxt "MainWindow|" +msgid "Show unknown files" +msgstr "Έμφάνιση άγνωστων αρχείων" + +#: ../ui/MainWindow.ui:718 +msgctxt "MainWindow|" +msgid "&Ignored" +msgstr "Αγνοημένα" + +#: ../ui/MainWindow.ui:721 +msgctxt "MainWindow|" +msgid "Show ignored files" +msgstr "Έμφάνιση αγνοημένων αρχείων" + +#: ../ui/MainWindow.ui:729 +msgctxt "MainWindow|" +msgid "File &List" +msgstr "Λίστα Αρχείων" + +#: ../ui/MainWindow.ui:732 ../ui/MainWindow.ui:735 +msgctxt "MainWindow|" +msgid "View as files as a list" +msgstr "Εμφάνιση αρχείων ως λίστα" + +#: ../ui/MainWindow.ui:738 +msgctxt "MainWindow|" +msgid "View the workspace as a list of files" +msgstr "Εμφάνιση του χώρου εργασίας ως λίστα αρχείων" + +#: ../ui/MainWindow.ui:747 +msgctxt "MainWindow|" +msgid "Open Folder" +msgstr "Άνοιγμα Φακέλου" + +#: ../ui/MainWindow.ui:750 ../ui/MainWindow.ui:753 +msgctxt "MainWindow|" +msgid "Open the selected folder" +msgstr "Άνοιγμα του επιλεγμένου φακέλου" + +#: ../ui/MainWindow.ui:762 ../src/MainWindow.cpp:2161 +#: ../src/MainWindow.cpp:2206 +msgctxt "MainWindow|" +msgid "Rename Folder" +msgstr "Μετονομασία Φακέλου" + +#: ../ui/MainWindow.ui:765 ../ui/MainWindow.ui:768 +msgctxt "MainWindow|" +msgid "Rename the selected folder" +msgstr "Μετονομασία του επιλεγμένου φακέλου" + +#: ../ui/MainWindow.ui:777 +msgctxt "MainWindow|" +msgid "Stash changes" +msgstr "Στοίβαγμα Αλλαγών" + +#: ../ui/MainWindow.ui:780 +msgctxt "MainWindow|" +msgid "Show the stash" +msgstr "Εμφάνιση της στοίβας" + +#: ../ui/MainWindow.ui:789 ../src/MainWindow.cpp:2358 +msgctxt "MainWindow|" +msgid "Apply Stash" +msgstr "Εφαρμογή Στοίβας" + +#: ../ui/MainWindow.ui:792 ../ui/MainWindow.ui:795 +msgctxt "MainWindow|" +msgid "Apply stashed changes" +msgstr "Εφαρμογή των αλλαγών στοίβας" + +#: ../ui/MainWindow.ui:803 +msgctxt "MainWindow|" +msgid "&Stashed Changes" +msgstr "Στοίβες Αλλαγών" + +#: ../ui/MainWindow.ui:806 +msgctxt "MainWindow|" +msgid "View the Stash" +msgstr "Εμφάνιση της Στόιβας" + +#: ../ui/MainWindow.ui:809 +msgctxt "MainWindow|" +msgid "Show the list of stashed changes" +msgstr "Εμφάνιση της λίστας με τις στοιβαγμένες αλλαγές" + +#: ../ui/MainWindow.ui:818 +msgctxt "MainWindow|" +msgid "Delete Stash" +msgstr "Διαγραφή Στοίβας" + +#: ../ui/MainWindow.ui:827 +msgctxt "MainWindow|" +msgid "Diff Stash" +msgstr "Σύγκριση Στοίβας" + +#: ../src/MainWindow.cpp:249 ../src/MainWindow.cpp:306 +#: ../src/MainWindow.cpp:314 ../src/MainWindow.cpp:384 +#: ../src/MainWindow.cpp:412 ../src/MainWindow.cpp:420 +#: ../src/MainWindow.cpp:431 ../src/MainWindow.cpp:449 +#: ../src/MainWindow.cpp:482 ../src/MainWindow.cpp:1678 +#: ../src/MainWindow.cpp:1692 ../src/MainWindow.cpp:1734 +#: ../src/MainWindow.cpp:1743 ../src/MainWindow.cpp:1866 +#: ../src/MainWindow.cpp:2173 ../src/MainWindow.cpp:2182 +#: ../src/MainWindow.cpp:2245 ../src/MainWindow.cpp:2258 +#: ../src/MainWindow.cpp:2266 ../src/MainWindow.cpp:2280 +#: ../src/MainWindow.cpp:2286 ../src/MainWindow.cpp:2328 +#: ../src/MainWindow.cpp:2337 +msgctxt "MainWindow|" +msgid "Error" +msgstr "Σφάλμα" + +#: ../src/MainWindow.cpp:249 +#, qt-format +msgctxt "MainWindow|" +msgid "Could not change current directory to '%0'" +msgstr "Η αλλαγή του τρέχοντος φακέλου στο '%0' δεν ήταν δυνατή." + +#: ../src/MainWindow.cpp:291 +msgctxt "MainWindow|" +msgid "" +"A workspace does not exist in this folder.\n" +"Would you like to create one here?" +msgstr "" +"Δεν υπαρχεί χώρος εργασίας σε αυτό το φάκελο.\n" +"Θα θέλατε να δημιουργήσετε έναν εδώ;" + +#: ../src/MainWindow.cpp:291 +msgctxt "MainWindow|" +msgid "Open Workspace" +msgstr "Άνοιγμα Χώρου Εργασίας" + +#: ../src/MainWindow.cpp:295 ../src/MainWindow.cpp:397 +msgctxt "MainWindow|" +msgid "Select Workspace Folder" +msgstr "Επιλέξτε Φάκελο Χώρου Εργασίας" + +#: ../src/MainWindow.cpp:306 ../src/MainWindow.cpp:420 +msgctxt "MainWindow|" +msgid "Could not change current directory" +msgstr "Η αλλαγή του τρέχοντος φακέλου δεν ήταν δυνατή" + +#: ../src/MainWindow.cpp:314 ../src/MainWindow.cpp:431 +msgctxt "MainWindow|" +msgid "Could not open repository." +msgstr "Το άνοιγμα του αποθετηρίου δεν ήταν δυνατό." + +#: ../src/MainWindow.cpp:352 +msgctxt "MainWindow|" +msgid "Fossil Files (*.fossil _FOSSIL_ .fslckout)" +msgstr "Αρχεία Fossil (*.fossil _FOSSIL_ .fslckout)" + +#: ../src/MainWindow.cpp:356 +msgctxt "MainWindow|" +msgid "Open Fossil Repository" +msgstr "Άνοιγμα Αποθετηρίου Fossil" + +#: ../src/MainWindow.cpp:369 +msgctxt "MainWindow|" +msgid "Fossil Repositories (*.fossil)" +msgstr "Αποθετήρια Fossil (*.fossil)" + +#: ../src/MainWindow.cpp:374 +msgctxt "MainWindow|" +msgid "New Fossil Repository" +msgstr "Νέο Αποθετήριο Fossil" + +#: ../src/MainWindow.cpp:384 +msgctxt "MainWindow|" +msgid "" +"A repository file already exists.\n" +"Repository creation aborted." +msgstr "" +"Ένα αρχείο αποθετηρίου υπάρχει ήδη.\n" +"Η δημιουργία αποθετηρίου ακυρώθηκε." + +#: ../src/MainWindow.cpp:393 +msgctxt "MainWindow|" +msgid "Create Workspace" +msgstr "Δημιουργία Χώρου Εργασίας" + +#: ../src/MainWindow.cpp:393 +msgctxt "MainWindow|" +msgid "Would you like to create a workspace in the same folder?" +msgstr "Θα θέλατε να δημιουργήσετε ένα χώρο εργασίας στον ίδιο φάκελο;" + +#: ../src/MainWindow.cpp:412 +msgctxt "MainWindow|" +msgid "Could not create repository." +msgstr "Η δημιουργία αποθετηρίου δεν ήταν δυνατή" + +#: ../src/MainWindow.cpp:443 +msgctxt "MainWindow|" +msgid "Close Workspace" +msgstr "Κλείσιμο Χώρου Εργασίας" + +#: ../src/MainWindow.cpp:443 +msgctxt "MainWindow|" +msgid "Are you sure want to close this workspace?" +msgstr "Είσατε σίγουροι ότι θέλετε να κλέισετε αυτό τον χώρο εργασίας;" + +#: ../src/MainWindow.cpp:449 +msgctxt "MainWindow|" +msgid "" +"Cannot close the workspace.\n" +"Are there still uncommitted changes available?" +msgstr "" +"Το κλείσιμο του χώρου εργασίας δεν ήταν δυνατό.\n" +"Μήπως υπάρχουν ακόμα αλλαγές που δεν καταχωρηθεί;" + +#: ../src/MainWindow.cpp:482 +msgctxt "MainWindow|" +msgid "Could not clone the repository" +msgstr "Η αντιγραφή του αποθετηρίου δεν ήταν δυνατή" + +#: ../src/MainWindow.cpp:586 +msgctxt "MainWindow|" +msgid "No workspace detected." +msgstr "Δεν επιλέχτηκε χώρος εργασίας" + +#: ../src/MainWindow.cpp:594 +msgctxt "MainWindow|" +msgid "Old repository schema detected. Consider running 'fossil rebuild'" +msgstr "Εντοπίστηκε παλιό σχήμα αποθετηρίου. Εκτελέστε 'fossil rebuild'" + +#: ../src/MainWindow.cpp:631 +msgctxt "MainWindow|" +msgid "Scanning Workspace..." +msgstr "Έλεγχος Χώρου Εργασίας..." + +#: ../src/MainWindow.cpp:671 +msgctxt "MainWindow|" +msgid "Updating..." +msgstr "Ενημέρωση..." + +#: ../src/MainWindow.cpp:831 +msgctxt "MainWindow|" +msgid "Folders" +msgstr "Φάκελοι" + +#: ../src/MainWindow.cpp:858 +msgctxt "MainWindow|" +msgid "S" +msgstr "Κ" + +#: ../src/MainWindow.cpp:858 +msgctxt "MainWindow|" +msgid "File" +msgstr "Αρχείο" + +#: ../src/MainWindow.cpp:858 +msgctxt "MainWindow|" +msgid "Ext" +msgstr "Προέκταση" + +#: ../src/MainWindow.cpp:858 +msgctxt "MainWindow|" +msgid "Modified" +msgstr "Τροποποίηση" + +#: ../src/MainWindow.cpp:865 +msgctxt "MainWindow|" +msgid "Path" +msgstr "Διαδρομή" + +#: ../src/MainWindow.cpp:991 +msgctxt "MainWindow|" +msgid "Stashes" +msgstr "Στοίβες" + +#: ../src/MainWindow.cpp:1084 +msgctxt "MainWindow|" +msgid "Running Fossil" +msgstr "Εκτέλεση Fossil" + +#: ../src/MainWindow.cpp:1117 +msgctxt "MainWindow|" +msgid "Terminated" +msgstr "Διακόπηκε" + +#: ../src/MainWindow.cpp:1542 +msgctxt "MainWindow|" +msgid "Fossil UI is already running" +msgstr "Το UI του Fossil εκτελείται ήδη" + +#: ../src/MainWindow.cpp:1551 +msgctxt "MainWindow|" +msgid "Starting Fossil browser UI. Please wait." +msgstr "Εκκίνηση του Fossil UI. Παρακαλώ περιμένετε." + +#: ../src/MainWindow.cpp:1858 ../src/MainWindow.cpp:2161 +msgctxt "MainWindow|" +msgid "New name" +msgstr "Νέο όνομα" + +#: ../src/MainWindow.cpp:1937 +msgctxt "MainWindow|" +msgid "" +"a GUI frontend to the Fossil SCM\n" +"by Kostas Karanikolas\n" +"Released under the GNU GPL" +msgstr "" + +#: ../src/MainWindow.cpp:2173 ../src/MainWindow.cpp:2182 +msgctxt "MainWindow|" +msgid "Cannot rename folder." +msgstr "Η μετονομασία του φακέλου δεν ήταν δυνατή." + +#: ../src/MainWindow.cpp:2173 +msgctxt "MainWindow|" +msgid "Folder name contains invalid characters." +msgstr "" +"Το όνομα του φακέλου περιέχει μη αποδεκτούς χαρακτήρες." + +#: ../src/MainWindow.cpp:2182 +msgctxt "MainWindow|" +msgid "This folder exists already." +msgstr "" + +#: ../src/MainWindow.cpp:2222 +msgctxt "MainWindow|" +msgid "Move aborted due to errors" +msgstr "Η μετακίνηση ακυρώθηκε λόγω σφαλμάτων" + +#: ../src/MainWindow.cpp:2242 +#, qt-format +msgctxt "MainWindow|" +msgid "Creating folder '%0'" +msgstr "Δημιουργία φακέλου '%0'" + +#: ../src/MainWindow.cpp:2245 +#, qt-format +msgctxt "MainWindow|" +msgid "Cannot make target folder '%0'" +msgstr "Η δημιουργία του φακέλου '%0' δεν ήταν δυνατή" + +#: ../src/MainWindow.cpp:2262 +#, qt-format +msgctxt "MainWindow|" +msgid "Copying file '%0' to '%1'" +msgstr "Αντιγραφή του αρχείου '%0' στο '%1'" + +#: ../src/MainWindow.cpp:2276 +#, qt-format +msgctxt "MainWindow|" +msgid "Removing old file '%0'" +msgstr "Διαγραφή παλαιού αρχείου '%0'" + +#: ../src/MainWindow.cpp:2291 +msgctxt "MainWindow|" +msgid "Folder renamed completed. Don't forget to commit!" +msgstr "" +"Η μετονομασία του φακέλου ολοκληρώθηκε. Μην ξεχάσετε να κάνετε καταχώρηση!" + +#: ../src/MainWindow.cpp:2369 +msgctxt "MainWindow|" +msgid "Stash application aborted due to errors" +msgstr "Η εφαρμογή της στοίβας ακυρώθηκε λόγω σφαλμάτων" + +#: ../src/MainWindow.cpp:2382 ../src/MainWindow.cpp:2410 +msgctxt "MainWindow|" +msgid "Stash deletion aborted due to errors" +msgstr "Η διαγραφή της στοίβας ακυρώθηκε λόγω σφαλμάτων" + +#: ../src/MainWindow.cpp:1096 ../src/MainWindow.cpp:1557 +msgctxt "MainWindow|" +msgid "Could not start Fossil executable '%s'" +msgstr "Η εκκίνηση του εκτελέσιμου Fossil '%s' δεν ήταν δυνατή" + +#: ../src/MainWindow.cpp:1678 ../src/MainWindow.cpp:1692 +msgctxt "MainWindow|" +msgid "" +"A remote repository has not been specified.\n" +"Use the preferences window to set the remote repostory location" +msgstr "" +"Το απομακρυσμένο αποθετήριο δεν έχει οριστεί.\n" +"Χρησημοποιήστε το παράθυρο ρυθμίσεων για να ορίσετε την τοποθεσία του" + +#: ../src/MainWindow.cpp:1711 +msgctxt "MainWindow|" +msgid "Commit Changes" +msgstr "Καταχώρηση Αλλαγών" + +#: ../src/MainWindow.cpp:1734 ../src/MainWindow.cpp:1743 +msgctxt "MainWindow|" +msgid "Could not generate comment file" +msgstr "Η δημιουργία του αρχείου σχολίων δεν ήταν δυνατή" + +#: ../src/MainWindow.cpp:1780 +msgctxt "MainWindow|" +msgid "Add files" +msgstr "Προσθήκη αρχείων" + +#: ../src/MainWindow.cpp:1780 +msgctxt "MainWindow|" +msgid "The following files will be added. Are you sure?" +msgstr "Τα παρακάτω αρχεία θα προστεθούν. Είσαστε σίγουροι;" + +#: ../src/MainWindow.cpp:1805 +msgctxt "MainWindow|" +msgid "Remove files" +msgstr "Αφαίρεση αρχείων" + +#: ../src/MainWindow.cpp:1805 +msgctxt "MainWindow|" +msgid "" +"The following files will be removed from the repository.\n" +"Are you sure?" +msgstr "" +"Τα παρακάτω αρχεία θα αφαιρεθούν από το αποθετήριο.\n" +"Είσαστε σίγουροι;" + +#: ../src/MainWindow.cpp:1805 +msgctxt "MainWindow|" +msgid "Also delete the local files" +msgstr "Διαγραφή των τοπικών αρχείων επίσης" + +#: ../src/MainWindow.cpp:1837 +msgctxt "MainWindow|" +msgid "Revert files" +msgstr "Επαναφορά αρχέιων" + +#: ../src/MainWindow.cpp:1837 +msgctxt "MainWindow|" +msgid "The following files will be reverted. Are you sure?" +msgstr "" +"Τα παρακάτω αρχεία θα επαναφερθούν.\n" +"Είσαστε σίγουροι;" + +#: ../src/MainWindow.cpp:1866 +#, qt-format +msgctxt "MainWindow|" +msgid "" +"File '%0' already exists.\n" +"Rename aborted." +msgstr "" +"Το αρχείο '%0' υπάρχει ήδη.\n" +"Η μετονομασία ακυρώθηκε." + +#: ../src/MainWindow.cpp:1913 +msgctxt "MainWindow|" +msgid "The following actions will be undone. Are you sure?" +msgstr "Οι παρακάτω ενέργειες θα αναιρεθούν. Είσαστε σίγουροι;" + +#: ../src/MainWindow.cpp:1932 +#, qt-format +msgctxt "MainWindow|" +msgid "Fossil version %0" +msgstr "Έκδοση Fossil %0" + +#: ../src/MainWindow.cpp:1935 +msgctxt "MainWindow|" +msgid "About Fuel..." +msgstr "Σχετικά με το Fuel..." + +#: ../src/MainWindow.cpp:1941 +msgctxt "MainWindow|" +msgid "" +"Icon-set by Deleket - Jojo Mendoza\n" +"Available under the CC Attribution Noncommercial No Derivate 3.0 License" +msgstr "" + +#: ../src/MainWindow.cpp:1956 +msgctxt "MainWindow|" +msgid "The following files will be updated. Are you sure?" +msgstr "Τα παρακάτω αρχεία θα ενημερωθούν. Είσατε σίγουροι;" + +#: ../src/MainWindow.cpp:2206 +#, qt-format +msgctxt "MainWindow|" +msgid "" +"Renaming folder '%0' to '%1'\n" +"The following files will be moved in the repository. Are you sure?" +msgstr "Μετονομασία τοθ φακέλου '%0' σε '%1'\n" +"Τα παρακάτω αρχεία θα μετακινηθούν στο αποθετήριο. Είσαστε σίγουροι;" + +#: ../src/MainWindow.cpp:2209 +msgctxt "MainWindow|" +msgid "Also move the workspace files" +msgstr "" + +#: ../src/MainWindow.cpp:2258 +#, qt-format +msgctxt "MainWindow|" +msgid "Target file '%0' exists already" +msgstr "" + +#: ../src/MainWindow.cpp:2266 +#, qt-format +msgctxt "MainWindow|" +msgid "Cannot copy file '%0' to '%1'" +msgstr "" + +#: ../src/MainWindow.cpp:2280 +#, qt-format +msgctxt "MainWindow|" +msgid "Source file '%0' does not exist" +msgstr "" + +#: ../src/MainWindow.cpp:2286 +#, qt-format +msgctxt "MainWindow|" +msgid "Cannot remove file '%0'" +msgstr "" + +#: ../src/MainWindow.cpp:2320 +msgctxt "MainWindow|" +msgid "Revert stashed files" +msgstr "" + +#: ../src/MainWindow.cpp:2321 +msgctxt "MainWindow|" +msgid "Stash Changes" +msgstr "" + +#: ../src/MainWindow.cpp:2328 +msgctxt "MainWindow|" +msgid "Invalid stash name" +msgstr "" + +#: ../src/MainWindow.cpp:2337 +msgctxt "MainWindow|" +msgid "This stash already exists" +msgstr "" + +#: ../src/MainWindow.cpp:2358 +msgctxt "MainWindow|" +msgid "The following stashes will be applied. Are you sure?" +msgstr "" + +#: ../src/MainWindow.cpp:2358 +msgctxt "MainWindow|" +msgid "Delete after applying" +msgstr "" + +#: ../src/MainWindow.cpp:2399 +msgctxt "MainWindow|" +msgid "Delete Stashes" +msgstr "" + +#: ../src/MainWindow.cpp:2399 +msgctxt "MainWindow|" +msgid "The following stashes will be deleted. Are you sure?" +msgstr "" + +#: ../ui/SettingsDialog.ui:17 +msgctxt "SettingsDialog|" +msgid "Settings" +msgstr "" + +#: ../ui/SettingsDialog.ui:34 +msgctxt "SettingsDialog|" +msgid "Application" +msgstr "" + +#: ../ui/SettingsDialog.ui:52 +msgctxt "SettingsDialog|" +msgid "Fossil Path" +msgstr "" + +#: ../ui/SettingsDialog.ui:61 +msgctxt "SettingsDialog|" +msgid "Path to the fossil executable. Leave blank to use the default fossil" +msgstr "" + +#: ../ui/SettingsDialog.ui:80 ../ui/SettingsDialog.ui:123 +#: ../ui/SettingsDialog.ui:166 +msgctxt "SettingsDialog|" +msgid "..." +msgstr "" + +#: ../ui/SettingsDialog.ui:95 +msgctxt "SettingsDialog|" +msgid "Graphical Diff " +msgstr "" + +#: ../ui/SettingsDialog.ui:104 +msgctxt "SettingsDialog|" +msgid "Path to graphical diff tool" +msgstr "" + +#: ../ui/SettingsDialog.ui:138 +msgctxt "SettingsDialog|" +msgid "Graphical Merge" +msgstr "" + +#: ../ui/SettingsDialog.ui:147 +msgctxt "SettingsDialog|" +msgid "Path to the graphical merge tool" +msgstr "" + +#: ../ui/SettingsDialog.ui:181 +msgctxt "SettingsDialog|" +msgid "Commit Messages" +msgstr "" + +#: ../ui/SettingsDialog.ui:194 +msgctxt "SettingsDialog|" +msgid "Clear the commit message history" +msgstr "" + +#: ../ui/SettingsDialog.ui:197 +msgctxt "SettingsDialog|" +msgid "Clear" +msgstr "" + +#: ../ui/SettingsDialog.ui:210 +msgctxt "SettingsDialog|" +msgid "Double-click Action" +msgstr "" + +#: ../ui/SettingsDialog.ui:223 +msgctxt "SettingsDialog|" +msgid "Action to perfom when double-clicking a file" +msgstr "" + +#: ../ui/SettingsDialog.ui:233 +msgctxt "SettingsDialog|" +msgid "Language" +msgstr "" + +#: ../ui/SettingsDialog.ui:246 +msgctxt "SettingsDialog|" +msgid "Language to use for the user interface" +msgstr "" + +#: ../ui/SettingsDialog.ui:258 +msgctxt "SettingsDialog|" +msgid "Repository" +msgstr "" + +#: ../ui/SettingsDialog.ui:276 +msgctxt "SettingsDialog|" +msgid "Remote Url" +msgstr "" + +#: ../ui/SettingsDialog.ui:289 +msgctxt "SettingsDialog|" +msgid "" +"The remote url used to push/pull changes.\n" +"URL style user names and passwords are also supported.\n" +"For example http://username:password@server.com/fossil" +msgstr "" + +#: ../ui/SettingsDialog.ui:304 +msgctxt "SettingsDialog|" +msgid "Ignore List" +msgstr "" + +#: ../ui/SettingsDialog.ui:317 +msgctxt "SettingsDialog|" +msgid "" +"A comma separated list of glob-style file/path patterns ignored in fossil " +"file operations" +msgstr "" + +#: ../ui/SettingsDialog.ui:330 +msgctxt "SettingsDialog|" +msgid "Ignore CR/NL" +msgstr "" + +#: ../ui/SettingsDialog.ui:343 +msgctxt "SettingsDialog|" +msgid "" +"A comma separated list of glob-style file patterns to exclude from fossil's " +"CR/NL consistency checking" +msgstr "" + +#: ../src/SettingsDialog.cpp:16 +msgctxt "SettingsDialog|" +msgid "Applications" +msgstr "" + +#: ../src/SettingsDialog.cpp:24 +#, qt-format +msgctxt "SettingsDialog|" +msgid "Select %1" +msgstr "" + +#: ../src/SettingsDialog.cpp:45 +msgctxt "SettingsDialog|" +msgid "Diff File" +msgstr "" + +#: ../src/SettingsDialog.cpp:46 +msgctxt "SettingsDialog|" +msgid "Open File" +msgstr "" + +#: ../src/SettingsDialog.cpp:47 +msgctxt "SettingsDialog|" +msgid "Open Containing Folder" +msgstr "" + +#: ../src/SettingsDialog.cpp:97 +msgctxt "SettingsDialog|" +msgid "Restart required" +msgstr "" + +#: ../src/SettingsDialog.cpp:97 +msgctxt "SettingsDialog|" +msgid "The language change will take effect after restarting the application" +msgstr "" + +#: ../src/SettingsDialog.cpp:111 +msgctxt "SettingsDialog|" +msgid "Fossil executable" +msgstr "" + +#: ../src/SettingsDialog.cpp:119 +msgctxt "SettingsDialog|" +msgid "Graphical Diff application" +msgstr "" + +#: ../src/SettingsDialog.cpp:127 +msgctxt "SettingsDialog|" +msgid "Graphical Merge application" +msgstr "" + +#: ../src/SettingsDialog.cpp:135 +msgctxt "SettingsDialog|" +msgid "Clear Commit Message History" +msgstr "" + +#: ../src/SettingsDialog.cpp:135 +msgctxt "SettingsDialog|" +msgid "Are you sure want to clear the commit message history?" +msgstr "" + +#: ../src/SettingsDialog.cpp:142 +msgctxt "SettingsDialog|" +msgid "English (US)" +msgstr "Αγγλικά (Ηνωμένων Πολιτειών)" + +#: ../src/SettingsDialog.cpp:143 +msgctxt "SettingsDialog|" +msgid "Japanese" +msgstr "Ιαπωνικά" + +#: ../src/SettingsDialog.cpp:144 +msgctxt "SettingsDialog|" +msgid "Greek" +msgstr "Ελληνικά" diff --git a/intl/en_US.pot b/intl/en_US.pot new file mode 100644 index 0000000..25b4a8a --- /dev/null +++ b/intl/en_US.pot @@ -0,0 +1,1199 @@ +msgid "" +msgstr "" +"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-Language: en.US\n" +"X-Source-Language: en.US\n" +"X-Qt-Contexts: true\n" + +#: ../ui/CloneDialog.ui:17 +msgctxt "CloneDialog|" +msgid "Clone Repository" +msgstr "" + +#: ../ui/CloneDialog.ui:28 +msgctxt "CloneDialog|" +msgid "URL" +msgstr "" + +#: ../ui/CloneDialog.ui:35 +msgctxt "CloneDialog|" +msgid "The URL of the source repository" +msgstr "" + +#: ../ui/CloneDialog.ui:42 +msgctxt "CloneDialog|" +msgid "User Name" +msgstr "" + +#: ../ui/CloneDialog.ui:49 +msgctxt "CloneDialog|" +msgid "" +"The user name used to access the remote repository. Leave blank if not " +"required" +msgstr "" + +#: ../ui/CloneDialog.ui:56 +msgctxt "CloneDialog|" +msgid "Password" +msgstr "" + +#: ../ui/CloneDialog.ui:63 +msgctxt "CloneDialog|" +msgid "" +"The password used to access the remote repository. Leave blank if not " +"required" +msgstr "" + +#: ../ui/CloneDialog.ui:73 +msgctxt "CloneDialog|" +msgid "Repository" +msgstr "" + +#: ../ui/CloneDialog.ui:82 +msgctxt "CloneDialog|" +msgid "Path to the local repository file" +msgstr "" + +#: ../ui/CloneDialog.ui:101 +msgctxt "CloneDialog|" +msgid "..." +msgstr "" + +#: ../src/CloneDialog.cpp:52 ../src/CloneDialog.cpp:61 ../src/CloneDialog.cpp:87 +msgctxt "CloneDialog|" +msgid "Error" +msgstr "" + +#: ../src/CloneDialog.cpp:52 +msgctxt "CloneDialog|" +msgid "Invalid URL." +msgstr "" + +#: ../src/CloneDialog.cpp:61 +msgctxt "CloneDialog|" +msgid "Invalid Repository File." +msgstr "" + +#: ../src/CloneDialog.cpp:72 +msgctxt "CloneDialog|" +msgid "Fossil Repository (*.fossil)" +msgstr "" + +#: ../src/CloneDialog.cpp:76 +msgctxt "CloneDialog|" +msgid "Select Fossil Repository" +msgstr "" + +#: ../src/CloneDialog.cpp:87 +msgctxt "CloneDialog|" +msgid "This repository file already exists." +msgstr "" + +#: ../ui/CommitDialog.ui:17 +msgctxt "CommitDialog|" +msgid "Commit" +msgstr "" + +#: ../ui/FileActionDialog.ui:17 +msgctxt "FileActionDialog|" +msgid "File Action" +msgstr "" + +#: ../ui/MainWindow.ui:14 +msgctxt "MainWindow|" +msgid "Fuel" +msgstr "" + +#: ../ui/MainWindow.ui:184 +msgctxt "MainWindow|" +msgid "&File" +msgstr "" + +#: ../ui/MainWindow.ui:199 +msgctxt "MainWindow|" +msgid "&Help" +msgstr "" + +#: ../ui/MainWindow.ui:205 +msgctxt "MainWindow|" +msgid "&View" +msgstr "" + +#: ../ui/MainWindow.ui:222 +msgctxt "MainWindow|" +msgid "Main Toolbar" +msgstr "" + +#: ../ui/MainWindow.ui:276 +msgctxt "MainWindow|" +msgid "Refresh" +msgstr "" + +#: ../ui/MainWindow.ui:279 ../ui/MainWindow.ui:282 +msgctxt "MainWindow|" +msgid "Refresh the views" +msgstr "" + +#: ../ui/MainWindow.ui:285 +msgctxt "MainWindow|" +msgid "F5" +msgstr "" + +#: ../ui/MainWindow.ui:294 +msgctxt "MainWindow|" +msgid "Commit" +msgstr "" + +#: ../ui/MainWindow.ui:297 ../ui/MainWindow.ui:300 +msgctxt "MainWindow|" +msgid "Commit modifications" +msgstr "" + +#: ../ui/MainWindow.ui:303 +msgctxt "MainWindow|" +msgid "Ctrl+M" +msgstr "" + +#: ../ui/MainWindow.ui:312 +msgctxt "MainWindow|" +msgid "Diff" +msgstr "" + +#: ../ui/MainWindow.ui:315 ../ui/MainWindow.ui:318 +msgctxt "MainWindow|" +msgid "Display the differences between the current and last committed version" +msgstr "" + +#: ../ui/MainWindow.ui:321 +msgctxt "MainWindow|" +msgid "Ctrl+D" +msgstr "" + +#: ../ui/MainWindow.ui:330 +msgctxt "MainWindow|" +msgid "Add" +msgstr "" + +#: ../ui/MainWindow.ui:333 ../ui/MainWindow.ui:336 +msgctxt "MainWindow|" +msgid "Add files to the repository" +msgstr "" + +#: ../ui/MainWindow.ui:339 +msgctxt "MainWindow|" +msgid "Ctrl++" +msgstr "" + +#: ../ui/MainWindow.ui:348 +msgctxt "MainWindow|" +msgid "Delete" +msgstr "" + +#: ../ui/MainWindow.ui:351 ../ui/MainWindow.ui:354 +msgctxt "MainWindow|" +msgid "Delete files from the repository" +msgstr "" + +#: ../ui/MainWindow.ui:357 +msgctxt "MainWindow|" +msgid "Ctrl+-" +msgstr "" + +#: ../ui/MainWindow.ui:366 +msgctxt "MainWindow|" +msgid "&New..." +msgstr "" + +#: ../ui/MainWindow.ui:369 ../ui/MainWindow.ui:372 +msgctxt "MainWindow|" +msgid "Make a new Fossil repository" +msgstr "" + +#: ../ui/MainWindow.ui:375 +msgctxt "MainWindow|" +msgid "Ctrl+N" +msgstr "" + +#: ../ui/MainWindow.ui:384 +msgctxt "MainWindow|" +msgid "&Open..." +msgstr "" + +#: ../ui/MainWindow.ui:387 ../ui/MainWindow.ui:390 +msgctxt "MainWindow|" +msgid "Open a Fossil repository or workspace folder" +msgstr "" + +#: ../ui/MainWindow.ui:393 +msgctxt "MainWindow|" +msgid "Ctrl+O" +msgstr "" + +#: ../ui/MainWindow.ui:401 +msgctxt "MainWindow|" +msgid "&Close" +msgstr "" + +#: ../ui/MainWindow.ui:404 ../ui/MainWindow.ui:407 +msgctxt "MainWindow|" +msgid "Close the current workspace" +msgstr "" + +#: ../ui/MainWindow.ui:416 +msgctxt "MainWindow|" +msgid "Clone..." +msgstr "" + +#: ../ui/MainWindow.ui:425 +msgctxt "MainWindow|" +msgid "Push" +msgstr "" + +#: ../ui/MainWindow.ui:428 ../ui/MainWindow.ui:431 +msgctxt "MainWindow|" +msgid "Push changes to the remote repository" +msgstr "" + +#: ../ui/MainWindow.ui:434 +msgctxt "MainWindow|" +msgid "Ctrl+P" +msgstr "" + +#: ../ui/MainWindow.ui:443 +msgctxt "MainWindow|" +msgid "Pull" +msgstr "" + +#: ../ui/MainWindow.ui:446 ../ui/MainWindow.ui:449 +msgctxt "MainWindow|" +msgid "Pull changes from the remote repository" +msgstr "" + +#: ../ui/MainWindow.ui:452 +msgctxt "MainWindow|" +msgid "Ctrl+L" +msgstr "" + +#: ../ui/MainWindow.ui:461 ../src/MainWindow.cpp:1858 +msgctxt "MainWindow|" +msgid "Rename" +msgstr "" + +#: ../ui/MainWindow.ui:464 ../ui/MainWindow.ui:467 +msgctxt "MainWindow|" +msgid "Rename the selected file" +msgstr "" + +#: ../ui/MainWindow.ui:470 +msgctxt "MainWindow|" +msgid "Ctrl+R" +msgstr "" + +#: ../ui/MainWindow.ui:479 +msgctxt "MainWindow|" +msgid "&Quit" +msgstr "" + +#: ../ui/MainWindow.ui:482 +msgctxt "MainWindow|" +msgid "Quit" +msgstr "" + +#: ../ui/MainWindow.ui:485 +msgctxt "MainWindow|" +msgid "Ctrl+Q" +msgstr "" + +#: ../ui/MainWindow.ui:497 +msgctxt "MainWindow|" +msgid "History" +msgstr "" + +#: ../ui/MainWindow.ui:500 ../ui/MainWindow.ui:503 +msgctxt "MainWindow|" +msgid "Display the version history of a file via the fossil UI" +msgstr "" + +#: ../ui/MainWindow.ui:506 +msgctxt "MainWindow|" +msgid "Ctrl+H" +msgstr "" + +#: ../ui/MainWindow.ui:518 +msgctxt "MainWindow|" +msgid "Fossil UI" +msgstr "" + +#: ../ui/MainWindow.ui:521 ../ui/MainWindow.ui:524 +msgctxt "MainWindow|" +msgid "Starts the Fosill UI in the Web Browser" +msgstr "" + +#: ../ui/MainWindow.ui:533 +msgctxt "MainWindow|" +msgid "Revert" +msgstr "" + +#: ../ui/MainWindow.ui:536 ../ui/MainWindow.ui:539 +msgctxt "MainWindow|" +msgid "Revert files to the last commited version" +msgstr "" + +#: ../ui/MainWindow.ui:548 +msgctxt "MainWindow|" +msgid "Clear Log" +msgstr "" + +#: ../ui/MainWindow.ui:551 +msgctxt "MainWindow|" +msgid "Clears the log" +msgstr "" + +#: ../ui/MainWindow.ui:554 +msgctxt "MainWindow|" +msgid "Ctrl+K" +msgstr "" + +#: ../ui/MainWindow.ui:563 +msgctxt "MainWindow|" +msgid "Timeline" +msgstr "" + +#: ../ui/MainWindow.ui:566 ../ui/MainWindow.ui:569 +msgctxt "MainWindow|" +msgid "Display the change history of the fossil repository" +msgstr "" + +#: ../ui/MainWindow.ui:578 +msgctxt "MainWindow|" +msgid "Open file" +msgstr "" + +#: ../ui/MainWindow.ui:581 ../ui/MainWindow.ui:584 +msgctxt "MainWindow|" +msgid "Open the selected file" +msgstr "" + +#: ../ui/MainWindow.ui:587 +msgctxt "MainWindow|" +msgid "Ctrl+Return" +msgstr "" + +#: ../ui/MainWindow.ui:596 +msgctxt "MainWindow|" +msgid "Open Containing" +msgstr "" + +#: ../ui/MainWindow.ui:599 ../ui/MainWindow.ui:602 +msgctxt "MainWindow|" +msgid "Open the folder containing the selected file" +msgstr "" + +#: ../ui/MainWindow.ui:605 +msgctxt "MainWindow|" +msgid "Alt+Return" +msgstr "" + +#: ../ui/MainWindow.ui:614 ../src/MainWindow.cpp:1913 +msgctxt "MainWindow|" +msgid "Undo" +msgstr "" + +#: ../ui/MainWindow.ui:617 ../ui/MainWindow.ui:620 +msgctxt "MainWindow|" +msgid "Undo the last fossil action" +msgstr "" + +#: ../ui/MainWindow.ui:623 +msgctxt "MainWindow|" +msgid "Ctrl+Z" +msgstr "" + +#: ../ui/MainWindow.ui:632 +msgctxt "MainWindow|" +msgid "&About..." +msgstr "" + +#: ../ui/MainWindow.ui:635 +msgctxt "MainWindow|" +msgid "About Fuel" +msgstr "" + +#: ../ui/MainWindow.ui:644 ../src/MainWindow.cpp:1956 +msgctxt "MainWindow|" +msgid "Update" +msgstr "" + +#: ../ui/MainWindow.ui:647 ../ui/MainWindow.ui:650 +msgctxt "MainWindow|" +msgid "Update the workspace to the latest version" +msgstr "" + +#: ../ui/MainWindow.ui:653 +msgctxt "MainWindow|" +msgid "Ctrl+U" +msgstr "" + +#: ../ui/MainWindow.ui:662 +msgctxt "MainWindow|" +msgid "&Preferences..." +msgstr "" + +#: ../ui/MainWindow.ui:665 ../ui/MainWindow.ui:668 +msgctxt "MainWindow|" +msgid "Fuel Preferences" +msgstr "" + +#: ../ui/MainWindow.ui:679 +msgctxt "MainWindow|" +msgid "&Modified" +msgstr "" + +#: ../ui/MainWindow.ui:682 +msgctxt "MainWindow|" +msgid "Show modifed files" +msgstr "" + +#: ../ui/MainWindow.ui:693 +msgctxt "MainWindow|" +msgid "&Unchanged" +msgstr "" + +#: ../ui/MainWindow.ui:696 +msgctxt "MainWindow|" +msgid "Show unchanged files" +msgstr "" + +#: ../ui/MainWindow.ui:707 +msgctxt "MainWindow|" +msgid "Un&known" +msgstr "" + +#: ../ui/MainWindow.ui:710 +msgctxt "MainWindow|" +msgid "Show unknown files" +msgstr "" + +#: ../ui/MainWindow.ui:718 +msgctxt "MainWindow|" +msgid "&Ignored" +msgstr "" + +#: ../ui/MainWindow.ui:721 +msgctxt "MainWindow|" +msgid "Show ignored files" +msgstr "" + +#: ../ui/MainWindow.ui:729 +msgctxt "MainWindow|" +msgid "File &List" +msgstr "" + +#: ../ui/MainWindow.ui:732 ../ui/MainWindow.ui:735 +msgctxt "MainWindow|" +msgid "View as files as a list" +msgstr "" + +#: ../ui/MainWindow.ui:738 +msgctxt "MainWindow|" +msgid "View the workspace as a list of files" +msgstr "" + +#: ../ui/MainWindow.ui:747 +msgctxt "MainWindow|" +msgid "Open Folder" +msgstr "" + +#: ../ui/MainWindow.ui:750 ../ui/MainWindow.ui:753 +msgctxt "MainWindow|" +msgid "Open the selected folder" +msgstr "" + +#: ../ui/MainWindow.ui:762 ../src/MainWindow.cpp:2161 ../src/MainWindow.cpp:2206 +msgctxt "MainWindow|" +msgid "Rename Folder" +msgstr "" + +#: ../ui/MainWindow.ui:765 ../ui/MainWindow.ui:768 +msgctxt "MainWindow|" +msgid "Rename the selected folder" +msgstr "" + +#: ../ui/MainWindow.ui:777 +msgctxt "MainWindow|" +msgid "Stash changes" +msgstr "" + +#: ../ui/MainWindow.ui:780 +msgctxt "MainWindow|" +msgid "Show the stash" +msgstr "" + +#: ../ui/MainWindow.ui:789 ../src/MainWindow.cpp:2358 +msgctxt "MainWindow|" +msgid "Apply Stash" +msgstr "" + +#: ../ui/MainWindow.ui:792 ../ui/MainWindow.ui:795 +msgctxt "MainWindow|" +msgid "Apply stashed changes" +msgstr "" + +#: ../ui/MainWindow.ui:803 +msgctxt "MainWindow|" +msgid "&Stashed Changes" +msgstr "" + +#: ../ui/MainWindow.ui:806 +msgctxt "MainWindow|" +msgid "View the Stash" +msgstr "" + +#: ../ui/MainWindow.ui:809 +msgctxt "MainWindow|" +msgid "Show the list of stashed changes" +msgstr "" + +#: ../ui/MainWindow.ui:818 +msgctxt "MainWindow|" +msgid "Delete Stash" +msgstr "" + +#: ../ui/MainWindow.ui:827 +msgctxt "MainWindow|" +msgid "Diff Stash" +msgstr "" + +#: ../src/MainWindow.cpp:249 ../src/MainWindow.cpp:306 +#: ../src/MainWindow.cpp:314 ../src/MainWindow.cpp:384 +#: ../src/MainWindow.cpp:412 ../src/MainWindow.cpp:420 +#: ../src/MainWindow.cpp:431 ../src/MainWindow.cpp:449 +#: ../src/MainWindow.cpp:482 ../src/MainWindow.cpp:1678 +#: ../src/MainWindow.cpp:1692 ../src/MainWindow.cpp:1734 +#: ../src/MainWindow.cpp:1743 ../src/MainWindow.cpp:1866 +#: ../src/MainWindow.cpp:2173 ../src/MainWindow.cpp:2182 +#: ../src/MainWindow.cpp:2245 ../src/MainWindow.cpp:2258 +#: ../src/MainWindow.cpp:2266 ../src/MainWindow.cpp:2280 +#: ../src/MainWindow.cpp:2286 ../src/MainWindow.cpp:2328 +#: ../src/MainWindow.cpp:2337 +msgctxt "MainWindow|" +msgid "Error" +msgstr "" + +#: ../src/MainWindow.cpp:249 +#, qt-format +msgctxt "MainWindow|" +msgid "Could not change current directory to '%0'" +msgstr "" + +#: ../src/MainWindow.cpp:291 +msgctxt "MainWindow|" +msgid "" +"A workspace does not exist in this folder.\n" +"Would you like to create one here?" +msgstr "" + +#: ../src/MainWindow.cpp:291 +msgctxt "MainWindow|" +msgid "Open Workspace" +msgstr "" + +#: ../src/MainWindow.cpp:295 ../src/MainWindow.cpp:397 +msgctxt "MainWindow|" +msgid "Select Workspace Folder" +msgstr "" + +#: ../src/MainWindow.cpp:306 ../src/MainWindow.cpp:420 +msgctxt "MainWindow|" +msgid "Could not change current directory" +msgstr "" + +#: ../src/MainWindow.cpp:314 ../src/MainWindow.cpp:431 +msgctxt "MainWindow|" +msgid "Could not open repository." +msgstr "" + +#: ../src/MainWindow.cpp:352 +msgctxt "MainWindow|" +msgid "Fossil Files (*.fossil _FOSSIL_ .fslckout)" +msgstr "" + +#: ../src/MainWindow.cpp:356 +msgctxt "MainWindow|" +msgid "Open Fossil Repository" +msgstr "" + +#: ../src/MainWindow.cpp:369 +msgctxt "MainWindow|" +msgid "Fossil Repositories (*.fossil)" +msgstr "" + +#: ../src/MainWindow.cpp:374 +msgctxt "MainWindow|" +msgid "New Fossil Repository" +msgstr "" + +#: ../src/MainWindow.cpp:384 +msgctxt "MainWindow|" +msgid "" +"A repository file already exists.\n" +"Repository creation aborted." +msgstr "" + +#: ../src/MainWindow.cpp:393 +msgctxt "MainWindow|" +msgid "Create Workspace" +msgstr "" + +#: ../src/MainWindow.cpp:393 +msgctxt "MainWindow|" +msgid "Would you like to create a workspace in the same folder?" +msgstr "" + +#: ../src/MainWindow.cpp:412 +msgctxt "MainWindow|" +msgid "Could not create repository." +msgstr "" + +#: ../src/MainWindow.cpp:443 +msgctxt "MainWindow|" +msgid "Close Workspace" +msgstr "" + +#: ../src/MainWindow.cpp:443 +msgctxt "MainWindow|" +msgid "Are you sure want to close this workspace?" +msgstr "" + +#: ../src/MainWindow.cpp:449 +msgctxt "MainWindow|" +msgid "" +"Cannot close the workspace.\n" +"Are there still uncommitted changes available?" +msgstr "" + +#: ../src/MainWindow.cpp:482 +msgctxt "MainWindow|" +msgid "Could not clone the repository" +msgstr "" + +#: ../src/MainWindow.cpp:586 +msgctxt "MainWindow|" +msgid "No workspace detected." +msgstr "" + +#: ../src/MainWindow.cpp:594 +msgctxt "MainWindow|" +msgid "Old repository schema detected. Consider running 'fossil rebuild'" +msgstr "" + +#: ../src/MainWindow.cpp:631 +msgctxt "MainWindow|" +msgid "Scanning Workspace..." +msgstr "" + +#: ../src/MainWindow.cpp:671 +msgctxt "MainWindow|" +msgid "Updating..." +msgstr "" + +#: ../src/MainWindow.cpp:831 +msgctxt "MainWindow|" +msgid "Folders" +msgstr "" + +#: ../src/MainWindow.cpp:858 +msgctxt "MainWindow|" +msgid "S" +msgstr "" + +#: ../src/MainWindow.cpp:858 +msgctxt "MainWindow|" +msgid "File" +msgstr "" + +#: ../src/MainWindow.cpp:858 +msgctxt "MainWindow|" +msgid "Ext" +msgstr "" + +#: ../src/MainWindow.cpp:858 +msgctxt "MainWindow|" +msgid "Modified" +msgstr "" + +#: ../src/MainWindow.cpp:865 +msgctxt "MainWindow|" +msgid "Path" +msgstr "" + +#: ../src/MainWindow.cpp:991 +msgctxt "MainWindow|" +msgid "Stashes" +msgstr "" + +#: ../src/MainWindow.cpp:1084 +msgctxt "MainWindow|" +msgid "Running Fossil" +msgstr "" + +#: ../src/MainWindow.cpp:1117 +msgctxt "MainWindow|" +msgid "Terminated" +msgstr "" + +#: ../src/MainWindow.cpp:1542 +msgctxt "MainWindow|" +msgid "Fossil UI is already running" +msgstr "" + +#: ../src/MainWindow.cpp:1551 +msgctxt "MainWindow|" +msgid "Starting Fossil browser UI. Please wait." +msgstr "" + +#: ../src/MainWindow.cpp:1858 ../src/MainWindow.cpp:2161 +msgctxt "MainWindow|" +msgid "New name" +msgstr "" + +#: ../src/MainWindow.cpp:1937 +msgctxt "MainWindow|" +msgid "" +"a GUI frontend to the Fossil SCM\n" +"by Kostas Karanikolas\n" +"Released under the GNU GPL" +msgstr "" + +#: ../src/MainWindow.cpp:2173 ../src/MainWindow.cpp:2182 +msgctxt "MainWindow|" +msgid "Cannot rename folder." +msgstr "" + +#: ../src/MainWindow.cpp:2173 +msgctxt "MainWindow|" +msgid "Folder name contains invalid characters." +msgstr "" + +#: ../src/MainWindow.cpp:2182 +msgctxt "MainWindow|" +msgid "This folder exists already." +msgstr "" + +#: ../src/MainWindow.cpp:2222 +msgctxt "MainWindow|" +msgid "Move aborted due to errors" +msgstr "" + +#: ../src/MainWindow.cpp:2242 +#, qt-format +msgctxt "MainWindow|" +msgid "Creating folder '%0'" +msgstr "" + +#: ../src/MainWindow.cpp:2245 +#, qt-format +msgctxt "MainWindow|" +msgid "Cannot make target folder '%0'" +msgstr "" + +#: ../src/MainWindow.cpp:2262 +#, qt-format +msgctxt "MainWindow|" +msgid "Copying file '%0' to '%1'" +msgstr "" + +#: ../src/MainWindow.cpp:2276 +#, qt-format +msgctxt "MainWindow|" +msgid "Removing old file '%0'" +msgstr "" + +#: ../src/MainWindow.cpp:2291 +msgctxt "MainWindow|" +msgid "Folder renamed completed. Don't forget to commit!" +msgstr "" + +#: ../src/MainWindow.cpp:2369 +msgctxt "MainWindow|" +msgid "Stash application aborted due to errors" +msgstr "" + +#: ../src/MainWindow.cpp:2382 ../src/MainWindow.cpp:2410 +msgctxt "MainWindow|" +msgid "Stash deletion aborted due to errors" +msgstr "" + +#: ../src/MainWindow.cpp:1096 ../src/MainWindow.cpp:1557 +msgctxt "MainWindow|" +msgid "Could not start Fossil executable '%s'" +msgstr "" + +#: ../src/MainWindow.cpp:1678 ../src/MainWindow.cpp:1692 +msgctxt "MainWindow|" +msgid "" +"A remote repository has not been specified.\n" +"Use the preferences window to set the remote repostory location" +msgstr "" + +#: ../src/MainWindow.cpp:1711 +msgctxt "MainWindow|" +msgid "Commit Changes" +msgstr "" + +#: ../src/MainWindow.cpp:1734 ../src/MainWindow.cpp:1743 +msgctxt "MainWindow|" +msgid "Could not generate comment file" +msgstr "" + +#: ../src/MainWindow.cpp:1780 +msgctxt "MainWindow|" +msgid "Add files" +msgstr "" + +#: ../src/MainWindow.cpp:1780 +msgctxt "MainWindow|" +msgid "The following files will be added. Are you sure?" +msgstr "" + +#: ../src/MainWindow.cpp:1805 +msgctxt "MainWindow|" +msgid "Remove files" +msgstr "" + +#: ../src/MainWindow.cpp:1805 +msgctxt "MainWindow|" +msgid "" +"The following files will be removed from the repository.\n" +"Are you sure?" +msgstr "" + +#: ../src/MainWindow.cpp:1805 +msgctxt "MainWindow|" +msgid "Also delete the local files" +msgstr "" + +#: ../src/MainWindow.cpp:1837 +msgctxt "MainWindow|" +msgid "Revert files" +msgstr "" + +#: ../src/MainWindow.cpp:1837 +msgctxt "MainWindow|" +msgid "The following files will be reverted. Are you sure?" +msgstr "" + +#: ../src/MainWindow.cpp:1866 +#, qt-format +msgctxt "MainWindow|" +msgid "" +"File '%0' already exists.\n" +"Rename aborted." +msgstr "" + +#: ../src/MainWindow.cpp:1913 +msgctxt "MainWindow|" +msgid "The following actions will be undone. Are you sure?" +msgstr "" + +#: ../src/MainWindow.cpp:1932 +#, qt-format +msgctxt "MainWindow|" +msgid "Fossil version %0" +msgstr "" + +#: ../src/MainWindow.cpp:1935 +msgctxt "MainWindow|" +msgid "About Fuel..." +msgstr "" + +#: ../src/MainWindow.cpp:1941 +msgctxt "MainWindow|" +msgid "" +"Icon-set by Deleket - Jojo Mendoza\n" +"Available under the CC Attribution Noncommercial No Derivate 3.0 License" +msgstr "" + +#: ../src/MainWindow.cpp:1956 +msgctxt "MainWindow|" +msgid "The following files will be updated. Are you sure?" +msgstr "" + +#: ../src/MainWindow.cpp:2206 +#, qt-format +msgctxt "MainWindow|" +msgid "" +"Renaming folder '%0' to '%1'\n" +"The following files will be moved in the repository. Are you sure?" +msgstr "" + +#: ../src/MainWindow.cpp:2209 +msgctxt "MainWindow|" +msgid "Also move the workspace files" +msgstr "" + +#: ../src/MainWindow.cpp:2258 +#, qt-format +msgctxt "MainWindow|" +msgid "Target file '%0' exists already" +msgstr "" + +#: ../src/MainWindow.cpp:2266 +#, qt-format +msgctxt "MainWindow|" +msgid "Cannot copy file '%0' to '%1'" +msgstr "" + +#: ../src/MainWindow.cpp:2280 +#, qt-format +msgctxt "MainWindow|" +msgid "Source file '%0' does not exist" +msgstr "" + +#: ../src/MainWindow.cpp:2286 +#, qt-format +msgctxt "MainWindow|" +msgid "Cannot remove file '%0'" +msgstr "" + +#: ../src/MainWindow.cpp:2320 +msgctxt "MainWindow|" +msgid "Revert stashed files" +msgstr "" + +#: ../src/MainWindow.cpp:2321 +msgctxt "MainWindow|" +msgid "Stash Changes" +msgstr "" + +#: ../src/MainWindow.cpp:2328 +msgctxt "MainWindow|" +msgid "Invalid stash name" +msgstr "" + +#: ../src/MainWindow.cpp:2337 +msgctxt "MainWindow|" +msgid "This stash already exists" +msgstr "" + +#: ../src/MainWindow.cpp:2358 +msgctxt "MainWindow|" +msgid "The following stashes will be applied. Are you sure?" +msgstr "" + +#: ../src/MainWindow.cpp:2358 +msgctxt "MainWindow|" +msgid "Delete after applying" +msgstr "" + +#: ../src/MainWindow.cpp:2399 +msgctxt "MainWindow|" +msgid "Delete Stashes" +msgstr "" + +#: ../src/MainWindow.cpp:2399 +msgctxt "MainWindow|" +msgid "The following stashes will be deleted. Are you sure?" +msgstr "" + +#: ../ui/SettingsDialog.ui:17 +msgctxt "SettingsDialog|" +msgid "Settings" +msgstr "" + +#: ../ui/SettingsDialog.ui:34 +msgctxt "SettingsDialog|" +msgid "Application" +msgstr "" + +#: ../ui/SettingsDialog.ui:52 +msgctxt "SettingsDialog|" +msgid "Fossil Path" +msgstr "" + +#: ../ui/SettingsDialog.ui:61 +msgctxt "SettingsDialog|" +msgid "Path to the fossil executable. Leave blank to use the default fossil" +msgstr "" + +#: ../ui/SettingsDialog.ui:80 ../ui/SettingsDialog.ui:123 +#: ../ui/SettingsDialog.ui:166 +msgctxt "SettingsDialog|" +msgid "..." +msgstr "" + +#: ../ui/SettingsDialog.ui:95 +msgctxt "SettingsDialog|" +msgid "Graphical Diff " +msgstr "" + +#: ../ui/SettingsDialog.ui:104 +msgctxt "SettingsDialog|" +msgid "Path to graphical diff tool" +msgstr "" + +#: ../ui/SettingsDialog.ui:138 +msgctxt "SettingsDialog|" +msgid "Graphical Merge" +msgstr "" + +#: ../ui/SettingsDialog.ui:147 +msgctxt "SettingsDialog|" +msgid "Path to the graphical merge tool" +msgstr "" + +#: ../ui/SettingsDialog.ui:181 +msgctxt "SettingsDialog|" +msgid "Commit Messages" +msgstr "" + +#: ../ui/SettingsDialog.ui:194 +msgctxt "SettingsDialog|" +msgid "Clear the commit message history" +msgstr "" + +#: ../ui/SettingsDialog.ui:197 +msgctxt "SettingsDialog|" +msgid "Clear" +msgstr "" + +#: ../ui/SettingsDialog.ui:210 +msgctxt "SettingsDialog|" +msgid "Double-click Action" +msgstr "" + +#: ../ui/SettingsDialog.ui:223 +msgctxt "SettingsDialog|" +msgid "Action to perfom when double-clicking a file" +msgstr "" + +#: ../ui/SettingsDialog.ui:233 +msgctxt "SettingsDialog|" +msgid "Language" +msgstr "" + +#: ../ui/SettingsDialog.ui:246 +msgctxt "SettingsDialog|" +msgid "Language to use for the user interface" +msgstr "" + +#: ../ui/SettingsDialog.ui:258 +msgctxt "SettingsDialog|" +msgid "Repository" +msgstr "" + +#: ../ui/SettingsDialog.ui:276 +msgctxt "SettingsDialog|" +msgid "Remote Url" +msgstr "" + +#: ../ui/SettingsDialog.ui:289 +msgctxt "SettingsDialog|" +msgid "" +"The remote url used to push/pull changes.\n" +"URL style user names and passwords are also supported.\n" +"For example http://username:password@server.com/fossil" +msgstr "" + +#: ../ui/SettingsDialog.ui:304 +msgctxt "SettingsDialog|" +msgid "Ignore List" +msgstr "" + +#: ../ui/SettingsDialog.ui:317 +msgctxt "SettingsDialog|" +msgid "" +"A comma separated list of glob-style file/path patterns ignored in fossil " +"file operations" +msgstr "" + +#: ../ui/SettingsDialog.ui:330 +msgctxt "SettingsDialog|" +msgid "Ignore CR/NL" +msgstr "" + +#: ../ui/SettingsDialog.ui:343 +msgctxt "SettingsDialog|" +msgid "" +"A comma separated list of glob-style file patterns to exclude from fossil's " +"CR/NL consistency checking" +msgstr "" + +#: ../src/SettingsDialog.cpp:16 +msgctxt "SettingsDialog|" +msgid "Applications" +msgstr "" + +#: ../src/SettingsDialog.cpp:24 +#, qt-format +msgctxt "SettingsDialog|" +msgid "Select %1" +msgstr "" + +#: ../src/SettingsDialog.cpp:45 +msgctxt "SettingsDialog|" +msgid "Diff File" +msgstr "" + +#: ../src/SettingsDialog.cpp:46 +msgctxt "SettingsDialog|" +msgid "Open File" +msgstr "" + +#: ../src/SettingsDialog.cpp:47 +msgctxt "SettingsDialog|" +msgid "Open Containing Folder" +msgstr "" + +#: ../src/SettingsDialog.cpp:97 +msgctxt "SettingsDialog|" +msgid "Restart required" +msgstr "" + +#: ../src/SettingsDialog.cpp:97 +msgctxt "SettingsDialog|" +msgid "The language change will take effect after restarting the application" +msgstr "" + +#: ../src/SettingsDialog.cpp:111 +msgctxt "SettingsDialog|" +msgid "Fossil executable" +msgstr "" + +#: ../src/SettingsDialog.cpp:119 +msgctxt "SettingsDialog|" +msgid "Graphical Diff application" +msgstr "" + +#: ../src/SettingsDialog.cpp:127 +msgctxt "SettingsDialog|" +msgid "Graphical Merge application" +msgstr "" + +#: ../src/SettingsDialog.cpp:135 +msgctxt "SettingsDialog|" +msgid "Clear Commit Message History" +msgstr "" + +#: ../src/SettingsDialog.cpp:135 +msgctxt "SettingsDialog|" +msgid "Are you sure want to clear the commit message history?" +msgstr "" + +#: ../src/SettingsDialog.cpp:142 +msgctxt "SettingsDialog|" +msgid "English (US)" +msgstr "" + +#: ../src/SettingsDialog.cpp:143 +msgctxt "SettingsDialog|" +msgid "Japanese" +msgstr "" + +#: ../src/SettingsDialog.cpp:144 +msgctxt "SettingsDialog|" +msgid "Greek" +msgstr "" diff --git a/intl/update.sh b/intl/update.sh new file mode 100755 index 0000000..715d3f3 --- /dev/null +++ b/intl/update.sh @@ -0,0 +1,14 @@ +#!/bin/sh +# Regenerate the the reference pot +lupdate ../fuel.pro -ts en_US.ts -source-language en.US -target-language en.US +lconvert en_US.ts -o en_US.pot + +# Merge reference pot file with all languages +# Requires the gettext tool msgmerge +for i in *.po +do + echo "Merging $i" + msgmerge --update $i en_US.pot +done + + diff --git a/manifest b/manifest index 9eac04d..1051f22 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Initial\ssupport\sfor\slocalization -D 2012-09-23T10:20:57.755 +C -\sReorganized\ssettings\smanagement\n-\sAdded\slocalisation\sUI\n-\sAdded\sGreek\slocalisation\n-\sMessage\stext\srefactoring\n +D 2012-10-08T11:28:08.233 F dist/arch/PKGBUILD dd21073c035af4e6a4ecb3842c1fd7ae45c5e93d F dist/win/fuel.iss ef3558dbba409eb194938b930377fc9ee27d319e F doc/Building.txt 7c0f1060d4a08ed330058d4a3a68905c05228381 @@ -7,6 +7,9 @@ F doc/Changes.txt e21c9355aaeb7643c8d6784effd2f9ebadf3a8e0 F doc/License.txt 4cc77b90af91e615a64ae04893fdffa7939db84c F fuel.pro f9053752c0ea40a7f9c90ac738a6c1689b92dfe5 F intl/convert.sh 6dfabd9c78df20b2c5c767b301cc4cd8813f442d x +F intl/el_GR.po 3e5e6ce253260b706d2867eb5a173910a4592945 +F intl/en_US.pot bcc376ed49e645b8722f3dd18e45a229de4709bc +F intl/update.sh 321b3012ea5129e9ea32e52df4f1de509e974882 x F rsrc/fuel.desktop 43145556bc61f5a91b497c38a16aec44af271d29 F rsrc/fuel.rc 8e9ac966f283102c11a77cd7f936cdc09e09bd79 F rsrc/icons/Address\sBook-01.png ef2cec80ea5a559b72e8be4a344a1869fe69cbd8 @@ -164,7 +167,7 @@ F rsrc/icons/Zoom-01.png 67ca532922e9166325c5c75fce1ca3fbb0d2b6a6 F rsrc/icons/fuel.icns 81e535004b62db801a02f3e15d0a33afc9d4070b F rsrc/icons/fuel.ico eb529ab3332a17b9302ef3e851db5b9ebce2a038 F rsrc/icons/fuel.png 40daf53b7f6bdcdd0d6aa5ef433d078ec5ea4342 -F rsrc/resources.qrc e98383ed205f4e37100c60057e0129c3b86dea53 +F rsrc/resources.qrc 02f23809e7e24747d391f97de3a92518c3393410 F src/CloneDialog.cpp 85bc6473d1e3a47d0f981e96357a376be63ab0bc F src/CloneDialog.h 1c63da4346ca20b67d52016b7b64875b9c5b477f F src/CommitDialog.cpp c62ce7fb234e43ca8641c16522c750e6419bf947 @@ -175,10 +178,10 @@ F src/FileTableView.cpp 5ddf8c391c9a3ac449ec61fb1db837b577afeec2 F src/FileTableView.h 03e56d87c2d46411b9762b87f4d301619aaf18df F src/LoggedProcess.cpp 2a1e5c94bc1e57c8984563e66c210e43a14dc60c F src/LoggedProcess.h 85df7c635c807a5a0e8c4763f17a0752aaff7261 -F src/MainWindow.cpp 026cb929ead96dd5885be7ff14190c7ff8d033d5 -F src/MainWindow.h 7839457d09848b40beb03e36ddc4f755d8631881 -F src/SettingsDialog.cpp 824ab2445df35aec131e0c1d891c96f660c1bb28 -F src/SettingsDialog.h 09d3f375b2fab59248fae9bd12419f2985720d28 +F src/MainWindow.cpp f25ef475c51053c08aa786766fac68b50d652958 +F src/MainWindow.h 3f3825cab25058666b6706b36f51269ad5f65f3e +F src/SettingsDialog.cpp 38ad760300955de5cce15d83702e1237ea3148a1 +F src/SettingsDialog.h 528e77b6e262a020e02df78017387e498abb453e F src/Utils.cpp caca5268e3194abe77211040bf9511a82909d2e6 F src/Utils.h 5af911147390879176e587fc60fb662490bb9e97 F src/main.cpp fcd78f44b893fb9c93bbb71a2e861bd36af95f88 @@ -187,8 +190,8 @@ F ui/CloneDialog.ui 0fc820804df91f16506ee466a44519fdd44e468f F ui/CommitDialog.ui 6200f6cabdcf40a20812e811be28e0793f82516f F ui/FileActionDialog.ui 89bb4dc2d0b8adcd41adcb11ec65f2028a09a12d F ui/MainWindow.ui 6ad583b6d864ccbeac8e3fd1d05cd964bc17c5f9 -F ui/SettingsDialog.ui cd6faff19c1a6c2640193eb5a258f0daa926a2cf -P 1760813f6ce3ed23ab45bee2fbde8cbf487d2481 -R 12e9a8ebc31d18b45a1d208db05caf62 +F ui/SettingsDialog.ui 7cc01b1a63c59258ee4865022108852b5126db52 +P 8d881de4e52069221dd6ae38a436449fbccdac25 +R 7f1d11773b50d22aa625c653cc91f018 U kostas -Z 63bee23b106d51238aa4d200b0a7da88 +Z 67ce7969d95085d2e0a274986395168f diff --git a/manifest.uuid b/manifest.uuid index d58c032..e9042b6 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -8d881de4e52069221dd6ae38a436449fbccdac25 \ No newline at end of file +05f2cac387c4a3863197f794c68421f7e04fb28e \ No newline at end of file diff --git a/rsrc/resources.qrc b/rsrc/resources.qrc index 348c7ad..eda58be 100644 --- a/rsrc/resources.qrc +++ b/rsrc/resources.qrc @@ -152,4 +152,7 @@ icons/Zoom In-01.png icons/Zoom Out-01.png + + intl/el_GR.qm + diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index ae7d849..61e44eb 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -198,7 +198,7 @@ MainWindow::MainWindow(Settings &_settings, QWidget *parent, QString *workspaceP viewMode = VIEWMODE_TREE; - loadSettings(); + applySettings(); // Apply any explicit workspace path if available if(workspacePath && !workspacePath->isEmpty()) @@ -217,7 +217,7 @@ MainWindow::MainWindow(Settings &_settings, QWidget *parent, QString *workspaceP MainWindow::~MainWindow() { stopUI(); - saveSettings(); + updateSettings(); // Dispose RepoFiles for(filemap_t::iterator it = workspaceFiles.begin(); it!=workspaceFiles.end(); ++it) @@ -246,7 +246,7 @@ void MainWindow::setCurrentWorkspace(const QString &workspace) addWorkspace(new_workspace); if(!QDir::setCurrent(new_workspace)) - QMessageBox::critical(this, tr("Error"), tr("Could not change current diectory to '%0'").arg(new_workspace), QMessageBox::Ok ); + QMessageBox::critical(this, tr("Error"), tr("Could not change current directory to '%0'").arg(new_workspace), QMessageBox::Ok ); } //------------------------------------------------------------------------------ @@ -288,7 +288,7 @@ bool MainWindow::openWorkspace(const QString &path) if(!(QFileInfo(checkout_file1).exists() || QFileInfo(checkout_file2).exists()) ) { - if(QMessageBox::Yes !=DialogQuery(this, tr("Open Fossil"), tr("A workspace does not exist in this folder.\nWould you like to create one here?"))) + if(QMessageBox::Yes !=DialogQuery(this, tr("Open Workspace"), tr("A workspace does not exist in this folder.\nWould you like to create one here?"))) { wkspace = QFileDialog::getExistingDirectory( this, @@ -366,7 +366,7 @@ void MainWindow::on_actionOpenRepository_triggered() //------------------------------------------------------------------------------ void MainWindow::on_actionNewRepository_triggered() { - QString filter(tr("Repositories (*.fossil)")); + QString filter(tr("Fossil Repositories (*.fossil)")); // Get Repository file QString repo_path = QFileDialog::getSaveFileName( @@ -591,7 +591,7 @@ bool MainWindow::refresh() } else if(st==REPO_OLD_SCHEMA) { - setStatus(tr("Old fossil schema detected. Consider running 'fossil rebuild'")); + setStatus(tr("Old repository schema detected. Consider running 'fossil rebuild'")); enableActions(false); repoFileModel.removeRows(0, repoFileModel.rowCount()); repoDirModel.clear(); @@ -648,7 +648,7 @@ void MainWindow::scanWorkspace() if(!ui->actionViewIgnored->isChecked()) { // QDir expects multiple specs being separated by a semicolon - ignore = settings.Mappings[FUEL_SETTING_IGNORE_GLOB].Value.toString().replace(',',';'); + ignore = settings.GetFossilValue(FOSSIL_SETTING_IGNORE_GLOB).toString().replace(',',';'); } scanDirectory(all_files, wkdir, wkdir, ignore); @@ -1093,7 +1093,7 @@ bool MainWindow::runFossilRaw(const QStringList &args, QStringList *output, int process.start(fossil, args); if(!process.waitForStarted()) { - log(tr("Could not start Fossil executable '%s'\n").arg(fossil)); + log(tr("Could not start Fossil executable '%s'").arg(fossil)+"\n"); return false; } const QChar EOL_MARK('\n'); @@ -1264,7 +1264,7 @@ bool MainWindow::runFossilRaw(const QStringList &args, QStringList *output, int QString MainWindow::getFossilPath() { // Use the user-specified fossil if available - QString fossil_path = settings.Mappings[FUEL_SETTING_FOSSIL_PATH].Value.toString(); + QString fossil_path = settings.GetValue(FUEL_SETTING_FOSSIL_PATH).toString(); if(!fossil_path.isEmpty()) return QDir::toNativeSeparators(fossil_path); @@ -1282,22 +1282,15 @@ QString MainWindow::getFossilPath() return fossil_exe; } //------------------------------------------------------------------------------ -void MainWindow::loadSettings() +void MainWindow::applySettings() { - if(settings.store->contains(FUEL_SETTING_FOSSIL_PATH)) - settings.Mappings[FUEL_SETTING_FOSSIL_PATH].Value = settings.store->value(FUEL_SETTING_FOSSIL_PATH); + QSettings *store = settings.GetStore(); - if(settings.store->contains(FUEL_SETTING_COMMIT_MSG)) - settings.Mappings[FUEL_SETTING_COMMIT_MSG].Value = settings.store->value(FUEL_SETTING_COMMIT_MSG); - - if(settings.store->contains(FUEL_SETTING_FILE_DBLCLICK)) - settings.Mappings[FUEL_SETTING_FILE_DBLCLICK].Value = settings.store->value(FUEL_SETTING_FILE_DBLCLICK); - - int num_wks = settings.store->beginReadArray("Workspaces"); + int num_wks = store->beginReadArray("Workspaces"); for(int i=0; isetArrayIndex(i); - QString wk = settings.store->value("Path").toString(); + store->setArrayIndex(i); + QString wk = store->value("Path").toString(); // Skip invalid workspaces if(wk.isEmpty() || !QDir(wk).exists()) @@ -1305,80 +1298,75 @@ void MainWindow::loadSettings() addWorkspace(wk); - if(settings.store->contains("Active") && settings.store->value("Active").toBool()) + if(store->contains("Active") && store->value("Active").toBool()) setCurrentWorkspace(wk); } - settings.store->endArray(); + store->endArray(); - - if(settings.store->contains("WindowX") && settings.store->contains("WindowY")) + if(store->contains("WindowX") && store->contains("WindowY")) { QPoint _pos; - _pos.setX(settings.store->value("WindowX").toInt()); - _pos.setY(settings.store->value("WindowY").toInt()); + _pos.setX(store->value("WindowX").toInt()); + _pos.setY(store->value("WindowY").toInt()); move(_pos); } - if(settings.store->contains("WindowWidth") && settings.store->contains("WindowHeight")) + if(store->contains("WindowWidth") && store->contains("WindowHeight")) { QSize _size; - _size.setWidth(settings.store->value("WindowWidth").toInt()); - _size.setHeight(settings.store->value("WindowHeight").toInt()); + _size.setWidth(store->value("WindowWidth").toInt()); + _size.setHeight(store->value("WindowHeight").toInt()); resize(_size); } - if(settings.store->contains("ViewUnknown")) - ui->actionViewUnknown->setChecked(settings.store->value("ViewUnknown").toBool()); - if(settings.store->contains("ViewModified")) - ui->actionViewModified->setChecked(settings.store->value("ViewModified").toBool()); - if(settings.store->contains("ViewUnchanged")) - ui->actionViewUnchanged->setChecked(settings.store->value("ViewUnchanged").toBool()); - if(settings.store->contains("ViewIgnored")) - ui->actionViewIgnored->setChecked(settings.store->value("ViewIgnored").toBool()); - if(settings.store->contains("ViewAsList")) + if(store->contains("ViewUnknown")) + ui->actionViewUnknown->setChecked(store->value("ViewUnknown").toBool()); + if(store->contains("ViewModified")) + ui->actionViewModified->setChecked(store->value("ViewModified").toBool()); + if(store->contains("ViewUnchanged")) + ui->actionViewUnchanged->setChecked(store->value("ViewUnchanged").toBool()); + if(store->contains("ViewIgnored")) + ui->actionViewIgnored->setChecked(store->value("ViewIgnored").toBool()); + if(store->contains("ViewAsList")) { - ui->actionViewAsList->setChecked(settings.store->value("ViewAsList").toBool()); - viewMode = settings.store->value("ViewAsList").toBool()? VIEWMODE_LIST : VIEWMODE_TREE; + ui->actionViewAsList->setChecked(store->value("ViewAsList").toBool()); + viewMode = store->value("ViewAsList").toBool()? VIEWMODE_LIST : VIEWMODE_TREE; } ui->treeView->setVisible(viewMode == VIEWMODE_TREE); - if(settings.store->contains("ViewStash")) - ui->actionViewStash->setChecked(settings.store->value("ViewStash").toBool()); + if(store->contains("ViewStash")) + ui->actionViewStash->setChecked(store->value("ViewStash").toBool()); ui->tableViewStash->setVisible(ui->actionViewStash->isChecked()); } //------------------------------------------------------------------------------ -void MainWindow::saveSettings() +void MainWindow::updateSettings() { - // If we have a customize fossil path, save it - QString fossil_path = settings.Mappings[FUEL_SETTING_FOSSIL_PATH].Value.toString(); - settings.store->setValue(FUEL_SETTING_FOSSIL_PATH, fossil_path); - settings.store->setValue(FUEL_SETTING_COMMIT_MSG, settings.Mappings[FUEL_SETTING_COMMIT_MSG].Value); - settings.store->setValue(FUEL_SETTING_FILE_DBLCLICK, settings.Mappings[FUEL_SETTING_FILE_DBLCLICK].Value); + QSettings *store = settings.GetStore(); - settings.store->beginWriteArray("Workspaces", workspaceHistory.size()); + store->beginWriteArray("Workspaces", workspaceHistory.size()); for(int i=0; isetArrayIndex(i); - settings.store->setValue("Path", workspaceHistory[i]); + store->setArrayIndex(i); + store->setValue("Path", workspaceHistory[i]); if(getCurrentWorkspace() == workspaceHistory[i]) - settings.store->setValue("Active", true); + store->setValue("Active", true); else - settings.store->remove("Active"); + store->remove("Active"); } - settings.store->endArray(); + store->endArray(); - settings.store->setValue("WindowX", x()); - settings.store->setValue("WindowY", y()); - settings.store->setValue("WindowWidth", width()); - settings.store->setValue("WindowHeight", height()); - settings.store->setValue("ViewUnknown", ui->actionViewUnknown->isChecked()); - settings.store->setValue("ViewModified", ui->actionViewModified->isChecked()); - settings.store->setValue("ViewUnchanged", ui->actionViewUnchanged->isChecked()); - settings.store->setValue("ViewIgnored", ui->actionViewIgnored->isChecked()); - settings.store->setValue("ViewAsList", ui->actionViewAsList->isChecked()); - settings.store->setValue("ViewStash", ui->actionViewStash->isChecked()); + store->setValue("WindowX", x()); + store->setValue("WindowY", y()); + store->setValue("WindowWidth", width()); + store->setValue("WindowHeight", height()); + store->setValue("ViewUnknown", ui->actionViewUnknown->isChecked()); + store->setValue("ViewModified", ui->actionViewModified->isChecked()); + store->setValue("ViewUnchanged", ui->actionViewUnchanged->isChecked()); + store->setValue("ViewIgnored", ui->actionViewIgnored->isChecked()); + store->setValue("ViewAsList", ui->actionViewAsList->isChecked()); + store->setValue("ViewStash", ui->actionViewStash->isChecked()); } //------------------------------------------------------------------------------ @@ -1551,7 +1539,7 @@ bool MainWindow::startUI() { if(uiRunning()) { - log(tr("Fossil UI is already running\n")); + log(tr("Fossil UI is already running")+"\n"); return true; } @@ -1560,13 +1548,13 @@ bool MainWindow::startUI() fossilUI.setWorkingDirectory(getCurrentWorkspace()); log("> fossil ui
", true); - log(tr("Starting Fossil browser UI. Please wait.\n")); + log(tr("Starting Fossil browser UI. Please wait.")+"\n"); QString fossil = getFossilPath(); fossilUI.start(fossil, QStringList() << "ui"); if(!fossilUI.waitForStarted() || fossilUI.state()!=QProcess::Running) { - log(tr("Could not start Fossil executable '%s'\n").arg(fossil)); + log(tr("Could not start Fossil executable '%s'").arg(fossil)+"\n"); ui->actionFossilUI->setChecked(false); return false; } @@ -1659,7 +1647,7 @@ void MainWindow::on_actionHistory_triggered() //------------------------------------------------------------------------------ void MainWindow::on_tableView_doubleClicked(const QModelIndex &/*index*/) { - int action = settings.Mappings[FUEL_SETTING_FILE_DBLCLICK].Value.toInt(); + int action = settings.GetValue(FUEL_SETTING_FILE_DBLCLICK).toInt(); if(action==FILE_DLBCLICK_ACTION_DIFF) on_actionDiff_triggered(); else if(action==FILE_DLBCLICK_ACTION_OPEN) @@ -1683,7 +1671,7 @@ void MainWindow::on_actionOpenFile_triggered() //------------------------------------------------------------------------------ void MainWindow::on_actionPush_triggered() { - QString remote_url = settings.Mappings[FUEL_SETTING_REMOTE_URL].Value.toString(); + QString remote_url = settings.GetFossilValue(FOSSIL_SETTING_REMOTE_URL).toString(); if(remote_url.isEmpty() || remote_url == "off") { @@ -1697,7 +1685,7 @@ void MainWindow::on_actionPush_triggered() //------------------------------------------------------------------------------ void MainWindow::on_actionPull_triggered() { - QString remote_url = settings.Mappings[FUEL_SETTING_REMOTE_URL].Value.toString(); + QString remote_url = settings.GetFossilValue(FOSSIL_SETTING_REMOTE_URL).toString(); if(remote_url.isEmpty() || remote_url == "off") { @@ -1717,7 +1705,7 @@ void MainWindow::on_actionCommit_triggered() if(commit_files.empty()) return; - QStringList commit_msgs = settings.Mappings[FUEL_SETTING_COMMIT_MSG].Value.toStringList(); + QStringList commit_msgs = settings.GetValue(FUEL_SETTING_COMMIT_MSG).toStringList(); QString msg; bool aborted = !CommitDialog::run(this, tr("Commit Changes"), commit_files, msg, &commit_msgs); @@ -1727,7 +1715,7 @@ void MainWindow::on_actionCommit_triggered() if(commit_msgs.indexOf(msg)==-1) { commit_msgs.push_front(msg); - settings.Mappings[FUEL_SETTING_COMMIT_MSG].Value = commit_msgs; + settings.SetValue(FUEL_SETTING_COMMIT_MSG, commit_msgs); } if(aborted) @@ -1867,7 +1855,7 @@ void MainWindow::on_actionRename_triggered() QFileInfo fi_before(repo_files[0]); bool ok = false; - QString new_name = QInputDialog::getText(this, tr("Rename"), tr("Enter new name"), QLineEdit::Normal, fi_before.filePath(), &ok, Qt::Sheet ); + QString new_name = QInputDialog::getText(this, tr("Rename"), tr("New name"), QLineEdit::Normal, fi_before.filePath(), &ok, Qt::Sheet ); if(!ok) return; @@ -1948,7 +1936,7 @@ void MainWindow::on_actionAbout_triggered() QCoreApplication::applicationName() + " "+ QCoreApplication::applicationVersion() + " " + tr("a GUI frontend to the Fossil SCM\n" "by Kostas Karanikolas\n" - "Released under the GNU GPL\n\n") + "Released under the GNU GPL")+"\n\n" + fossil_ver + tr("Icon-set by Deleket - Jojo Mendoza\n" "Available under the CC Attribution Noncommercial No Derivate 3.0 License")); @@ -1984,15 +1972,11 @@ void MainWindow::loadFossilSettings() QStringMap kv = MakeKeyValues(out); - for(Settings::mappings_t::iterator it=settings.Mappings.begin(); it!=settings.Mappings.end(); ++it) + for(Settings::mappings_t::iterator it=settings.GetMappings().begin(); it!=settings.GetMappings().end(); ++it) { const QString &name = it.key(); Settings::Setting::SettingType type = it->Type; - // Internal types are handled explicitly - if(type == Settings::Setting::TYPE_INTERNAL) - continue; - // Command types we issue directly on fossil if(type == Settings::Setting::TYPE_FOSSIL_COMMAND) { @@ -2034,15 +2018,11 @@ void MainWindow::on_actionSettings_triggered() return; // Apply settings - for(Settings::mappings_t::iterator it=settings.Mappings.begin(); it!=settings.Mappings.end(); ++it) + for(Settings::mappings_t::iterator it=settings.GetMappings().begin(); it!=settings.GetMappings().end(); ++it) { const QString &name = it.key(); Settings::Setting::SettingType type = it.value().Type; - // Internal types are handled explicitly - if(type == Settings::Setting::TYPE_INTERNAL) - continue; - // Command types we issue directly on fossil if(type == Settings::Setting::TYPE_FOSSIL_COMMAND) { @@ -2178,7 +2158,7 @@ void MainWindow::on_actionRenameFolder_triggered() QString old_name = old_path.mid(dir_start); bool ok = false; - QString new_name = QInputDialog::getText(this, tr("Rename Folder"), tr("Enter new name"), QLineEdit::Normal, old_name, &ok, Qt::Sheet); + QString new_name = QInputDialog::getText(this, tr("Rename Folder"), tr("New name"), QLineEdit::Normal, old_name, &ok, Qt::Sheet); if(!ok || old_name==new_name) return; @@ -2190,7 +2170,7 @@ void MainWindow::on_actionRenameFolder_triggered() { if(new_name.indexOf(invalid_tokens[i])!=-1) { - QMessageBox::critical(this, tr("Error"), tr("Cannot rename folder.\nFolder name contains invalid characters.")); + QMessageBox::critical(this, tr("Error"), tr("Cannot rename folder.")+"\n" +tr("Folder name contains invalid characters.")); return; } } @@ -2199,7 +2179,7 @@ void MainWindow::on_actionRenameFolder_triggered() if(pathSet.contains(new_path)) { - QMessageBox::critical(this, tr("Error"), tr("Cannot rename folder.\nThis folder exists already.")); + QMessageBox::critical(this, tr("Error"), tr("Cannot rename folder.")+"\n" +tr("This folder exists already.")); return; } @@ -2239,7 +2219,7 @@ void MainWindow::on_actionRenameFolder_triggered() if(!runFossil(QStringList() << "mv" << QuotePath(r->getFilePath()) << QuotePath(new_file_path))) { - log(tr("Move aborted due to errors\n")); + log(tr("Move aborted due to errors")+"\n"); goto _exit; } } @@ -2259,10 +2239,10 @@ void MainWindow::on_actionRenameFolder_triggered() QDir wkdir(getCurrentWorkspace()); Q_ASSERT(wkdir.exists()); - log(tr("Creating folder '%0'\n").arg(target_path)); + log(tr("Creating folder '%0'").arg(target_path)+"\n"); if(!wkdir.mkpath(new_paths[i] + PATH_SEP + ".")) { - QMessageBox::critical(this, tr("Error"), tr("Cannot make target folder '%0'\n").arg(target_path)); + QMessageBox::critical(this, tr("Error"), tr("Cannot make target folder '%0'").arg(target_path)); goto _exit; } } @@ -2279,7 +2259,7 @@ void MainWindow::on_actionRenameFolder_triggered() goto _exit; } - log(tr("Copying file '%0' to '%1'\n").arg(r->getFilePath(), new_file_path)); + log(tr("Copying file '%0' to '%1'").arg(r->getFilePath(), new_file_path)+"\n"); if(!QFile::copy(r->getFilePath(), new_file_path)) { @@ -2293,7 +2273,7 @@ void MainWindow::on_actionRenameFolder_triggered() { RepoFile *r = files_to_move[i]; - log(tr("Removing old file '%0'\n").arg(r->getFilePath())); + log(tr("Removing old file '%0'").arg(r->getFilePath())+"\n"); if(!QFile::exists(r->getFilePath())) { @@ -2308,7 +2288,7 @@ void MainWindow::on_actionRenameFolder_triggered() } } - log(tr("Folder renamed completed. Don't forget to commit!\n")); + log(tr("Folder renamed completed. Don't forget to commit!")+"\n"); _exit: refresh(); @@ -2386,7 +2366,7 @@ void MainWindow::on_actionApplyStash_triggered() if(!runFossil(QStringList() << "stash" << "apply" << *id_it)) { - log(tr("Stash application aborted due to errors\n")); + log(tr("Stash application aborted due to errors")+"\n"); return; } } @@ -2399,7 +2379,7 @@ void MainWindow::on_actionApplyStash_triggered() if(!runFossil(QStringList() << "stash" << "drop" << *id_it)) { - log(tr("Stash deletion aborted due to errors\n")); + log(tr("Stash deletion aborted due to errors")+"\n"); return; } } @@ -2427,7 +2407,7 @@ void MainWindow::on_actionDeleteStash_triggered() if(!runFossil(QStringList() << "stash" << "drop" << *id_it)) { - log(tr("Stash deletion aborted due to errors\n")); + log(tr("Stash deletion aborted due to errors")+"\n"); return; } } diff --git a/src/MainWindow.h b/src/MainWindow.h index 5051b9b..b250c33 100644 --- a/src/MainWindow.h +++ b/src/MainWindow.h @@ -136,8 +136,8 @@ private: void scanWorkspace(); bool runFossil(const QStringList &args, QStringList *output=0, int runFlags=RUNFLAGS_NONE); bool runFossilRaw(const QStringList &args, QStringList *output=0, int *exitCode=0, int runFlags=RUNFLAGS_NONE); - void loadSettings(); - void saveSettings(); + void applySettings(); + void updateSettings(); const QString &getCurrentWorkspace(); void setCurrentWorkspace(const QString &workspace); void log(const QString &text, bool isHTML=false); diff --git a/src/SettingsDialog.cpp b/src/SettingsDialog.cpp index aee3269..26998c3 100644 --- a/src/SettingsDialog.cpp +++ b/src/SettingsDialog.cpp @@ -10,6 +10,7 @@ #include +/////////////////////////////////////////////////////////////////////////////// QString SettingsDialog::SelectExe(QWidget *parent, const QString &description) { QString filter(tr("Applications")); @@ -39,20 +40,31 @@ SettingsDialog::SettingsDialog(QWidget *parent, Settings &_settings) : { ui->setupUi(this); + CreateLangMap(); + ui->cmbDoubleClickAction->addItem(tr("Diff File")); ui->cmbDoubleClickAction->addItem(tr("Open File")); ui->cmbDoubleClickAction->addItem(tr("Open Containing Folder")); // App Settings - ui->lineFossilPath->setText(QDir::toNativeSeparators(settings->Mappings[FUEL_SETTING_FOSSIL_PATH].Value.toString())); - ui->lineGDiffCommand->setText(QDir::toNativeSeparators(settings->Mappings[FUEL_SETTING_GDIFF_CMD].Value.toString())); - ui->lineGMergeCommand->setText(QDir::toNativeSeparators(settings->Mappings[FUEL_SETTING_GMERGE_CMD].Value.toString())); - ui->cmbDoubleClickAction->setCurrentIndex(settings->Mappings[FUEL_SETTING_FILE_DBLCLICK].Value.toInt()); + ui->lineFossilPath->setText(QDir::toNativeSeparators(settings->GetValue(FUEL_SETTING_FOSSIL_PATH).toString())); + ui->cmbDoubleClickAction->setCurrentIndex(settings->GetValue(FUEL_SETTING_FILE_DBLCLICK).toInt()); + + // Initialize language combo + foreach(const LangMap &m, langMap) + ui->cmbActiveLanguage->addItem(m.name); + + // Select current language + ui->cmbActiveLanguage->setCurrentIndex( + ui->cmbActiveLanguage->findText( + LangIdToName(settings->GetValue(FUEL_SETTING_LANGUAGE).toString()))); // Repo Settings - ui->lineRemoteURL->setText(settings->Mappings[FUEL_SETTING_REMOTE_URL].Value.toString()); - ui->lineIgnore->setText(settings->Mappings[FUEL_SETTING_IGNORE_GLOB].Value.toString()); - ui->lineIgnoreCRNL->setText(settings->Mappings[FUEL_SETTING_CRNL_GLOB].Value.toString()); + ui->lineGDiffCommand->setText(QDir::toNativeSeparators(settings->GetFossilValue(FOSSIL_SETTING_GDIFF_CMD).toString())); + ui->lineGMergeCommand->setText(QDir::toNativeSeparators(settings->GetFossilValue(FOSSIL_SETTING_GMERGE_CMD).toString())); + ui->lineRemoteURL->setText(settings->GetFossilValue(FOSSIL_SETTING_REMOTE_URL).toString()); + ui->lineIgnore->setText(settings->GetFossilValue(FOSSIL_SETTING_IGNORE_GLOB).toString()); + ui->lineIgnoreCRNL->setText(settings->GetFossilValue(FOSSIL_SETTING_CRNL_GLOB).toString()); } //----------------------------------------------------------------------------- @@ -71,16 +83,28 @@ bool SettingsDialog::run(QWidget *parent, Settings &settings) //----------------------------------------------------------------------------- void SettingsDialog::on_buttonBox_accepted() { - settings->Mappings[FUEL_SETTING_FOSSIL_PATH].Value = QDir::fromNativeSeparators(ui->lineFossilPath->text()); - settings->Mappings[FUEL_SETTING_GDIFF_CMD].Value = QDir::fromNativeSeparators(ui->lineGDiffCommand->text()); - settings->Mappings[FUEL_SETTING_GMERGE_CMD].Value = QDir::fromNativeSeparators(ui->lineGMergeCommand->text()); + settings->SetValue(FUEL_SETTING_FOSSIL_PATH, QDir::fromNativeSeparators(ui->lineFossilPath->text())); Q_ASSERT(ui->cmbDoubleClickAction->currentIndex()>=FILE_DLBCLICK_ACTION_DIFF && ui->cmbDoubleClickAction->currentIndex()Mappings[FUEL_SETTING_FILE_DBLCLICK].Value = ui->cmbDoubleClickAction->currentIndex(); + settings->SetValue(FUEL_SETTING_FILE_DBLCLICK, ui->cmbDoubleClickAction->currentIndex()); - settings->Mappings[FUEL_SETTING_REMOTE_URL].Value = ui->lineRemoteURL->text(); - settings->Mappings[FUEL_SETTING_IGNORE_GLOB].Value = ui->lineIgnore->text(); - settings->Mappings[FUEL_SETTING_CRNL_GLOB].Value = ui->lineIgnoreCRNL->text(); + Q_ASSERT(settings->HasValue(FUEL_SETTING_LANGUAGE)); + QString curr_langid = settings->GetValue(FUEL_SETTING_LANGUAGE).toString(); + QString new_langid = LangNameToId(ui->cmbActiveLanguage->currentText()); + Q_ASSERT(!new_langid.isEmpty()); + settings->SetValue(FUEL_SETTING_LANGUAGE, new_langid); + + if(curr_langid != new_langid) + QMessageBox::information(this, tr("Restart required"), tr("The language change will take effect after restarting the application"), QMessageBox::Ok); + + settings->SetFossilValue(FOSSIL_SETTING_GDIFF_CMD, QDir::fromNativeSeparators(ui->lineGDiffCommand->text())); + settings->SetFossilValue(FOSSIL_SETTING_GMERGE_CMD, QDir::fromNativeSeparators(ui->lineGMergeCommand->text())); + settings->SetFossilValue(FOSSIL_SETTING_REMOTE_URL, ui->lineRemoteURL->text()); + settings->SetFossilValue(FOSSIL_SETTING_IGNORE_GLOB, ui->lineIgnore->text()); + settings->SetFossilValue(FOSSIL_SETTING_CRNL_GLOB, ui->lineIgnoreCRNL->text()); + + settings->ApplyEnvironment(); } + //----------------------------------------------------------------------------- void SettingsDialog::on_btnSelectFossil_clicked() { @@ -109,21 +133,49 @@ void SettingsDialog::on_btnSelectGMerge_clicked() void SettingsDialog::on_btnClearMessageHistory_clicked() { if(DialogQuery(this, tr("Clear Commit Message History"), tr("Are you sure want to clear the commit message history?"))==QMessageBox::Yes) - settings->Mappings[FUEL_SETTING_COMMIT_MSG].Value = QStringList(); + settings->SetValue(FUEL_SETTING_COMMIT_MSG, QStringList()); +} + +//----------------------------------------------------------------------------- +void SettingsDialog::CreateLangMap() +{ + langMap.append(LangMap("en_US", tr("English (US)"))); + langMap.append(LangMap("ja_JP", tr("Japanese"))); + langMap.append(LangMap("el_GR", tr("Greek"))); +} + +//----------------------------------------------------------------------------- +QString SettingsDialog::LangIdToName(const QString &id) +{ + foreach(const LangMap &m, langMap) + { + if(m.id == id) + return m.name; + } + + return ""; +} + +//----------------------------------------------------------------------------- +QString SettingsDialog::LangNameToId(const QString &name) +{ + foreach(const LangMap &m, langMap) + { + if(m.name == name) + return m.id; + } + + return ""; } /////////////////////////////////////////////////////////////////////////////// Settings::Settings(bool portableMode) : store(0) { - Mappings[FUEL_SETTING_FOSSIL_PATH] = Setting(); - Mappings[FUEL_SETTING_COMMIT_MSG] = Setting(); - Mappings[FUEL_SETTING_FILE_DBLCLICK] = Setting(0); // Maps to FileDblClickAction - Mappings[FUEL_SETTING_GDIFF_CMD] = Setting("", Setting::TYPE_FOSSIL_GLOBAL); - Mappings[FUEL_SETTING_GMERGE_CMD] = Setting("", Setting::TYPE_FOSSIL_GLOBAL); - Mappings[FUEL_SETTING_IGNORE_GLOB] = Setting("", Setting::TYPE_FOSSIL_LOCAL); - Mappings[FUEL_SETTING_CRNL_GLOB] = Setting("", Setting::TYPE_FOSSIL_LOCAL); - Mappings[FUEL_SETTING_REMOTE_URL] = Setting("off", Setting::TYPE_FOSSIL_COMMAND); - + Mappings.insert(FOSSIL_SETTING_GDIFF_CMD, Setting("", Setting::TYPE_FOSSIL_GLOBAL)); + Mappings.insert(FOSSIL_SETTING_GMERGE_CMD, Setting("", Setting::TYPE_FOSSIL_GLOBAL)); + Mappings.insert(FOSSIL_SETTING_IGNORE_GLOB, Setting("", Setting::TYPE_FOSSIL_LOCAL)); + Mappings.insert(FOSSIL_SETTING_CRNL_GLOB, Setting("", Setting::TYPE_FOSSIL_LOCAL)); + Mappings.insert(FOSSIL_SETTING_REMOTE_URL, Setting("off", Setting::TYPE_FOSSIL_COMMAND)); // Go into portable mode when explicitly requested or if a config file exists next to the executable QString ini_path = QDir::toNativeSeparators(QCoreApplication::applicationDirPath() + QDir::separator() + QCoreApplication::applicationName() + ".ini"); @@ -135,6 +187,12 @@ Settings::Settings(bool portableMode) : store(0) // Windows: HKEY_CURRENT_USER\Software\organizationName\Fuel store = new QSettings(QSettings::UserScope, QCoreApplication::organizationName(), QCoreApplication::applicationName()); } + Q_ASSERT(store); + + if(!HasValue(FUEL_SETTING_FILE_DBLCLICK)) + SetValue(FUEL_SETTING_FILE_DBLCLICK, 0); + if(!HasValue(FUEL_SETTING_LANGUAGE)) + SetValue(FUEL_SETTING_LANGUAGE, QLocale::system().name()); ApplyEnvironment(); } @@ -142,17 +200,54 @@ Settings::Settings(bool portableMode) : store(0) //----------------------------------------------------------------------------- Settings::~Settings() { + Q_ASSERT(store); delete store; } //----------------------------------------------------------------------------- void Settings::ApplyEnvironment() { - QString locale_name = QLocale::system().name(); - //locale_name = "el_GR"; + QString lang_id = GetValue(FUEL_SETTING_LANGUAGE).toString(); - QString locale_path = QString(":intl/intl/%0.qm").arg(locale_name); + QString locale_path = QString(":intl/intl/%0.qm").arg(lang_id); QResource res(locale_path); if(res.isValid() && translator.load(res.data(), res.size())) QCoreApplication::instance()->installTranslator(&translator); + else + SetValue(FUEL_SETTING_LANGUAGE, "en_US"); +} + +//----------------------------------------------------------------------------- +bool Settings::HasValue(const QString &name) const +{ + return store->contains(name); +} + +//----------------------------------------------------------------------------- +const QVariant Settings::GetValue(const QString &name) +{ + Q_ASSERT(HasValue(name)); + return store->value(name); +} + +//----------------------------------------------------------------------------- +void Settings::SetValue(const QString &name, const QVariant &value) +{ + store->setValue(name, value); +} + +//----------------------------------------------------------------------------- +QVariant &Settings::GetFossilValue(const QString &name) +{ + mappings_t::iterator it=Mappings.find(name); + Q_ASSERT(it!=Mappings.end()); + return it.value().Value; +} + +//----------------------------------------------------------------------------- +void Settings::SetFossilValue(const QString &name, const QVariant &value) +{ + mappings_t::iterator it=Mappings.find(name); + Q_ASSERT(it!=Mappings.end()); + it->Value = value; } diff --git a/src/SettingsDialog.h b/src/SettingsDialog.h index 791a653..ae63343 100644 --- a/src/SettingsDialog.h +++ b/src/SettingsDialog.h @@ -14,11 +14,14 @@ namespace Ui { #define FUEL_SETTING_FOSSIL_PATH "FossilPath" #define FUEL_SETTING_COMMIT_MSG "CommitMsgHistory" #define FUEL_SETTING_FILE_DBLCLICK "FileDblClickAction" -#define FUEL_SETTING_GDIFF_CMD "gdiff-command" -#define FUEL_SETTING_GMERGE_CMD "gmerge-command" -#define FUEL_SETTING_IGNORE_GLOB "ignore-glob" -#define FUEL_SETTING_CRNL_GLOB "crnl-glob" -#define FUEL_SETTING_REMOTE_URL "remote-url" +#define FUEL_SETTING_LANGUAGE "Language" + +#define FOSSIL_SETTING_GDIFF_CMD "gdiff-command" +#define FOSSIL_SETTING_GMERGE_CMD "gmerge-command" +#define FOSSIL_SETTING_IGNORE_GLOB "ignore-glob" +#define FOSSIL_SETTING_CRNL_GLOB "crnl-glob" +#define FOSSIL_SETTING_REMOTE_URL "remote-url" + enum FileDblClickAction { @@ -34,27 +37,38 @@ struct Settings { enum SettingType { - TYPE_INTERNAL, TYPE_FOSSIL_GLOBAL, TYPE_FOSSIL_LOCAL, TYPE_FOSSIL_COMMAND }; - Setting(QVariant value=QVariant(), SettingType type=TYPE_INTERNAL) : Value(value), Type(type) + Setting(QVariant value, SettingType type) : Value(value), Type(type) {} QVariant Value; SettingType Type; }; + typedef QMap mappings_t; + Settings(bool portableMode = false); ~Settings(); void ApplyEnvironment(); - typedef QMap mappings_t; + // App configuration access + class QSettings * GetStore() { return store; } + bool HasValue(const QString &name) const; // store->contains(FUEL_SETTING_FOSSIL_PATH) + const QVariant GetValue(const QString &name); // settings.store->value + void SetValue(const QString &name, const QVariant &value); // settings.store->value + + // Fossil configuration access + QVariant & GetFossilValue(const QString &name); + void SetFossilValue(const QString &name, const QVariant &value); + mappings_t & GetMappings() { return Mappings; } + +private: mappings_t Mappings; class QSettings *store; QTranslator translator; - }; @@ -78,7 +92,22 @@ private slots: private: static QString SelectExe(QWidget *parent, const QString &description); + QString LangIdToName(const QString &id); + QString LangNameToId(const QString &name); + void CreateLangMap(); + struct LangMap + { + LangMap(const QString &_id, const QString &_name) + : id(_id), name(_name) + { + } + + QString id; + QString name; + }; + + QList langMap; Ui::SettingsDialog *ui; Settings *settings; }; diff --git a/ui/SettingsDialog.ui b/ui/SettingsDialog.ui index 19dbe02..7ddb54e 100644 --- a/ui/SettingsDialog.ui +++ b/ui/SettingsDialog.ui @@ -227,6 +227,26 @@ + + + + Language + + + + + + + + 0 + 0 + + + + Language to use for the user interface + + +