Merge pull request #3189 from mtsio/master

internationalization of editor error messages and greek translations
This commit is contained in:
Ben Fry
2015-04-13 16:32:07 -04:00
3 changed files with 163 additions and 38 deletions
+21
View File
@@ -314,6 +314,27 @@ editor.status.printing.error = Error while printing.
editor.status.printing.canceled = Printing canceled.
editor.status.copy_as_html = Code formatted as HTML has been copied to the clipboard.
# Errors
editor.status.error_on = Error on
editor.status.missing.semi_colon = Missing a semi-colon
editor.status.missing.open_sq_bracket = Missing opening square bracket
editor.status.missing.closing_sq_bracket = Missing closing square bracket
editor.status.missing.open_paren = Missing opening parentheses
editor.status.missing.closing_paren = Missing closing parentheses
editor.status.missing.open_curly_bracket = Missing opening curly bracket
editor.status.missing.closing_curly_bracket = Missing closing curly bracket
editor.status.missing.add = Consider adding a
editor.status.reserved_words = "color" and "int" are reserved words & can't be used as variable names
# methoddef, varname, classname, namefield, typeA, typeB will be replaced with the correct value during runtime (don't translate)
editor.status.undefined_method = The method methoddef doesn't exist
editor.status.empty_param = The method methoddef doesn't expect any parameters
editor.status.wrong_param = The method methoddef expects parameters like this:
editor.status.undef_global_var = The global variable varname doesn't exist
editor.status.undef_class = The class classname doesn't exist
editor.status.undef_var = The variable varname doesn't exist
editor.status.undef_name = The name namefield can't be recognized
editor.status.type_mismatch = Type mismatch, typeA doesn't match with typeB
# Footer buttons
editor.footer.errors = Errors
editor.footer.errors.problem = Problem
+80 -8
View File
@@ -289,10 +289,19 @@ editor.header.next_tab = Επόμενη Καρτέλα
editor.header.delete.warning.title = Ναι, όχι.
editor.header.delete.warning.text = Δεν μπορείτε να διαγράψετε την τελευταία ανοιχτή Καρτέλα του τελευταίου ανοιχτού Σχεδίου.
editor.status.autoformat.no_changes = Δεν χρειάζονται αλλαγές από την Αυτόματη μορφοποίηση.
editor.status.autoformat.finished = Ολοκληρώθηκε η Αυτόματη μορφοποίηση.
editor.status.find_reference.select_word_first = Επιλέξτε πρώτα μια λέξη προς αναζήτηση στην Processing Reference.
editor.status.find_reference.not_available = Δεν υπάρχει καταχώρηση για το "%s" στην Processing Reference.
# Tabs
editor.tab.new = Νέο Όνομα
editor.tab.new.description = Όνομα για το νέο αρχείο
editor.tab.rename = Νέο Όνομα
editor.tab.rename.description = Νέο όνομα για το αρχείο
# Sketch
editor.sketch.rename.description = Νέο όνομα για το Σχέδιο
editor.status.autoformat.no_changes = Δεν χρειάζονται αλλαγές από την Αυτόματη Μορφοποίηση.
editor.status.autoformat.finished = Ολοκληρώθηκε η Αυτόματη Μορφοποίηση.
editor.status.find_reference.select_word_first = Επιλέξτε πρώτα μια λέξη προς αναζήτηση στην Αναφορά.
editor.status.find_reference.not_available = Δεν υπάρχει καταχώρηση για το "%s" στην Αναφορά.
editor.status.drag_and_drop.files_added.0 = Δεν προστέθηκαν αρχεία στο Σχέδιο.
editor.status.drag_and_drop.files_added.1 = Ένα αρχείο προστέθηκε στο Σχέδιο.
editor.status.drag_and_drop.files_added.n = %d αρχεία προστέθηκαν στο Σχέδιο.
@@ -303,12 +312,61 @@ editor.status.printing = Εκτύπωση...
editor.status.printing.done = Ολοκλήρωση εκτύπωσης.
editor.status.printing.error = Σφάλμα κατά την εκτύπωση.
editor.status.printing.canceled = Ακύρωση εκτύπωσης.
editor.status.copy_as_html = Ο κώδικας μορφοποιημένος ως HTML έχει αντιγραφεί στο πρόχειρο
editor.status.copy_as_html = Ο κώδικας μορφοποιημένος ως HTML έχει αντιγραφεί στο πρόχειρο.
# Errors
editor.status.error_on = Σφάλμα στο
editor.status.missing.semi_colon = Λείπει το ερωτηματικό
editor.status.missing.open_sq_bracket = Λείπει η αριστερή αγκύλη
editor.status.missing.closing_sq_bracket = Λείπει η δεξιά αγκύλη
editor.status.missing.open_paren = Λείπει η αριστερή παρένθεση
editor.status.missing.closing_paren = Λείπει η δεξιά παρένθεση
editor.status.missing.open_curly_bracket = Λείπει το αριστερό άγκιστρο
editor.status.missing.closing_curly_bracket = Λείπει το δεξιό άγκιστρο
editor.status.missing.default = Δοκίμασε να προσθέσεις ένα
editor.status.reserved_words = Τα "color" και "int" είναι δεσμευμένες λέξεις & δεν μπορούν να χρησιμοποιηθούν ως ονόματα μεταβλητών
editor.status.reserved_words = Τα "color" και "int" δεν είναι έγκυρα ονόματα μεταβλητών, είναι δεσμευμένες λέξεις
# Τα #methoddef, varname, classname, varname, namefield, typeA, typeB θα αντικατασταθούν με τις κατάλληλες τιμές (δε χρειάζονται μετάφραση)
editor.status.undefined_method = Η μέθοδος methoddef δεν υπάρχει
editor.status.wrong_param = Οι παράμετροι της μεθόδου method πρέπει να είναι κάπως έτσι:
editor.status.empty_param = Η μέθοδος methoddef δεν παίρνει παραμέτρους
editor.status.undef_global_var = Η καθολική μεταβλητή varname δεν υπάρχει
editor.status.undef_class = Η κλάση classname δεν υπάρχει
editor.status.undef_var = Η μεταβλητή varname δεν υπάρχει
editor.status.undef_name = Το όνομα namefield δεν μπορεί να αναγνωριστεί
editor.status.type_mismatch = Δεν υπάρχει αντιστοιχία τύπων, ο typeA δεν συνδυάζεται με τον typeB
# Footer buttons
editor.footer.errors = Σφάλματα
editor.footer.errors.problem = Πρόβλημα
editor.footer.errors.tab = Καρτέλα
editor.footer.errors.line = Γραμμή
editor.footer.console = Κονσόλα
# New handler
new.messages.is_read_only = Το Σχέδιο είναι Μόνο για Ανάγνωση
new.messages.is_read_only.description = Μερικά αρχεία είναι σημειωμένα \"Μόνο για Ανάγνωση\", οπότε θα χρειαστεί να ξανα-αποθηκεύσεις το Σχέδιο σε διαφορετική θέση,\nκαι να προσπαθήσεις ξανά.
# Rename handler
rename.messages.is_untitled = Το Σχέδιο Δεν έχει Τίτλο
rename.messages.is_untitled.description = Τι θα έλεγες να αποθηκεύσεις το Σχέδιο\nπριν προσπαθήσεις να το μετονομάσεις;
rename.messages.is_modified = Παρακαλώ αποθήκευσε το Σχέδιο πριν το μετονομάσεις.
rename.messages.is_read_only = Το Σχέδιο είναι Μόνο για Ανάγνωση
rename.messages.is_read_only.description = Μερικά αρχεία είναι σημειωμένα \"Μόνο για Ανάγνωση\", οπότε θα χρειαστεί να ξανα-αποθηκεύσεις το Σχέδιο σε διαφορετική θέση,\nκαι να προσπαθήσεις ξανά.
# Delete handler
delete.messages.cannot_delete = Αποτυχία Διαγραφής
delete.messages.cannot_delete.description = Δε μπορείς να διαγράψεις ένα Σχέδιο που δεν έχει αποθηκευτεί.
delete.messages.cannot_delete.file = Δεν τα κατάφερα
delete.messages.cannot_delete.file.description = Η διαγραφή δεν έγινε
delete.messages.is_read_only = Το Σχέδιο είναι Μόνο για Ανάγνωση
delete.messages.is_read_only.description = Μερικά αρχεία είναι σημειωμένα \"Μόνο για Ανάγνωση\", οπότε θα χρειαστεί να ξανα-αποθηκεύσεις το Σχέδιο σε διαφορετική θέση,\nκαι να προσπαθήσεις ξανά.
# ---------------------------------------
# Contribution Panel
# Contributions
# Contribution Panel
contrib = Διαχειριστής Συνεισφορών
contrib.manager_title.update = Διαχειριστής Ενημερώσεων
contrib.manager_title.mode = Διαχειριστής Λειτουργιών
@@ -349,10 +407,24 @@ contrib.remove = Διαγραφή
contrib.install = Εγκατάσταση
contrib.progress.installing = Γίνεται εγκατάσταση
contrib.progress.starting = Εκκίνηση
contrib.progress.downloading = Μεταφόρτωση
contrib.download_error = Προέκυψε σφάλμα κατά την μεταφόρτωση της συνεισφοράς.
contrib.progress.downloading = Λήψη
contrib.download_error = Προέκυψε σφάλμα κατά την λήψη της συνεισφοράς.
contrib.unsupported_operating_system = Το λειτουργικό σας σύστημα μάλλον δεν υποστηρίζεται. Επισκευθείτε την βιβλιοθήκη των %s για περισσότερα.
# Install on Startup
contrib.startup.errors.download_install = Σφάλμα κατά τη λήψη και εγκατάσταση του %s
contrib.startup.errors.temp_dir = Αδύνατη η εγγραφή στον προσωρινό κατάλογο κατά τη λήψη και εγκατάσταση του %s
contrib.startup.errors.new_marker = The unupdated contribution marker seems to not like %s. You may have to install it manually to update...
# Install on Import
contrib.import.dialog.title = Missing Libraries Available
contrib.import.dialog.primary_text = The following imported libraries are available for download, but have not been installed.
contrib.import.dialog.secondary_text = Would you like to install them now?
contrib.import.progress.download = Downloading %s...
contrib.import.progress.install = Installing %s...
contrib.import.progress.done = %s has been installed.
contrib.import.progress.final_list = The following libraries have been installed:
contrib.import.errors.link = Error: The library %s has a strange looking download link.
# ---------------------------------------
# Color Chooser
@@ -29,6 +29,7 @@ import org.eclipse.jdt.core.compiler.IProblem;
import org.eclipse.jdt.internal.compiler.problem.DefaultProblem;
import processing.app.Base;
import processing.app.Language;
public class ErrorMessageSimplifier {
/**
@@ -99,12 +100,14 @@ public class ErrorMessageSimplifier {
switch (iprob.getID()) {
case IProblem.ParsingError:
if (args.length > 0) {
result = "Error on \"" + args[0] + "\"";
result = Language.text("editor.status.error_on") + " \"" + args[0]
+ "\"";
}
break;
case IProblem.ParsingErrorDeleteToken:
if (args.length > 0) {
result = "Error on \"" + args[0] + "\"";
result = Language.text("editor.status.error_on") + " \"" + args[0]
+ "\"";
}
break;
case IProblem.ParsingErrorInsertToComplete:
@@ -114,13 +117,14 @@ public class ErrorMessageSimplifier {
}
else {
if(args[0].equals("AssignmentOperator Expression")){
result = "Consider adding a \"=\"";
result = Language.text("editor.status.missing.add") + " \"=\"";
}
else if (args[0].equalsIgnoreCase(") Statement")){
result = getErrorMessageForBracket(args[0].charAt(0));
}
else {
result = "Error on \"" + args[0] + "\"";
result = Language.text("editor.status.error_on") + " \"" + args[0]
+ "\"";
}
}
}
@@ -129,14 +133,16 @@ public class ErrorMessageSimplifier {
if (args.length > 0) {
if (args[1].equals("VariableDeclaratorId")) {
if(args[0].equals("int")) {
result = "\"color\" and \"int\" are reserved words & can't be used as variable names";
result = Language.text ("editor.status.reserved_words");
}
else {
result = "Error on \"" + args[0] + "\"";
result = Language.text("editor.status.error_on") + " \""
+ args[0] + "\"";
}
}
else {
result = "Error on \"" + args[0] + "\"";
result = Language.text("editor.status.error_on") + " \"" + args[0]
+ "\"";
}
}
break;
@@ -147,18 +153,23 @@ public class ErrorMessageSimplifier {
}
else {
if(args[1].equalsIgnoreCase("Statement")){ // See #3104
result = "Error on \"" + args[0] + "\"";
result = Language.text("editor.status.error_on") + " \""
+ args[0] + "\"";
}
else {
result = "Error on \"" + args[0] + "\"Consider adding a \"" + args[1] + "\"";
result = Language.text("editor.status.error_on") + " \""
+ args[0] + Language.text("editor.status.missing.add") + args[1]
+ "\"";
}
}
}
break;
case IProblem.UndefinedMethod:
if (args.length > 2) {
result = "The method \"" + args[args.length - 2] + "("
+ getSimpleName(args[args.length - 1]) + ")\" doesn't exist";
result = Language.text("editor.status.undefined_method");
String methodDef = "\"" + args[args.length - 2] + "("
+ getSimpleName (args[args.length - 1]) + ")\"";
result = result.replace("methoddef", methodDef);
}
break;
case IProblem.ParameterMismatch:
@@ -166,39 +177,55 @@ public class ErrorMessageSimplifier {
// 2nd arg is method name, 3rd arg is correct param list
if (args[2].trim().length() == 0) {
// the case where no params are needed.
result = "The method \"" + args[1]
+ "\" doesn't expect any parameters";
result = Language.text("editor.status.empty_param");
String methodDef = "\"" + args[1] + "()\"";
result = result.replace("methoddef", methodDef);
} else {
result = "The method \"" + args[1]
+ "\" expects parameters like this: " + args[1] + "("
+ getSimpleName(args[2]) + ")";
result = Language.text("editor.status.wrong_param");
String method = "\"" + args[1] + "\"";
String methodDef = " \"" + args[1] + "(" + getSimpleName(args[2])
+ ")\"";
result = result.replace("method", method);
result += methodDef;
}
}
break;
case IProblem.UndefinedField:
if (args.length > 0) {
result = "The global variable \"" + args[0] + "\" doesn't exist";
result = Language.text("editor.status.undef_global_var");
String variableName = "\"" + args[0] + "\"";
result = result.replace("varname", variableName);
}
break;
case IProblem.UndefinedType:
if (args.length > 0) {
result = "The class \"" + args[0] + "\" doesn't exist";
String className = "\"" + args[0] + "\"";
result = Language.text("editor.status.undef_class");
result = result.replace("classname", className);
}
break;
case IProblem.UnresolvedVariable:
if (args.length > 0) {
result = "The variable \"" + args[0] + "\" doesn't exist";
String variableName = "\"" + args[0] + "\"";
result = Language.text("editor.status.undef_var");
result = result.replace("varname", variableName);
}
break;
case IProblem.UndefinedName:
if (args.length > 0) {
result = "The name \"" + args[0] + "\" can't be recognized";
String name = "\"" + args[0] + "\"";
result = Language.text("editor.status.undef_name");
result = result.replace("namefield", name);
}
break;
case IProblem.TypeMismatch:
if (args.length > 1) {
result = "Type mismatch, \"" + getSimpleName(args[0])
+ "\" doesn't match with \"" + getSimpleName(args[1]) + "\"";
String typeA = "\"" + args[0] + "\"";
String typeB = "\"" + args[1] + "\"";
result = Language.text("editor.status.type_mismatch");
result = result.replace("typeA", typeA);
result = result.replace("typeB", typeB);
}
break;
}
@@ -241,28 +268,33 @@ public class ErrorMessageSimplifier {
String result = null;
switch (c) {
case ';':
result = "Missing a semi-colon \";\"";
result = Language.text("editor.status.missing.semi_colon") + " \";\"";
break;
case '[':
result = "Missing opening square bracket \"[\"";
result = Language.text("editor.status.missing.open_sq_bracket") +
" \"[\"";
break;
case ']':
result = "Missing closing square bracket \"]\"";
result = Language.text("editor.status.missing.closing_sq_bracket") +
" \"]\"";
break;
case '(':
result = "Missing opening parentheses \"(\"";
result = Language.text("editor.status.missing.open_paren") + " \"(\"";
break;
case ')':
result = "Missing closing parentheses \")\"";
result = Language.text("editor.status.missing.close_paren") + " \")\"";
break;
case '{':
result = "Missing opening curly bracket \"{\"";
result = Language.text("editor.status.missing.open_curly_bracket") +
" \"{\"";
break;
case '}':
result = "Missing closing curly bracket \"}\"";
result = Language.text("editor.status.missing.closing_curly_bracket") +
" \"}\"";
break;
default:
result = "Consider adding a \"" + c + "\"";
result = Language.text("editor.status.missing.default") + " \"" + c +
"\"";
}
return result;