diff --git a/index.html b/index.html index 51d70aa..4c1beca 100644 --- a/index.html +++ b/index.html @@ -5,6 +5,7 @@ See license.txt for licencing information. --> + WWW SQL Designer @@ -16,6 +17,7 @@ + @@ -44,7 +46,7 @@
-
+
@@ -52,37 +54,38 @@ - -
- + +
+ - + - -
- + +
+ - + - +
- +
- +
-
+
- +
@@ -91,20 +94,24 @@ * - +
- +
- * + * - +
- + @@ -113,7 +120,7 @@
- + @@ -125,12 +132,14 @@ * - +
- + @@ -138,7 +147,7 @@
- * + * @@ -146,7 +155,7 @@
- * + * @@ -154,7 +163,7 @@
- * + * @@ -167,7 +176,7 @@ * - +
@@ -176,33 +185,35 @@
- - + +
- - - + + +
-
+
@@ -210,18 +221,21 @@
- -
- - - - - + +
+ + + + +
- + +
- +
- - + +
@@ -232,7 +246,9 @@
- + @@ -241,27 +257,33 @@

+
+
-
- +
+
-
-
+
+
-
- +
+
- +
@@ -275,7 +297,7 @@
- + @@ -284,11 +306,12 @@
- + + diff --git a/js/pluralize.js b/js/pluralize.js new file mode 100644 index 0000000..65dfcd5 --- /dev/null +++ b/js/pluralize.js @@ -0,0 +1,508 @@ +/* global define */ + +(function (root, pluralize) { + /* istanbul ignore else */ + if (typeof require === 'function' && typeof exports === 'object' && typeof module === 'object') { + // Node. + module.exports = pluralize(); + } else if (typeof define === 'function' && define.amd) { + // AMD, registers as an anonymous module. + define(function () { + return pluralize(); + }); + } else { + // Browser global. + root.pluralize = pluralize(); + } +})(this, function () { + // Rule storage - pluralize and singularize need to be run sequentially, + // while other rules can be optimized using an object for instant lookups. + var pluralRules = []; + var singularRules = []; + var uncountables = {}; + var irregularPlurals = {}; + var irregularSingles = {}; + + /** + * Sanitize a pluralization rule to a usable regular expression. + * + * @param {(RegExp|string)} rule + * @return {RegExp} + */ + function sanitizeRule (rule) { + if (typeof rule === 'string') { + return new RegExp('^' + rule + '$', 'i'); + } + + return rule; + } + + /** + * Pass in a word token to produce a function that can replicate the case on + * another word. + * + * @param {string} word + * @param {string} token + * @return {Function} + */ + function restoreCase (word, token) { + // Tokens are an exact match. + if (word === token) return token; + + // Lower cased words. E.g. "hello". + if (word === word.toLowerCase()) return token.toLowerCase(); + + // Upper cased words. E.g. "WHISKY". + if (word === word.toUpperCase()) return token.toUpperCase(); + + // Title cased words. E.g. "Title". + if (word[0] === word[0].toUpperCase()) { + return token.charAt(0).toUpperCase() + token.substr(1).toLowerCase(); + } + + // Lower cased words. E.g. "test". + return token.toLowerCase(); + } + + /** + * Interpolate a regexp string. + * + * @param {string} str + * @param {Array} args + * @return {string} + */ + function interpolate (str, args) { + return str.replace(/\$(\d{1,2})/g, function (match, index) { + return args[index] || ''; + }); + } + + /** + * Replace a word using a rule. + * + * @param {string} word + * @param {Array} rule + * @return {string} + */ + function replace (word, rule) { + return word.replace(rule[0], function (match, index) { + var result = interpolate(rule[1], arguments); + + if (match === '') { + return restoreCase(word[index - 1], result); + } + + return restoreCase(match, result); + }); + } + + /** + * Sanitize a word by passing in the word and sanitization rules. + * + * @param {string} token + * @param {string} word + * @param {Array} rules + * @return {string} + */ + function sanitizeWord (token, word, rules) { + // Empty string or doesn't need fixing. + if (!token.length || uncountables.hasOwnProperty(token)) { + return word; + } + + var len = rules.length; + + // Iterate over the sanitization rules and use the first one to match. + while (len--) { + var rule = rules[len]; + + if (rule[0].test(word)) return replace(word, rule); + } + + return word; + } + + /** + * Replace a word with the updated word. + * + * @param {Object} replaceMap + * @param {Object} keepMap + * @param {Array} rules + * @return {Function} + */ + function replaceWord (replaceMap, keepMap, rules) { + return function (word) { + // Get the correct token and case restoration functions. + var token = word.toLowerCase(); + + // Check against the keep object map. + if (keepMap.hasOwnProperty(token)) { + return restoreCase(word, token); + } + + // Check against the replacement map for a direct word replacement. + if (replaceMap.hasOwnProperty(token)) { + return restoreCase(word, replaceMap[token]); + } + + // Run all the rules against the word. + return sanitizeWord(token, word, rules); + }; + } + + /** + * Check if a word is part of the map. + */ + function checkWord (replaceMap, keepMap, rules, bool) { + return function (word) { + var token = word.toLowerCase(); + + if (keepMap.hasOwnProperty(token)) return true; + if (replaceMap.hasOwnProperty(token)) return false; + + return sanitizeWord(token, token, rules) === token; + }; + } + + /** + * Pluralize or singularize a word based on the passed in count. + * + * @param {string} word The word to pluralize + * @param {number} count How many of the word exist + * @param {boolean} inclusive Whether to prefix with the number (e.g. 3 ducks) + * @return {string} + */ + function pluralize (word, count, inclusive) { + var pluralized = count === 1 + ? pluralize.singular(word) : pluralize.plural(word); + + return (inclusive ? count + ' ' : '') + pluralized; + } + + /** + * Pluralize a word. + * + * @type {Function} + */ + pluralize.plural = replaceWord( + irregularSingles, irregularPlurals, pluralRules + ); + + /** + * Check if a word is plural. + * + * @type {Function} + */ + pluralize.isPlural = checkWord( + irregularSingles, irregularPlurals, pluralRules + ); + + /** + * Singularize a word. + * + * @type {Function} + */ + pluralize.singular = replaceWord( + irregularPlurals, irregularSingles, singularRules + ); + + /** + * Check if a word is singular. + * + * @type {Function} + */ + pluralize.isSingular = checkWord( + irregularPlurals, irregularSingles, singularRules + ); + + /** + * Add a pluralization rule to the collection. + * + * @param {(string|RegExp)} rule + * @param {string} replacement + */ + pluralize.addPluralRule = function (rule, replacement) { + pluralRules.push([sanitizeRule(rule), replacement]); + }; + + /** + * Add a singularization rule to the collection. + * + * @param {(string|RegExp)} rule + * @param {string} replacement + */ + pluralize.addSingularRule = function (rule, replacement) { + singularRules.push([sanitizeRule(rule), replacement]); + }; + + /** + * Add an uncountable word rule. + * + * @param {(string|RegExp)} word + */ + pluralize.addUncountableRule = function (word) { + if (typeof word === 'string') { + uncountables[word.toLowerCase()] = true; + return; + } + + // Set singular and plural references for the word. + pluralize.addPluralRule(word, '$0'); + pluralize.addSingularRule(word, '$0'); + }; + + /** + * Add an irregular word definition. + * + * @param {string} single + * @param {string} plural + */ + pluralize.addIrregularRule = function (single, plural) { + plural = plural.toLowerCase(); + single = single.toLowerCase(); + + irregularSingles[single] = plural; + irregularPlurals[plural] = single; + }; + + /** + * Irregular rules. + */ + [ + // Pronouns. + ['I', 'we'], + ['me', 'us'], + ['he', 'they'], + ['she', 'they'], + ['them', 'them'], + ['myself', 'ourselves'], + ['yourself', 'yourselves'], + ['itself', 'themselves'], + ['herself', 'themselves'], + ['himself', 'themselves'], + ['themself', 'themselves'], + ['is', 'are'], + ['was', 'were'], + ['has', 'have'], + ['this', 'these'], + ['that', 'those'], + ['my', 'our'], + ['its', 'their'], + ['his', 'their'], + ['her', 'their'], + // Words ending in with a consonant and `o`. + ['echo', 'echoes'], + ['dingo', 'dingoes'], + ['volcano', 'volcanoes'], + ['tornado', 'tornadoes'], + ['torpedo', 'torpedoes'], + // Ends with `us`. + ['genus', 'genera'], + ['viscus', 'viscera'], + // Ends with `ma`. + ['stigma', 'stigmata'], + ['stoma', 'stomata'], + ['dogma', 'dogmata'], + ['lemma', 'lemmata'], + ['schema', 'schemata'], + ['anathema', 'anathemata'], + // Other irregular rules. + ['ox', 'oxen'], + ['axe', 'axes'], + ['die', 'dice'], + ['yes', 'yeses'], + ['foot', 'feet'], + ['eave', 'eaves'], + ['goose', 'geese'], + ['tooth', 'teeth'], + ['quiz', 'quizzes'], + ['human', 'humans'], + ['proof', 'proofs'], + ['carve', 'carves'], + ['valve', 'valves'], + ['looey', 'looies'], + ['thief', 'thieves'], + ['groove', 'grooves'], + ['pickaxe', 'pickaxes'], + ['passerby', 'passersby'], + ['canvas', 'canvases'] + ].forEach(function (rule) { + return pluralize.addIrregularRule(rule[0], rule[1]); + }); + + /** + * Pluralization rules. + */ + [ + [/s?$/i, 's'], + [/[^\u0000-\u007F]$/i, '$0'], + [/([^aeiou]ese)$/i, '$1'], + [/(ax|test)is$/i, '$1es'], + [/(alias|[^aou]us|t[lm]as|gas|ris)$/i, '$1es'], + [/(e[mn]u)s?$/i, '$1s'], + [/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i, '$1'], + [/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i, '$1i'], + [/(alumn|alg|vertebr)(?:a|ae)$/i, '$1ae'], + [/(seraph|cherub)(?:im)?$/i, '$1im'], + [/(her|at|gr)o$/i, '$1oes'], + [/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i, '$1a'], + [/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i, '$1a'], + [/sis$/i, 'ses'], + [/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i, '$1$2ves'], + [/([^aeiouy]|qu)y$/i, '$1ies'], + [/([^ch][ieo][ln])ey$/i, '$1ies'], + [/(x|ch|ss|sh|zz)$/i, '$1es'], + [/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i, '$1ices'], + [/\b((?:tit)?m|l)(?:ice|ouse)$/i, '$1ice'], + [/(pe)(?:rson|ople)$/i, '$1ople'], + [/(child)(?:ren)?$/i, '$1ren'], + [/eaux$/i, '$0'], + [/m[ae]n$/i, 'men'], + ['thou', 'you'] + ].forEach(function (rule) { + return pluralize.addPluralRule(rule[0], rule[1]); + }); + + /** + * Singularization rules. + */ + [ + [/s$/i, ''], + [/(ss)$/i, '$1'], + [/(wi|kni|(?:after|half|high|low|mid|non|night|[^\w]|^)li)ves$/i, '$1fe'], + [/(ar|(?:wo|[ae])l|[eo][ao])ves$/i, '$1f'], + [/ies$/i, 'y'], + [/(dg|ss|ois|lk|ok|wn|mb|th|ch|ec|oal|is|ck|ix|sser|ts|wb)ies$/i, '$1ie'], + [/\b(l|(?:neck|cross|hog|aun)?t|coll|faer|food|gen|goon|group|hipp|junk|vegg|(?:pork)?p|charl|calor|cut)ies$/i, '$1ie'], + [/\b(mon|smil)ies$/i, '$1ey'], + [/\b((?:tit)?m|l)ice$/i, '$1ouse'], + [/(seraph|cherub)im$/i, '$1'], + [/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i, '$1'], + [/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i, '$1sis'], + [/(movie|twelve|abuse|e[mn]u)s$/i, '$1'], + [/(test)(?:is|es)$/i, '$1is'], + [/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i, '$1us'], + [/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i, '$1um'], + [/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i, '$1on'], + [/(alumn|alg|vertebr)ae$/i, '$1a'], + [/(cod|mur|sil|vert|ind)ices$/i, '$1ex'], + [/(matr|append)ices$/i, '$1ix'], + [/(pe)(rson|ople)$/i, '$1rson'], + [/(child)ren$/i, '$1'], + [/(eau)x?$/i, '$1'], + [/men$/i, 'man'] + ].forEach(function (rule) { + return pluralize.addSingularRule(rule[0], rule[1]); + }); + + /** + * Uncountable rules. + */ + [ + // Singular words with no plurals. + 'adulthood', + 'advice', + 'agenda', + 'aid', + 'aircraft', + 'alcohol', + 'ammo', + 'analytics', + 'anime', + 'athletics', + 'audio', + 'bison', + 'blood', + 'bream', + 'buffalo', + 'butter', + 'carp', + 'cash', + 'chassis', + 'chess', + 'clothing', + 'cod', + 'commerce', + 'cooperation', + 'corps', + 'debris', + 'diabetes', + 'digestion', + 'elk', + 'energy', + 'equipment', + 'excretion', + 'expertise', + 'firmware', + 'flounder', + 'fun', + 'gallows', + 'garbage', + 'graffiti', + 'hardware', + 'headquarters', + 'health', + 'herpes', + 'highjinks', + 'homework', + 'housework', + 'information', + 'jeans', + 'justice', + 'kudos', + 'labour', + 'literature', + 'machinery', + 'mackerel', + 'mail', + 'media', + 'mews', + 'moose', + 'music', + 'mud', + 'manga', + 'news', + 'only', + 'personnel', + 'pike', + 'plankton', + 'pliers', + 'police', + 'pollution', + 'premises', + 'rain', + 'research', + 'rice', + 'salmon', + 'scissors', + 'series', + 'sewage', + 'shambles', + 'shrimp', + 'software', + 'staff', + 'swine', + 'tennis', + 'traffic', + 'transportation', + 'trout', + 'tuna', + 'wealth', + 'welfare', + 'whiting', + 'wildebeest', + 'wildlife', + 'you', + /pok[eé]mon$/i, + // Regexes. + /[^aeiou]ese$/i, // "chinese", "japanese" + /deer$/i, // "deer", "reindeer" + /fish$/i, // "fish", "blowfish", "angelfish" + /measles$/i, + /o[iu]s$/i, // "carnivorous" + /pox$/i, // "chickpox", "smallpox" + /sheep$/i + ].forEach(pluralize.addUncountableRule); + + return pluralize; +}); diff --git a/js/rowmanager.js b/js/rowmanager.js index baa643d..9c098d6 100644 --- a/js/rowmanager.js +++ b/js/rowmanager.js @@ -1,13 +1,13 @@ /* --------------------- row manager ------------ */ -SQL.RowManager = function(owner) { +SQL.RowManager = function (owner) { this.owner = owner; this.dom = {}; this.selected = null; this.creating = false; this.connecting = false; - - var ids = ["editrow","removerow","uprow","downrow","foreigncreate","foreignconnect","foreigndisconnect"]; - for (var i=0;i=0;i--) { + for (var i = rels.length - 1; i >= 0; i--) { var r = rels[i]; if (r.row2 == this.selected) { this.owner.removeRelation(r); } } this.redraw(); } -SQL.RowManager.prototype.endCreate = function() { +SQL.RowManager.prototype.endCreate = function () { this.creating = false; this.dom.foreigncreate.value = _("foreigncreate"); } -SQL.RowManager.prototype.endConnect = function() { +SQL.RowManager.prototype.endConnect = function () { this.connecting = false; this.dom.foreignconnect.value = _("foreignconnect"); } -SQL.RowManager.prototype.up = function(e) { +SQL.RowManager.prototype.up = function (e) { this.selected.up(); this.redraw(); } -SQL.RowManager.prototype.down = function(e) { +SQL.RowManager.prototype.down = function (e) { this.selected.down(); this.redraw(); } -SQL.RowManager.prototype.remove = function(e) { - var result = confirm(_("confirmrow")+" '"+this.selected.getTitle()+"' ?"); +SQL.RowManager.prototype.remove = function (e) { + var result = confirm(_("confirmrow") + " '" + this.selected.getTitle() + "' ?"); if (!result) { return; } var t = this.selected.owner; this.selected.owner.removeRow(this.selected); - + var next = false; - if (t.rows) { next = t.rows[t.rows.length-1]; } + if (t.rows) { next = t.rows[t.rows.length - 1]; } this.select(next); } -SQL.RowManager.prototype.redraw = function() { +SQL.RowManager.prototype.redraw = function () { this.endCreate(); this.endConnect(); if (this.selected) { var table = this.selected.owner; var rows = table.rows; this.dom.uprow.disabled = (rows[0] == this.selected); - this.dom.downrow.disabled = (rows[rows.length-1] == this.selected); + this.dom.downrow.disabled = (rows[rows.length - 1] == this.selected); this.dom.removerow.disabled = false; this.dom.editrow.disabled = false; this.dom.foreigncreate.disabled = !(this.selected.isUnique()); this.dom.foreignconnect.disabled = !(this.selected.isUnique()); - + this.dom.foreigndisconnect.disabled = true; var rels = this.selected.relations; - for (var i=0;iTable snap distance In pixels, 0 = disable snapping طريقة تنسيق أسماء المفاتيح الخارجية - %T = الجدول الرئيسي, %R = المفتاح الرئيسي, %t = الجدول الخارجي + %S = الجدول الرئيسي على المفرد, %T = الجدول الرئيسي, %R = المفتاح الرئيسي, %t = الجدول الخارجي إخفاء الخطوط عند تحريك الجدول؟ رسم خطوط ناعمة (إذا كان المتصفح يدعم ذلك) ؟ قلم المدقة diff --git a/locale/cs.xml b/locale/cs.xml index 899e0ef..205fc6f 100644 --- a/locale/cs.xml +++ b/locale/cs.xml @@ -12,7 +12,7 @@ umístit tabulku Jméno Komentář - + Přidat položku Upravit položku @@ -38,7 +38,7 @@ Autoincrement Upravit komentář VLožte komentář pro tuto položku - + OK Storno @@ -50,13 +50,13 @@ Vzdálenost přichytávání tabulek V pixelech, 0 = bez přichytávání Vzor pro cizí jména - %T = primární tabulka, %R = primární klíč, %t = cizí tabulka + %S = primární tabulka na jednotném čísle, %T = primární tabulka, %R = primární klíč, %t = cizí tabulka Schovat spojovníky při tažení tabulkou? Vykreslovat oblé spojovníky (pakliže to prohlížeč podporuje)? Zobrazovat velikost polí v tabulce? Zobrazovat datový typ polí v tabulce? Styl - + Klíče Klíče v tabulce "%s" @@ -67,7 +67,7 @@ Upravit klíč Přidat klíč Smazat klíč - + Uložit / Načíst Prosím vložte XML data do textového pole níže. @@ -94,9 +94,9 @@ Vnitřní chyba serveru Není implementováno Služba není dostupná - + XML chyba Dokumentace - + diff --git a/locale/de.xml b/locale/de.xml index 10d0c68..23b0d41 100644 --- a/locale/de.xml +++ b/locale/de.xml @@ -12,7 +12,7 @@ Tabelle platzieren Name Kommentar - + Feld hinzufügen Feld bearbeiten @@ -38,7 +38,7 @@ Autoincrement Kommentar bearbeiten Kommentar zu diesem Feld eintragen: - + OK Abbrechen @@ -50,13 +50,13 @@ Tabellen Ausrichtungsabstand in Pixel, 0 = einrasten deaktivieren Format für die Namen der Fremdschlüssel - %T = Primärtabelle, %R = Primärschlüssel, %t = Fremdtabelle + %S = Primärtabelle im Singular, %T = Primärtabelle, %R = Primärschlüssel, %t = Fremdtabelle Verstecke Verbindungslinien beim Bewegen von Tabellen? Zeichne gekrümmte Verbindungslinien (Browser-abhängig)? Zeige Feldgröße im Tabellendesign? Zeige Felddatentyp im Tabellendesign? Stil - + Schlüssel Schlüssel in Tabelle "%s" @@ -67,7 +67,7 @@ Schlüssel bearbeiten Schlüssel hinzufügen Schlüssel entfernen - + Speichern / Laden Bitte fügen Sie die XML-Daten in das untere Textfeld ein und versuchen Sie es erneut. @@ -98,9 +98,9 @@ Interner Server Fehler Nicht implementiert Dienst nicht erreichbar - + XML Fehler Dokumentation - + diff --git a/locale/el.xml b/locale/el.xml index 91751fe..d45406e 100644 --- a/locale/el.xml +++ b/locale/el.xml @@ -12,7 +12,7 @@ τοποθέτηση πίνακα Όνομα Σχόλιο - + Προσθήκη πεδίου Επεξεργασία πεδίου @@ -38,7 +38,7 @@ Autoincrement Επεξεργασία σχολίου Σχολιάστε γι' αυτό το πεδίο - + OK Άκυρο @@ -50,12 +50,12 @@ Απόσταση πινάκων Σε pixels, 0 = απενεργοποίηση απόστασης Πρότυπο για ξένα κλειδιά - %T = πρωτεύων πίνακας, %R = προτεύον κλειδί, %t = ξένος πίνακας + %S = πρωτεύων πίνακας σε ενικό, %T = πρωτεύων πίνακας, %R = προτεύον κλειδί, %t = ξένος πίνακας Απόκρυψη συνδέσμων όταν σύρονται οι πίνακες; Διάγραμμα με ομαλούς συνδέσμους(αν παρέχεται από τον περιηγητή); Στυλ - - + + Κλειδιά Κλειδιά στον πίνακα "%s" @@ -66,7 +66,7 @@ Επεξεργασία κλειδιού Προσθήκη κλειδιού Διαγραφή κλειδιού - + Αποθήκ./Άνοιγμα Κάντε επικόλληση των δεδομένων XML στο πεδίο κειμένου παρακάτω και δοκιμάστε ξανά. @@ -90,9 +90,9 @@ Εσωτερικό σφάλμα διακομιστή Χωρίς σχεδίαση Μη-διαθέσιμη Παροχή - + Σφάλμα XML Οδηγίες - + diff --git a/locale/en.xml b/locale/en.xml index f5b821d..a5a90db 100755 --- a/locale/en.xml +++ b/locale/en.xml @@ -12,7 +12,7 @@ place table Name Comment - + Add field Edit field @@ -38,7 +38,7 @@ Autoincrement Edit comment Enter comment for this field - + OK Cancel @@ -50,13 +50,13 @@ Table snap distance In pixels, 0 = disable snapping Pattern for foreign names - %T = primary table, %R = primary key, %t = foreign table + %S = primary table on singular, %T = primary table, %R = primary key, %t = foreign table Hide connectors on table drag? Draw smooth connectors (if supported by browser)? Show field size in table design? Show field datatype in table design? Style - + Keys Keys in table "%s" @@ -67,7 +67,7 @@ Edit key Add key Remove key - + Save / Load Please paste XML data into the text area below and try again. @@ -98,9 +98,9 @@ Internal Server Error Not Implemented Service Unavailable - + XML error Documentation - + diff --git a/locale/eo.xml b/locale/eo.xml index 2b29723..fdd3941 100644 --- a/locale/eo.xml +++ b/locale/eo.xml @@ -12,7 +12,7 @@ pozicii la tabelon Nomo Komento - + Aldoni kampon Modifi la kampon @@ -38,7 +38,7 @@ Memalkremento Modifi la komenton Entajpi komenton por tiu kampo - + Jes Rezigni @@ -50,13 +50,13 @@ Kapto-distanco de tabelo En rastrumeroj, 0 = malebligi kapton Motivo por fremdaj nomoj - %T = ĉefa tabelo, %R = ĉefa ŝlosilo, %t = fremda tabelo + %S = ĉefa tablo sur singularo, %T = ĉefa tabelo, %R = ĉefa ŝlosilo, %t = fremda tabelo Ĉu kaŝi konektiloj dum treno de tabelo? Desegni glatajn konektilojn (se subtenata de retumilo)? - Show field size in table design? + Show field size in table design? Show field datatype in table design? Stilo - + Klavoj Ŝlosiloj en la tabelo "%s" @@ -67,7 +67,7 @@ Modifi ŝlosilon Aldoni ŝlosilon Forigi ŝlosilon - + Konservi / Ŝargi Bonvolu alglui XML datumon en la tekst-zono sube kaj provi de nove. @@ -92,9 +92,9 @@ Interna Servilo Eraro Ne funkciigata Servo Nedisponebla - + XML-eraro Dokumentaro - + diff --git a/locale/es.xml b/locale/es.xml index 7ab14ef..5b9420e 100644 --- a/locale/es.xml +++ b/locale/es.xml @@ -50,11 +50,11 @@ Distancia de ajuste de tablas En píxeles, 0 = deshabilitar ajuste Patrón para nombres de clave foránea - %T = tabla primaria, %R = clave primaria, %t = tabla foránea + %S = tabla primaria en singular, %T = tabla primaria, %R = clave primaria, %t = tabla foránea ¿Ocultar conectores de tablas al arrastrar? ¿Dibujar conectores suaves (si son soportados por el navegador)? ¿Mostrar tamaño del campo en el diseño de tabla? - ¿Mostrar tipo de dato del campo en el diseño de tabla? + ¿Mostrar tipo de dato del campo en el diseño de tabla? Estilo @@ -98,9 +98,9 @@ Error Interno del Servidor No Implementado Servicio No Disponible - + Error XML Documentación - + diff --git a/locale/fr.xml b/locale/fr.xml index 75b876e..202eac2 100644 --- a/locale/fr.xml +++ b/locale/fr.xml @@ -12,7 +12,7 @@ positionner la table Nom Commentaire - + Ajouter un champ Éditer un champ @@ -38,7 +38,7 @@ Auto-incrémental Éditer le commentaire Saisir un commentaire à propos de ce champ - + OK Annuler @@ -50,10 +50,10 @@ Magnétisme des tables En pixels, 0 = magnétisme désactivé Motif pour les noms de clés étrangères - %T = table primaire, %R = clé primaire, %t = table étrangère + %S = table primaire au singulier, %T = table primaire, %R = clé primaire, %t = table étrangère Cacher les connecteurs lors du déplacement des tables ? Dessiner des connecteurs « adoucis » (si le navigateur le supporte) ? - Afficher la taille du champ dans le schéma de table ? + Afficher la taille du champ dans le schéma de table ? Afficher le type du champ dans le schéma de table ? Style @@ -67,7 +67,7 @@ Éditer la clé Ajouter une clé Supprimer la clé - + Enregistrer / Charger Merci de coller les données XML dans le champs prévu avant de ré-essayer. @@ -95,9 +95,9 @@ Erreur interne du serveur Non Implementé Service indisponible - + Erreur XML Documentation - + diff --git a/locale/hu.xml b/locale/hu.xml index 734d593..88f7272 100644 --- a/locale/hu.xml +++ b/locale/hu.xml @@ -12,7 +12,7 @@ tábla elhelyezése Név Megjegyzés - + Mező létrehozása Mező módosítása @@ -38,7 +38,7 @@ Automatikus növelés Megjegyzés módosítása Írjon megjegyzést ehhez a mezőhöz - + OK Mégsem @@ -50,12 +50,12 @@ Táblák illesztési távolsága Pixel-ben megadva, 0 = illesztés tiltása Idegen nevek sablonja - %T = elsődleges tábla, %R = elsődleges kulcs, %t = idegen tábla + %S = elsődleges táblázat egyes számon, %T = elsődleges tábla, %R = elsődleges kulcs, %t = idegen tábla Elrejtsem a kapcsolókat a rajztáblán? Kapcsolók finom kirajzolása (ha a böngésző lehetővé teszi)? Stílus - - + + Kulcsok Kulcsok a "%s" táblában @@ -66,7 +66,7 @@ Kulcs módosítása Kulcs létrehozása Kulcs törlése - + Mentés / Beolvasás Kérem illessze be az XML-tartalmat az alábbi szöveges mezőbe, és próbálja újra. @@ -90,9 +90,9 @@ Belső szerver hiba Nem lett végrehajtva Szolgáltatás nem elérhető - + XML hiba Dokumentáció - + diff --git a/locale/it.xml b/locale/it.xml index c6ffce2..0afedb6 100644 --- a/locale/it.xml +++ b/locale/it.xml @@ -12,7 +12,7 @@ posiziona la tabella Nome Oggetto - + Aggiungi campo Modifica campo @@ -38,7 +38,7 @@ Autoincremento Modifica commento Inserisci commento per questo campo - + Conferma Annulla @@ -50,13 +50,13 @@ Griglia magnetica In pixel, 0 = magnetismo disabilitato Modello per le chiavi esterne - %T = tabella principale, %R = chiave primaria, %t = tabella secondaria + %S = tavolo principale al singolare, %T = tabella principale, %R = chiave primaria, %t = tabella secondaria Nascondi i connettori durante il trascinamento? Disegna connettori arrotondati (se supportato dal browser)? - Show field size in table design? + Show field size in table design? Show field datatype in table design? Stile - + Chiavi Chiavi nella tabella "%s" @@ -67,7 +67,7 @@ Modifica chiave Aggiungi chiave Rimuovi chiave - + Salva / Carica Reincolla i dati XML nell'area sottostante e prova di nuovo. @@ -92,9 +92,9 @@ Errore interno del server Non implementato Servizio non disponibile - + Errore XML Documentazione - + diff --git a/locale/ja.xml b/locale/ja.xml index ce7350a..f34a201 100644 --- a/locale/ja.xml +++ b/locale/ja.xml @@ -11,7 +11,7 @@ テーブルを配置 テーブル名 コメント - + 列を追加 列を編集 @@ -37,7 +37,7 @@ 自動採番 コメントを編集 列のコメントを入力 - + OK キャンセル @@ -49,7 +49,7 @@ テーブルのスナップ単位 ピクセル(0 = スナップ無効) 外部キーの命名規則 - %T = 親テーブル, %R = プライマリーキー, %t = 子テーブル + %S = 単数の親テーブル, %T = 親テーブル, %R = プライマリーキー, %t = 子テーブル テーブルをドラッグ中は線を隠す 滑らかな線を使う(要ブラウザのサポート) フィールドサイズを表示 @@ -66,7 +66,7 @@ キーを編集 キーを追加 キーを削除 - + 保存/読み込み 下の入出力欄にXMLデータを貼りつけてから実行してください。 @@ -94,9 +94,9 @@ Internal Server Error Not Implemented Service Unavailable - + XMLエラー ドキュメント - + diff --git a/locale/ko.xml b/locale/ko.xml index c293406..051cd88 100644 --- a/locale/ko.xml +++ b/locale/ko.xml @@ -12,7 +12,7 @@ 테이블 놓기 이름 설명 - + 필드 추가 필드 수정 @@ -38,7 +38,7 @@ 자동 증가 설명 수정 이 필드의 설명을 입력해 주세요 - + 확인 취소 @@ -50,13 +50,13 @@ 테이블 스냅 거리 픽셀, 0 = 스냅 비활성화 외래 키 명명 규식 - %T = 기본 테이블, %R = 기본 키, %t = 외래 테이블 + %S = 단수의 기본 테이블, %T = 기본 테이블, %R = 기본 키, %t = 외래 테이블 테이블을 이동할 때, 연결선 숨기기 부드러운 연결선 사용 (브라우저 지원 필요)? 디자인에서 필드 사이즈를 표시 디자인에서 필드 타입을 표시 스타일 - + 키 설정 "%s" 테이블 키 정보 @@ -67,7 +67,7 @@ 키 수정 키 추가 키 삭제 - + 저장 / 불러오기 불러오려고 하는 XML 데이터를 아래 텍스트 영역에 붙여 넣고 다시 시도해 주세요. @@ -98,9 +98,9 @@ 내부 서버 에러(Internal Server Error) 구현되지 않았습니다(Not Implemented) 서비스를 사용할 수 없습니다(Service Unavailable) - + XML 에러 문서 - + diff --git a/locale/nl.xml b/locale/nl.xml index eaefb3d..deef270 100644 --- a/locale/nl.xml +++ b/locale/nl.xml @@ -12,7 +12,7 @@ Positioneer tabel Naam Opmerkingen - + Veld toevoegen Veld bewerken @@ -38,7 +38,7 @@ Autoincrement Bewerk opmerkingen Geef opmerkingen voor dit veld - + OK Annuleer @@ -50,13 +50,13 @@ Tabel snap afstand In pixels, 0 = uitzetten snap Patroon voor relatie velden - %T = primaire tabel, %R = primaire sleutel, %t = verwezen tabel. + %S = primaire tafel op enkelvoud, %T = primaire tabel, %R = primaire sleutel, %t = verwezen tabel. Verberg relaties tijdens verplaatsen van de tabel? Teken gekromde relaties (als de browser dit ondersteund)? Toon veld omvang in tabelontwerp? Toon veld type in tabelontwerp? Stijl - + Sleutels Sleutels in tabel "%s" @@ -67,7 +67,7 @@ Bewerk sleutel Voeg sleutel toe Verwijder sleutel - + Opslaan / laden Please paste XML data into the text area below and try again. @@ -94,9 +94,9 @@ Interne Server Fout Niet geimplementeerd Niet beschikbaar - + XML fout Documentatie - + diff --git a/locale/pl.xml b/locale/pl.xml index 65176e1..a2dbd62 100644 --- a/locale/pl.xml +++ b/locale/pl.xml @@ -12,7 +12,7 @@ miejsce tabeli Nazwa Opis - + Dodaj pole Edytuj pole @@ -38,7 +38,7 @@ Automatyczne zwiększanie o 1 Edytuj komentarz Wpisz komentarz dla tego pola - + OK Anuluj @@ -50,13 +50,13 @@ Ustalana odległość tabel W pikselach, 0 = wyłącznie ustalania Wzorzec dla zewnętrznych nazw - %T = główna tabela, %R = klucz główny, %t = zewnętrzna tabela + %S = główna tabela w liczbie pojedynczej, %T = główna tabela, %R = klucz główny, %t = zewnętrzna tabela Ukryć złącza w tabeli podczas przeciągania? Rysuj pływające złącza (jesli wsperane jest przez przeglądarkę)? - Show field size in table design? + Show field size in table design? Show field datatype in table design? Styl - + Klucze Klucze w tabeli "%s" @@ -67,7 +67,7 @@ Edytuj klucz Dodaj klucz Usuń klucz - + Zapisz / Otwórz Proszę wklej kod XML w poniższe pole tekstowe i spróbuj ponownie. @@ -92,9 +92,9 @@ Wewnętrzny błąd serwera Niezaimplementowane Serwer niedostępny - + Błąd XML Dokumentacja - + diff --git a/locale/pt_BR.xml b/locale/pt_BR.xml index 9c0a4b1..f1fb2a3 100644 --- a/locale/pt_BR.xml +++ b/locale/pt_BR.xml @@ -12,7 +12,7 @@ Clique p/ adicionar Nome Comentário - + Adicionar campo Editar campo @@ -38,7 +38,7 @@ Auto incrementar Editar comentário Digite o comentário para este campo - + OK Cancelar @@ -50,12 +50,12 @@ Distância entre as tabelas Em pixels, 0 = desativar snapping Padrão p/ nomes estrangeiros - %T = tabela primária, %R = chave primária, %t = tabela estrangeira + %S = tabela primária no singular, %T = tabela primária, %R = chave primária, %t = tabela estrangeira Esconder connectores na tela? Desenhar conectores suaves (se suportado pelo navegador)? Estilo - - + + Chaves Chaves na tabela "%s" @@ -66,7 +66,7 @@ Editar chave Adicionar chave Remover chave - + Salvar / Carregar Por favor cole os dados XML na área de texto abaixo e tente novamente. @@ -90,9 +90,9 @@ Erro Interno do Servidor Não Implementado Serviço Indisponível - + Erro de XML Documentação - + diff --git a/locale/ro.xml b/locale/ro.xml index 816d9fb..5795095 100644 --- a/locale/ro.xml +++ b/locale/ro.xml @@ -12,7 +12,7 @@ plaseaza tabela Nume Comentariu - + Adauga coloana Editeaza coloana @@ -38,7 +38,7 @@ Auto increment Editare comentariu Introduceti comentariul pentru aceasta coloana: - + OK Anuleaza @@ -50,12 +50,12 @@ Distanta automata intre tabele In pixeli, 0 = dezactiveaza asezarea automata Modelul pentru nume de Foreign Keys - %T = Tabela primara, %R = Primary key, %t = Tabela cu Foreign key + %S = Tabelul primar pe singular, %T = Tabela primara, %R = Primary key, %t = Tabela cu Foreign key Ascunde conexiunile la mutarea tabelei? Deseneaza folosind "smooth connectors" (daca browserul suporta)? Stil - - + + Keys / Indexes Keys / Indexes in tabela "%s" @@ -66,7 +66,7 @@ Editeaza Adauga Sterge - + Salveaza / Incarca Introduceti codul XML si re-incercati. @@ -90,9 +90,9 @@ Internal Server Error Not Implemented Service Unavailable - + Eroare XML Documentatie - + diff --git a/locale/ru.xml b/locale/ru.xml index c185d20..b53b625 100644 --- a/locale/ru.xml +++ b/locale/ru.xml @@ -50,7 +50,7 @@ Шаг при перемещении таблицы В пикселях, 0 = отключить Шаблон для имён внешних ключей - %T = первичная таблица, %R = первичный ключ, %t = внешняя таблица + %S = основная таблица в единственном числе, %T = первичная таблица, %R = первичный ключ, %t = внешняя таблица Прятать связи при перетаскивании таблиц? Рисовать сглаженные связи (если поддерживается браузером)? Показывать размеры полей таблиц? diff --git a/locale/sv.xml b/locale/sv.xml index 2f9c93e..34b53bd 100644 --- a/locale/sv.xml +++ b/locale/sv.xml @@ -12,7 +12,7 @@ Placera tabell Namn Kommentar - + Lägg till fält Redigera fält @@ -38,7 +38,7 @@ Autoincrement Redigera kommentar Ange kommentar för detta fält - + OK Avbryt @@ -50,11 +50,11 @@ Tabellers fästavstånd Ange pixlar, 0 = stäng av fästning Mönster för främmande namn - %T = primär tabell, %R = primär nycke, %t = främmande tabell + %S = primärtabell på singularis, %T = primär tabell, %R = primär nycke, %t = främmande tabell Dölj anslutningar när du drar i tabellen? Rita mjuka anslutningar (om din webbläsare stöder det)? - Stil - + Stil + Nycklar Nycklar i tabellen "%s" @@ -65,7 +65,7 @@ Edit nyckel Add key Ta bort key - + Spara / Ladda Vänligen klistra in XML i textrutan nedan och försök igen. @@ -89,9 +89,9 @@ Intert serverfel Ej implementerat Service Unavailable - + XML error Dokumentation - + diff --git a/locale/tr.xml b/locale/tr.xml index 83c8a9a..3c16855 100644 --- a/locale/tr.xml +++ b/locale/tr.xml @@ -12,7 +12,7 @@ Tablo Yerleşim Yeri Adı Açıklama - + Alan Ekle Alan Düzenle @@ -38,7 +38,7 @@ Autoincrement Yorumu düzenle Bu alan için yorum girin - + Tamam İptal @@ -50,13 +50,13 @@ Table snap distance In pixels, 0 = disable snapping Pattern for foreign names - %T = primary table, %R = primary key, %t = foreign table + %S = tekil birincil tablo, %T = primary table, %R = primary key, %t = foreign table Tablo sürüklemesindeki bağlayıcıları gizle? Draw smooth connectors (if supported by browser)? Tablo tasarımında alan boyutunu gösterme? Alan veri tipini tablo tasarımında göster? Stil - + Anahtarlar Tablodaki tuşlar "%s" @@ -67,7 +67,7 @@ Anahtar Düzenle Anahtar Ekle Anahtar Sil - + Kaydet / Yükle Lütfen XML verilerini aşağıdaki metin alanına yapıştırın ve tekrar deneyin. @@ -98,9 +98,9 @@ İç Sunucu Hatası Uygulanmadı Hizmet Kullanılamıyor - + XML hatası Belgeleme - + diff --git a/locale/zh.xml b/locale/zh.xml index be2dffd..fce40cc 100644 --- a/locale/zh.xml +++ b/locale/zh.xml @@ -11,7 +11,7 @@ 放置表格…… 表名 注释 - + 添加列 修改列 @@ -37,7 +37,7 @@ 自增长 改备注 输入此列备注 - + 搞定 不要了 @@ -49,13 +49,13 @@ 表格捕捉距离 像素, 0 = 关闭捕捉 外连名称规则 - %T = 主表, %R = 主键, %t = 外连表 + %S = 单数主表, %T = 主表, %R = 主键, %t = 外连表 在表格移动时不显示连接? 绘制平滑的连接 (如果浏览器支持)? 设计表格时显示字段大小? 设计表格时显示字段数据类型? - 样式 - + 样式 + 设置表键 在 "%s" 表中可用列属性 @@ -66,7 +66,7 @@ 修改属性 添加属性 删除属性 - + 登录 注销 @@ -93,9 +93,9 @@ 网络服务错误 未执行 服务暂不可用 - + XML 错误 文档 - +