diff --git a/diylc/diylc-core/src/org/diylc/presenter/ComponentProcessor.java b/diylc/diylc-core/src/org/diylc/presenter/ComponentProcessor.java index 4ef1a41a..a1ebe01c 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/ComponentProcessor.java +++ b/diylc/diylc-core/src/org/diylc/presenter/ComponentProcessor.java @@ -173,7 +173,7 @@ public class ComponentProcessor { Method setter = clazz.getMethod("set" + getter.getName().substring(3), getter.getReturnType()); setterName = setter.getName(); } catch (NoSuchMethodException e) { - LOG.debug("No matching setter found for \"" + getter.getName() + "\". Skipping..."); + LOG.debug("No matching setter found for " + clazz.getName() + "." + getter.getName() + ". Skipping..."); } TranslateUtil.translate(name); // temporary, just to make sure we catch it in the dict diff --git a/diylc/diylc-swing/dict.txt b/diylc/diylc-swing/dict.txt index bc86dfa9..d960a94a 100644 --- a/diylc/diylc-swing/dict.txt +++ b/diylc/diylc-swing/dict.txt @@ -42,7 +42,7 @@ G-D-S JFET G-D-S MOSFET G-S-D JFET G-S-D MOSFET -Language +La langue NPN Nor Not @@ -50,9 +50,9 @@ Or PAF PCB PNP -Project Cloud S-G-D JFET S-G-D MOSFET +SMD SPDT SPDT (Center OFF) SPST @@ -61,10 +61,8 @@ Xnor Xor cm ft +hold {0} and drag to unstuck from in -lang\English.txt -lang\French.txt -lang\Spanish.txt mm px yd diff --git a/diylc/diylc-swing/lang/English.txt b/diylc/diylc-swing/lang/English.txt index 049c0da6..966f37ad 100644 --- a/diylc/diylc-swing/lang/English.txt +++ b/diylc/diylc-swing/lang/English.txt @@ -1,3 +1,6 @@ +(Building Blocks) +(Favorites) +(Recently Used) 180 degrees clockwise 270 degrees clockwise 90 degrees clockwise @@ -22,6 +25,7 @@ Base Below Blueprint Board +Boards Board Color Board Width Bobin 1 @@ -46,6 +50,12 @@ Change Password Channel Chassis Circular +Click on a component to highlight area directly or indirectly connected to the area below the cursor. To continue editing, this mode needs to be switched OFF +Click on the canvas to create a new %s or press %s to cancel +Click on the canvas to set the %s control point of a new %s or press %s to cancel +Click the lighbulb icon in the bottom-right corner of the window for more info. +Click to fetch the most recent public announcement +Click to show recent changes and updates Coil Coil Border Coil Length @@ -61,6 +71,7 @@ Components Config Connector Connector (Mirrored) +Connectivity Contacts Continuous Creation Coordinate Color @@ -73,6 +84,7 @@ Core Thickness Core Width Could not create a new file. Check the log for details. Could not create component. Check log for details. +Could not fetch public announcements. Could not save the project to file. Check the log for details. Could not set component type slot. Check log for details. Cover @@ -102,6 +114,8 @@ Display Pin #s Dog Ear Dot Spacing Dotted +Drag control point(s) of +Drag the mouse over the canvas to place a new Dual Rail Humbucker Dual Rods Duodecar B12C @@ -111,6 +125,7 @@ Edit Edit Project Settings Edit Selection Electrode Labels +Electro-Mechanical Enable Cache Boost End Arrow Enjoying DIYLC? Click here to buy me a coffe :) @@ -148,6 +163,7 @@ Generate Spice Netlist Grid Grid Spacing Group Selection +Guitar Half Hardware Acceleration Heaters @@ -168,6 +184,7 @@ Horizontal Small 1 Horizontal Small 2 Horizontal X-Small Humbucking +If this box is checked application will use the current value as a
default when creating new components of the same type Image Immediate Only Import @@ -176,7 +193,9 @@ Import Variants In-Line D-44 In-line Indent +Information Inline +Input error for "%s": %s Inside color Integration Invert polarity @@ -185,6 +204,8 @@ Label Color Label Orientation Label Position Labels +Language +Language selection will be applied after the application is restarted. Layer Layers Lead Color @@ -193,6 +214,7 @@ Lead Length Lead Spacing Left Left-to-Right +Left click to instantiate this component, right click for more options Legs Length Letters @@ -216,6 +238,7 @@ Mirror Horizontally Mirror Selection Mirror Vertically Mirroring operation will change the circuit. Do you want to continue? +Misc Model Mono Mount @@ -226,6 +249,8 @@ Name Nand Negative New +New version available +No new public announcements available. No None North @@ -246,6 +271,7 @@ Outside Oval horizontal Oval vertical Pad Color +Passive Paste Pin Arrangement Pin Color @@ -268,6 +294,8 @@ Power Rating Power Strip Primary CT Print... +Project Cloud +Public Announcement Radius Rail Recent Files @@ -294,7 +322,11 @@ Save Save As Save as Variant Scale +Schematic Symbols Screws +Selection +Selection Size +Selection is empty. Search The Cloud Searchable Tree Secondary CT @@ -303,12 +335,14 @@ Selected component(s) have reached the bottom of their layer. Do you want to for Selected component(s) have reached the top of their layer. Do you want to force the selection to the top? Selection contains components that cannot be mirrored. Do you want to exclude them? Selection contains components that cannot be rotated. Do you want to exclude them? +Semiconductors Send Backward Send Selection to Back Seven Shaft Down Shaft Up Shape +Shapes Show Grid Show Rulers Shroud @@ -374,6 +408,7 @@ Trace Mask Transform Selection Triangle Tubular +Tubes Two Type Ultra-miniature @@ -385,6 +420,7 @@ Unit Upload A Project User Manual Value +Version history is not available. Vertical Vertical Alignment Vertical Inline @@ -399,5 +435,7 @@ Width Winding Spacing X-axis Y-axis +Zoom base of 10 -base of 2 \ No newline at end of file +base of 2 +hold %s and drag to unstuck from \ No newline at end of file diff --git a/diylc/diylc-swing/lang/French.txt b/diylc/diylc-swing/lang/French.txt index 3d5c0e0a..3d871abd 100644 --- a/diylc/diylc-swing/lang/French.txt +++ b/diylc/diylc-swing/lang/French.txt @@ -1,9 +1,12 @@ +(Building Blocks)|(Blocs de construction) +(Favorites)|(Favoris) +(Recently Used)|(Récemment utilisé) 180 degrees clockwise|180 degrés dans le sens horaire 270 degrees clockwise|270 degrés dans le sens des aiguilles d'une montre 90 degrees clockwise|90 degrés dans le sens horaire A variant with that name already exists. Overwrite?|Une variante avec ce nom existe déjà. Écraser? -About|À propos de -Above|Au dessus de +About|À propos +Above|Ci-dessus Access User Files|Accéder aux fichiers utilisateur Add Flexible Leads|Ajouter des prospects flexibles Add Validation Step|Ajouter une étape de validation @@ -13,25 +16,26 @@ Analyze|Analyser Analyze Guitar Diagrams|Analyser les diagrammes de guitare And|Et Angle|Angle -Anti-Aliasing|Anti crénelage +Anti-Aliasing|Anti-aliasing Arrow Size|Taille de la flèche Author|Auteur Auto-Create Pads|Pads de création automatique Auto-Edit Mode|Mode d'édition automatique Base|Base -Below|Au dessous de -Blueprint|Plan -Board|Planche +Below|Ci-dessous +Blueprint|Blueprint +Board|Conseil +Boards|Tableaux Board Color|Couleur du plateau Board Width|Largeur du panneau Bobin 1|Bobin 1 Bobin 2|Bobin 2 -Body|Corps +Body|Le corps Border|Frontière Border Thickness|Épaisseur de bordure -Both|Tous les deux -Both Sides|Des deux côtés -Bottom|Bas +Both|Les deux +Both Sides|Les deux côtés +Bottom|En bas Bottom Left|En bas à gauche Bottom Right|En bas à droite Bring Forward|Avancer @@ -43,14 +47,20 @@ Center Positive|Centre positif Center Terminal|Terminal central Central|Central Change Password|Changer le mot de passe -Channel|Canal +Channel|Chaîne Chassis|Châssis Circular|Circulaire +Click on a component to highlight area directly or indirectly connected to the area below the cursor. To continue editing, this mode needs to be switched OFF|Cliquez sur un composant pour mettre en surbrillance la zone directement ou indirectement connectée à la zone située sous le curseur. Pour continuer l'édition, ce mode doit être désactivé +Click on the canvas to create a new %s or press %s to cancel|Cliquez sur le canevas pour créer un nouveau %s ou appuyez sur %s pour annuler +Click on the canvas to set the %s control point of a new %s or press %s to cancel|Cliquez sur le canevas pour définir le point de contrôle %s d'un nouveau %s ou appuyez sur %s pour annuler +Click the lighbulb icon in the bottom-right corner of the window for more info.|Cliquez sur l'icône de l'ampoule dans le coin inférieur droit de la fenêtre pour plus d'informations. +Click to fetch the most recent public announcement|Cliquez pour récupérer l'annonce publique la plus récente +Click to show recent changes and updates|Cliquez pour afficher les modifications et mises à jour récentes Coil|Bobine Coil Border|Bordure de bobine Coil Length|Longueur de bobine Coil Width|Largeur de bobine -Color|Couleur +Color|La couleur Color 1|Couleur 1 Color 2|Couleur 2 Color code|Code couleur @@ -61,18 +71,20 @@ Components|Composants Config|Config Connector|Connecteur Connector (Mirrored)|Connecteur (en miroir) -Contacts|Contacts +Connectivity|Connectivité +Contacts|Les contacts Continuous Creation|Création continue Coordinate Color|Couleur coordonnée Coordinate Origin|Origine des coordonnées Coordinates|Coordonnées -Copy|Copie -Core|Coeur -Core Border|Frontière centrale +Copy|Copier +Core|Noyau +Core Border|Bordure centrale Core Thickness|Épaisseur du noyau Core Width|Largeur de noyau Could not create a new file. Check the log for details.|Impossible de créer un nouveau fichier. Consultez le journal pour plus de détails. Could not create component. Check log for details.|Impossible de créer le composant. Consultez le journal pour plus de détails. +Could not fetch public announcements.|Impossible de récupérer les annonces publiques. Could not save the project to file. Check the log for details.|Impossible d'enregistrer le projet dans un fichier. Consultez le journal pour plus de détails. Could not set component type slot. Check log for details.|Impossible de définir l'emplacement du type de composant. Consultez le journal pour plus de détails. Cover|Couverture @@ -86,10 +98,10 @@ DIP (Mirrored)|DIP (en miroir) DP3T (Standard 3-Position Strat)|DP3T (Strat standard à 3 positions) DP3T (Standard 5-Position Strat)|DP3T (Strat standard à 5 positions) DP4T (4-Position Tele)|DP4T (télé 4 positions) -Dark|Foncé +Dark|Sombre Dashed|Dashed Decimals|Décimales -Default|Défaut +Default|Par défaut Default Font|Police par défaut Default Font Size|Taille de police par défaut Delete Selection|Supprimer la sélection @@ -97,26 +109,29 @@ Description|La description Diameter|Diamètre Directional|Directionnel Directly heated|Directement chauffé -Display|Afficher +Display|Affichage Display Pin #s|Afficher les broches # Dog Ear|Oreille de chien Dot Spacing|Espacement des points -Dotted|À pois +Dotted|Pointillé +Drag control point(s) of|Faites glisser le (s) point (s) de contrôle de +Drag the mouse over the canvas to place a new|Faites glisser la souris sur le canevas pour placer un nouveau Dual Rail Humbucker|Humbucker à double rail Dual Rods|Dual Rods Duodecar B12C|Duodecar B12C Duplicate|Dupliquer Edges|Bords -Edit|Éditer +Edit|Modifier Edit Project Settings|Modifier les paramètres du projet Edit Selection|Modifier la sélection Electrode Labels|Étiquettes d'électrode +Electro-Mechanical|Électromécanique Enable Cache Boost|Activer le boost de cache End Arrow|Flèche de fin Enjoying DIYLC? Click here to buy me a coffe :)|Vous aimez DIYLC? Cliquez ici pour m'acheter un café :) Error|Erreur Error occured while editing selection. Check the log for details.|Une erreur s'est produite lors de la modification de la sélection. Consultez le journal pour plus de détails. -Exit|Sortie +Exit|Quitter Expand Selection|Développer la sélection Explicit Dimensions|Dimensions explicites Explicit Length|Longueur explicite @@ -127,7 +142,7 @@ Export Variants|Exporter les variantes Export to PDF|Exporter au format PDF Export to PNG|Exporter en PNG Extra Working Area|Zone de travail supplémentaire -Eyelet color|Couleur oeillet +Eyelet color|Oeillet de couleur FAQ|FAQ File|Fichier Fill|Remplir @@ -136,23 +151,24 @@ Find|Trouver Five|Cinq Flip|Retourner Folded|Plié -Font|Police de caractère -Font Bold|Caractères gras +Font|Police +Font Bold|Police en gras Font Italic|Italic Font Size|Taille de police Four|Quatre -Full|Plein +Full|Complet Fuse|Fusible Generate DIYLC Netlist|Générer une netlist DIYLC Generate Spice Netlist|Générer la netlist Spice -Grid|la grille +Grid|Grille Grid Spacing|Espacement de la grille Group Selection|Sélection de groupe -Half|Moitié +Guitar|Guitare +Half|Demi Hardware Acceleration|Accélération matérielle Heaters|Radiateurs -Height|la taille -Help|Aider +Height|La hauteur +Help|Aide Hi-Quality Rendering|Rendu de haute qualité Highlight Connected Areas|Mettez en surbrillance les zones connectées Hole|Trou @@ -168,45 +184,51 @@ Horizontal Small 1|Horizontal petit 1 Horizontal Small 2|Horizontal petit 2 Horizontal X-Small|X-Small horizontal Humbucking|Humbucking +If this box is checked application will use the current value as a
default when creating new components of the same type|Si cette case est cochée, l'application utilisera la valeur actuelle comme valeur par défaut
lors de la création de nouveaux composants du même type Image|Image Immediate Only|Immédiatement seulement -Import|Importation +Import|Importer Import Building Blocks|Importer des blocs de construction Import Variants|Importer des variantes In-Line D-44|En ligne D-44 In-line|En ligne Indent|Retrait -Inline|En ligne +Information|L'information +Inline|Inline +Input error for "%s": %s|Erreur d'entrée pour "%s": %s" Inside color|Couleur intérieure -Integration|L'intégration +Integration|Intégration Invert polarity|Inverser la polarité Label|Étiquette Label Color|Couleur de l'étiquette Label Orientation|Orientation de l'étiquette Label Position|Position de l'étiquette -Labels|Étiquettes +Labels|Les étiquettes +Language|La langue +Language selection will be applied after the application is restarted.|La sélection de la langue sera appliquée après le redémarrage de l'application. Layer|Couche Layers|Couches Lead Color|Couleur de plomb Lead Count|Nombre de prospects -Lead Length|Longueur de fil +Lead Length|Longueur d'avance Lead Spacing|Espacement des fils -Left|La gauche +Left|Gauche Left-to-Right|De gauche à droite -Legs|Jambes -Length|Longueur +Left click to instantiate this component, right click for more options|Clic gauche pour instancier ce composant, clic droit pour plus d'options +Legs|Les jambes +Length|La longueur Letters|Des lettres Light|Lumière Lin|Lin Lip|Lèvre -Lock|Fermer à clé +Lock|Verrouiller Log|Journal -Log In|S'identifier +Log In|Connectez-vous Log Out|Se déconnecter Lug Size|Taille des cosses Lugs|Cosses Make a Donation|Faire un don -Manage Account|Gérer son compte +Manage Account|Gérer le compte Manage My Uploads|Gérer mes téléchargements Mark Common Lugs|Marquer les cosses communes Marker|Marqueur @@ -216,9 +238,10 @@ Mirror Horizontally|Miroir horizontalement Mirror Selection|Sélection miroir Mirror Vertically|Miroir verticalement Mirroring operation will change the circuit. Do you want to continue?|L'opération de mise en miroir changera le circuit. Voulez-vous continuer? +Misc|Divers Model|Modèle -Mono|Mono -Mount|Monter +Mono|Singe +Mount|Mont Mounting Lugs|Pattes de montage Mouse Wheel Zoom|Zoom de la molette de la souris Moveable Label|Étiquette mobile @@ -226,27 +249,30 @@ Name|Nom Nand|Nand Negative|Négatif New|Nouveau +New version available|Nouvelle version disponible +No new public announcements available.|Aucune nouvelle annonce publique disponible. No|Non None|Aucun North|Nord Noval B9A|Noval B9A -Nudge|Coup de coude -Numbers|Nombres -Nut|Écrou +Nudge|Nudge +Numbers|Les chiffres +Nut|Noix Octal|Octal Offset|Décalage One Side|Un côté -Open|Ouvert +Open|Ouverte Opposing Points|Points opposés Orientation|Orientation Outer Foil|Feuille extérieure Outer Foil Mark|Marque de feuille extérieure Outline Mode|Mode contour -Outside|À l'extérieur +Outside|Dehors Oval horizontal|Ovale horizontal -Oval vertical|Verticale ovale +Oval vertical|Ovale vertical Pad Color|Couleur du tampon -Paste|Pâte +Passive|Passif +Paste|Coller Pin Arrangement|Disposition des broches Pin Color|Couleur de broche Pin Spacing|Espacement des broches @@ -254,7 +280,7 @@ Pin spacing|Espacement des broches Pinout|Brochage Pins|Épingles Play Test|Jouer le test -Plugin API|API de plugin +Plugin API|Plugin API Point Count|Nombre de points Polarity|Polarité Polarized|Polarisé @@ -265,9 +291,11 @@ Pole Pieces 2|Pièces de poteau 2 Positions|Postes Positive|Positif Power Rating|Puissance nominale -Power Strip|Power Strip +Power Strip|Multiprise Primary CT|TDM primaire -Print...|Impression... +Print...|Imprimer ... +Project Cloud|Project Cloud +Public Announcement|Annonce publique Radius|Rayon Rail|Rail Recent Files|Fichiers récents @@ -275,26 +303,30 @@ Recent Updates|Mises à jour récentes Redo|Refaire Renumber On Paste|Renuméroter sur la pâte Renumber Selection|Renuméroter la sélection -Resistance|La résistance +Resistance|Résistance Rev log|Journal de rév. Reverse (standing)|Marche arrière (debout) -Right|Droite +Right|À droite Rods|Cannes -Rotate Clockwise|Le sens des aiguilles d'une montre +Rotate Clockwise|Rotation dans le sens horaire Rotate Counterclockwise|Rotation dans le sens antihoraire Rotate Selection|Faire pivoter la sélection -Round|Rond +Round|Ronde Round WOG A|Round WOG A Round WOG B|Round WOG B -Row Spacing|Écartement des rangs -Rows|Lignes +Row Spacing|Espacement des lignes +Rows|Rangées Ruler Inch Subdivision...|Subdivision en pouces de la règle ... Same Type Only|Même type uniquement -Save|sauvegarder +Save|Enregistrer Save As|Enregistrer sous Save as Variant|Enregistrer en tant que variante -Scale|Échelle -Screws|Des vis +Scale|Echelle +Schematic Symbols|Symboles schématiques +Screws|Vis +Selection|Sélection +Selection Size|Taille de sélection +Selection is empty.|La sélection est vide. Search The Cloud|Rechercher dans le cloud Searchable Tree|Arbre consultable Secondary CT|CT secondaire @@ -303,19 +335,21 @@ Selected component(s) have reached the bottom of their layer. Do you want to for Selected component(s) have reached the top of their layer. Do you want to force the selection to the top?|Les composants sélectionnés ont atteint le haut de leur couche. Voulez-vous forcer la sélection vers le haut? Selection contains components that cannot be mirrored. Do you want to exclude them?|La sélection contient des composants qui ne peuvent pas être mis en miroir. Voulez-vous les exclure? Selection contains components that cannot be rotated. Do you want to exclude them?|La sélection contient des composants qui ne peuvent pas être pivotés. Voulez-vous les exclure? -Send Backward|Envoyer vers l'arrière +Semiconductors|Semi-conducteurs +Send Backward|Envoyer en arrière Send Selection to Back|Envoyer la sélection à l'arrière Seven|Sept -Shaft Down|Shaft Down -Shaft Up|Shaft Up +Shaft Down|Arbre vers le bas +Shaft Up|Shaft up Shape|Forme +Shapes|Formes Show Grid|Afficher la grille Show Rulers|Afficher les règles -Shroud|Envelopper +Shroud|Suaire Shrouded|Enveloppé Single Rail|Rail unique Single Rods|Tiges simples -Size|Taille +Size|La taille Sizing Mode|Mode de dimensionnement Small-button B7G|Petit bouton B7G Smooth|Lisse @@ -326,45 +360,45 @@ South|Sud Spacing|Espacement Square|Carré Square BR-3|Carré BR-3 -Standard|la norme +Standard|Standard Start Arrow|Flèche de départ -Start Recording|Commencer l'enregistrement +Start Recording|Démarrer l'enregistrement Stereo|Stéréo Sticky Points|Points collants -Stop Recording|Arrête d'enregistrer -Stratocaster|Stratocaster +Stop Recording|Arrêter l'enregistrement +Stratocaster|Stratcaster Strip Color|Couleur de bande -Stripe|Bande +Stripe|Stripe Stripe 1|Stripe 1 Stripe 2|Stripe 2 Stripe Color|Couleur des rayures Stripe Color 1|Couleur de rayure 1 Stripe Color 2|Couleur de rayure 2 -Style|Style +Style|Le style Submit a Bug|Soumettre un bug Suppressor grid|Grille de suppression Switched|Switched Switches|Commutateurs -Tab|Languette +Tab|Onglet Tab Border|Bordure de tabulation Tabbed Toolbar|Barre d'outils à onglets Taper|Taper Telecaster|Telecaster Terminal Spacing|Espacement des bornes Terminals|Terminaux -Test|Tester +Test|Test Text|Texte Text Color|Couleur du texte Theme|Thème There are unsaved changes. Would you like to save them?|Il y a des modifications non enregistrées. Voulez-vous les enregistrer? Thickness|Épaisseur Three|Trois -Through Hole|À travers le trou -Tick|Cocher -Title|Titre +Through Hole|Trou traversant +Tick|Cochez +Title|Le titre Toolbox|Boîte à outils Top|Haut -Top Lead|Plaider +Top Lead|Lead principal Top Left|En haut à gauche Top Right|En haut à droite Top-to-Bottom|De haut en bas @@ -374,30 +408,34 @@ Trace Mask|Masque Trace Transform Selection|Transformer la sélection Triangle|Triangle Tubular|Tubulaire +Tubes|Tubes Two|Deux -Type|Type +Type|Tapez Ultra-miniature|Ultra-miniature Underside Pad Color|Couleur du tampon inférieur Underside Trace Color|Couleur de trace en dessous -Undo|annuler +Undo|Annuler Ungroup Selection|Dissocier la sélection Unit|Unité Upload A Project|Télécharger un projet -User Manual|Manuel de l'Utilisateur +User Manual|Manuel d'utilisation Value|Valeur -Vertical|Verticale +Version history is not available.|L'historique des versions n'est pas disponible. +Vertical|Vertical Vertical Alignment|Alignement vertical Vertical Inline|Vertical en ligne Vertical Offset 1|Décalage vertical 1 Vertical Offset 2|Décalage vertical 2 -View|Vue +View|Afficher Visible|Visible -Voltage|Tension -Wafer|Tranche -Warning|avertissement +Voltage|La tension +Wafer|Wafer +Warning|Avertissement Width|Largeur Winding Spacing|Espacement des enroulements X-axis|Axe X Y-axis|Axe Y +Zoom|Zoom base of 10|base de 10 base of 2|base de 2 +hold %s and drag to unstuck from|maintenez %s et faites glisser pour décoller diff --git a/diylc/diylc-swing/lang/Spanish.txt b/diylc/diylc-swing/lang/Spanish.txt index 5fe2cd2a..cd08c83d 100644 --- a/diylc/diylc-swing/lang/Spanish.txt +++ b/diylc/diylc-swing/lang/Spanish.txt @@ -46,6 +46,7 @@ Change Password|Cambia la contraseña Channel|Canal Chassis|Chasis Circular|Circular +Click on a component to highlight area directly or indirectly connected to the area below the cursor. To continue editing, this mode needs to be switched OFF|Haga clic en un componente para resaltar el área conectada directa o indirectamente al área debajo del cursor. Para continuar editando, este modo necesita estar apagado Coil|Bobina Coil Border|Borde de la bobina Coil Length|Longitud de la bobina @@ -185,6 +186,8 @@ Label Color|Color de etiqueta Label Orientation|Orientación de etiqueta Label Position|Posición de etiqueta Labels|Etiquetas +Language|Lenguaje +Language selection will be applied after the application is restarted.|La selección del lenguaje se aplicará después de reiniciar la aplicación. Layer|Capa Layers|Capas Lead Color|Color de plomo diff --git a/diylc/diylc-swing/src/org/diylc/swing/gui/editor/PropertyEditorDialog.java b/diylc/diylc-swing/src/org/diylc/swing/gui/editor/PropertyEditorDialog.java index 950f1d98..162be5e2 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/gui/editor/PropertyEditorDialog.java +++ b/diylc/diylc-swing/src/org/diylc/swing/gui/editor/PropertyEditorDialog.java @@ -46,14 +46,21 @@ import org.diylc.core.ValidationException; import org.diylc.lang.TranslateUtil; import org.diylc.swingframework.ButtonDialog; -public class PropertyEditorDialog extends ButtonDialog { +public class PropertyEditorDialog extends ButtonDialog { private static final Logger LOG = Logger.getLogger(PropertyEditorDialog.class); private static final long serialVersionUID = 1L; + + private static final String ERROR_TITLE = TranslateUtil.translate("Error"); + private static final String INPUT_ERROR = TranslateUtil.translate("Input error for \"%s\": %s"); + private static final String DEFAULT_BOX_TOOLTIP_TEXT = + TranslateUtil.translate("If this box is checked application will use the current value as a
default when creating new components of the same type"); private static final String DEFAULT_BOX_TOOLTIP = - "If this box is checked application will use the current value as a
default when creating new components of the same type"; + "" + + DEFAULT_BOX_TOOLTIP_TEXT + + ""; private List properties; private Set defaultedProperties; @@ -103,7 +110,7 @@ public class PropertyEditorDialog extends ButtonDialog { property.getValidator().validate(testObject, property.getValue()); } catch (ValidationException ve) { JOptionPane.showMessageDialog(PropertyEditorDialog.this, - "Input error for \"" + property.getName() + "\": " + ve.getMessage(), "Error", + String.format(INPUT_ERROR, property.getName(), ve.getMessage()), ERROR_TITLE, JOptionPane.ERROR_MESSAGE); return false; } diff --git a/diylc/diylc-swing/src/org/diylc/swing/plugins/config/ConfigPlugin.java b/diylc/diylc-swing/src/org/diylc/swing/plugins/config/ConfigPlugin.java index 4d9412d4..e200d5da 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/plugins/config/ConfigPlugin.java +++ b/diylc/diylc-swing/src/org/diylc/swing/plugins/config/ConfigPlugin.java @@ -44,7 +44,7 @@ import com.thoughtworks.xstream.io.xml.DomDriver; * * @author Branislav Stojkovic */ -public class ConfigPlugin implements IPlugIn { +public class ConfigPlugin implements IPlugIn { private static final Logger LOG = Logger.getLogger(ConfigPlugin.class); @@ -56,7 +56,9 @@ public class ConfigPlugin implements IPlugIn { public static final String COMPONENT_BROWSER = "componentBrowser"; public static final String SEARCHABLE_TREE = "Searchable Tree"; public static final String TABBED_TOOLBAR = "Tabbed Toolbar"; - private static final String LANGUAGE_MENU = "Language"; + private static final String LANGUAGE_MENU = TranslateUtil.translate("Language"); + + private static final String LANG_RESTART = TranslateUtil.translate("Language selection will be applied after the application is restarted."); private ISwingUI swingUI; @@ -183,7 +185,7 @@ public class ConfigPlugin implements IPlugIn { @Override public void valueChanged(String key, Object value) { - swingUI.showMessage("Language selection will be applied after the application is restarted.", "Language", ISwingUI.INFORMATION_MESSAGE); + swingUI.showMessage(LANG_RESTART, LANGUAGE_MENU, ISwingUI.INFORMATION_MESSAGE); } }); } diff --git a/diylc/diylc-swing/src/org/diylc/swing/plugins/help/HelpMenuPlugin.java b/diylc/diylc-swing/src/org/diylc/swing/plugins/help/HelpMenuPlugin.java index 71b3acea..fb47d84a 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/plugins/help/HelpMenuPlugin.java +++ b/diylc/diylc-swing/src/org/diylc/swing/plugins/help/HelpMenuPlugin.java @@ -53,7 +53,10 @@ import org.diylc.swingframework.update.UpdateDialog; */ public class HelpMenuPlugin implements IPlugIn { - private static final String HELP_TITLE = "Help"; + private static final String HELP_TITLE = "Help"; + + private static final String INFORMATION = TranslateUtil.translate("Information"); + private static final String HISTORY_NOT_AVAILABLE = TranslateUtil.translate("Version history is not available."); public static String MANUAL_URL = "https://github.com/bancika/diy-layout-creator/blob/wiki/Manual.md"; public static String FAQ_URL = "https://github.com/bancika/diy-layout-creator/blob/wiki/FAQ.md"; @@ -123,7 +126,7 @@ public class HelpMenuPlugin implements IPlugIn { public AboutAction() { super(); - putValue(AbstractAction.NAME, TranslateUtil.translate("About")); + putValue(AbstractAction.NAME, "About"); putValue(AbstractAction.SMALL_ICON, IconLoader.About.getIcon()); } @@ -139,7 +142,7 @@ public class HelpMenuPlugin implements IPlugIn { public RecentUpdatesAction() { super(); - putValue(AbstractAction.NAME, TranslateUtil.translate("Recent Updates")); + putValue(AbstractAction.NAME, "Recent Updates"); putValue(AbstractAction.SMALL_ICON, IconLoader.ScrollInformation.getIcon()); } @@ -147,7 +150,7 @@ public class HelpMenuPlugin implements IPlugIn { public void actionPerformed(ActionEvent e) { List updates = plugInPort.getRecentUpdates(); if (updates == null) - swingUI.showMessage("Version history is not available.", "Information", IView.INFORMATION_MESSAGE); + swingUI.showMessage(HISTORY_NOT_AVAILABLE, INFORMATION, IView.INFORMATION_MESSAGE); else { String html = UpdateChecker.createUpdateHTML(updates); UpdateDialog updateDialog = new UpdateDialog(swingUI.getOwnerFrame().getRootPane(), html, (String)null); @@ -165,7 +168,7 @@ public class HelpMenuPlugin implements IPlugIn { public NavigateURLAction(String name, Icon icon, String url) { super(); this.url = url; - putValue(AbstractAction.NAME, TranslateUtil.translate(name)); + putValue(AbstractAction.NAME, name); putValue(AbstractAction.SMALL_ICON, icon); } @@ -188,7 +191,7 @@ public class HelpMenuPlugin implements IPlugIn { public NavigateFolderAction(String name, Icon icon, String url) { super(); this.url = url; - putValue(AbstractAction.NAME, TranslateUtil.translate(name)); + putValue(AbstractAction.NAME, name); putValue(AbstractAction.SMALL_ICON, icon); } diff --git a/diylc/diylc-swing/src/org/diylc/swing/plugins/statusbar/StatusBar.java b/diylc/diylc-swing/src/org/diylc/swing/plugins/statusbar/StatusBar.java index 58cbbc1f..818b34d1 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/plugins/statusbar/StatusBar.java +++ b/diylc/diylc-swing/src/org/diylc/swing/plugins/statusbar/StatusBar.java @@ -69,6 +69,7 @@ import org.diylc.common.ITask; import org.diylc.core.IDIYComponent; import org.diylc.core.IView; import org.diylc.images.IconLoader; +import org.diylc.lang.TranslateUtil; import org.diylc.presenter.Presenter; import org.diylc.swing.ISwingUI; import org.diylc.swingframework.MemoryBar; @@ -78,12 +79,33 @@ import org.diylc.swingframework.update.UpdateLabel; public class StatusBar extends JPanel implements IPlugIn { + private static final String CLICK_TO_CREATE = TranslateUtil.translate("Click on the canvas to create a new %s or press %s to cancel"); + private static final String CLICK_TO_SET_POINT = + TranslateUtil.translate("Click on the canvas to set the %s control point of a new %s or press %s to cancel"); + private static final String HOLD_TO_UNSTUCK = TranslateUtil.translate("hold %s and drag to unstuck from"); + private static final String SELECTION = TranslateUtil.translate("Selection"); + private static final String DRAG_POINTS_OF = TranslateUtil.translate("Drag control point(s) of"); + private static final String DRAG_TO_PLACE_A_NEW = TranslateUtil.translate("Drag the mouse over the canvas to place a new"); + private static final String ZOOM = TranslateUtil.translate("Zoom"); + private static final String SELECTION_SIZE = TranslateUtil.translate("Selection Size"); + private static final String SELECTION_IS_EMPTY = TranslateUtil.translate("Selection is empty."); + private static final String INFORMATION = TranslateUtil.translate("Information"); + private static final String NO_HISTORY = TranslateUtil.translate("Version history is not available."); + private static final String CLICK_UPDATES = TranslateUtil.translate("Click to show recent changes and updates"); + private static final String NO_ANNOUNCEMENTS = TranslateUtil.translate("No new public announcements available."); + private static final String ERROR_TITLE = TranslateUtil.translate("Error"); + private static final String PUBLIC_ANNOUNCEMENT = TranslateUtil.translate("Public Announcement"); + private static final String COULD_NOT_FETCH_ANNOUNCEMENTS = TranslateUtil.translate("Could not fetch public announcements."); + private static final String CLICK_TO_FETCH_ANNOUNCEMENT = TranslateUtil.translate("Click to fetch the most recent public announcement"); + private static final String CLICK_THE_LIGHBULB = TranslateUtil.translate("Click the lighbulb icon in the bottom-right corner of the window for more info."); + private static final String NEW_VERSION_AVAILABLE = TranslateUtil.translate("New version available"); + private static String HIGHLIGHT_CONNECTED_TIP = TranslateUtil.translate("Click on a component to highlight area directly or indirectly connected to the area below the cursor. To continue editing, this mode needs to be switched OFF"); + private static final long serialVersionUID = 1L; private static final Logger LOG = Logger.getLogger(StatusBar.class); - public static String UPDATE_URL = "http://diy-fever.com/diylc/api/v1/update.xml"; - private static String HIGHLIGHT_CONNECTED_TIP = "Click on a component to highlight area directly or indirectly connected to the area below the cursor. To continue editing, this mode needs to be switched OFF"; + public static String UPDATE_URL = "http://diy-fever.com/diylc/api/v1/update.xml"; private static final Format sizeFormat = new DecimalFormat("0.##"); private JComboBox zoomBox; @@ -138,8 +160,9 @@ public class StatusBar extends JPanel implements IPlugIn { if (update != null) { String updateHtml = - "New version available: " + update - + "
Click the lighbulb icon in the bottom-right corner of the window for more info."; + "" + NEW_VERSION_AVAILABLE + ": " + update + + "
" + + CLICK_THE_LIGHBULB; if (announcements == null || announcements.length() == 0) return "" + updateHtml + ""; announcements = announcements.replace("", "" + updateHtml + "
"); @@ -225,7 +248,7 @@ public class StatusBar extends JPanel implements IPlugIn { return new Point(0, -16); } }; - announcementLabel.setToolTipText("Click to fetch the most recent public announcement"); + announcementLabel.setToolTipText(CLICK_TO_FETCH_ANNOUNCEMENT); announcementLabel.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); announcementLabel.addMouseListener(new MouseAdapter() { @@ -241,16 +264,16 @@ public class StatusBar extends JPanel implements IPlugIn { @Override public void failed(Exception e) { LOG.error("Error while fetching announcements", e); - swingUI.showMessage("Could not fetch public announcements.", "Error", IView.ERROR_MESSAGE); + swingUI.showMessage(COULD_NOT_FETCH_ANNOUNCEMENTS, ERROR_TITLE, IView.ERROR_MESSAGE); } @Override public void complete(String result) { if (result != null && result.length() > 0) { - swingUI.showMessage(result, "Public Announcement", IView.INFORMATION_MESSAGE); + swingUI.showMessage(result, PUBLIC_ANNOUNCEMENT, IView.INFORMATION_MESSAGE); announcementProvider.dismissed(); } else - swingUI.showMessage("No new public announcements available.", "Public Announcement", + swingUI.showMessage(NO_ANNOUNCEMENTS, PUBLIC_ANNOUNCEMENT, IView.INFORMATION_MESSAGE); } @@ -272,7 +295,7 @@ public class StatusBar extends JPanel implements IPlugIn { return new Point(0, -16); } }; - recentChangesLabel.setToolTipText("Click to show recent changes and updates"); + recentChangesLabel.setToolTipText(CLICK_UPDATES); recentChangesLabel.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); recentChangesLabel.addMouseListener(new MouseAdapter() { @@ -281,7 +304,7 @@ public class StatusBar extends JPanel implements IPlugIn { public void mouseClicked(MouseEvent e) { List updates = plugInPort.getRecentUpdates(); if (updates == null) - swingUI.showMessage("Version history is not available.", "Information", IView.INFORMATION_MESSAGE); + swingUI.showMessage(NO_HISTORY, INFORMATION, IView.INFORMATION_MESSAGE); else { String html = UpdateChecker.createUpdateHTML(updates); UpdateDialog updateDialog = new UpdateDialog(swingUI.getOwnerFrame().getRootPane(), html, (String)null); @@ -344,13 +367,13 @@ public class StatusBar extends JPanel implements IPlugIn { Point2D[] sizes = plugInPort.calculateSelectionDimension(); String text; if (sizes == null) { - text = "Selection is empty."; + text = SELECTION_IS_EMPTY; } else { text = sizeFormat.format(sizes[0].getX()) + " x " + sizeFormat.format(sizes[0].getY()) + " in\n" + sizeFormat.format(sizes[1].getX()) + " x " + sizeFormat.format(sizes[1].getY()) + " cm"; } - JOptionPane.showMessageDialog(SwingUtilities.getRootPane(StatusBar.this), text, "Selection Size", + JOptionPane.showMessageDialog(SwingUtilities.getRootPane(StatusBar.this), text, SELECTION_SIZE, JOptionPane.INFORMATION_MESSAGE); } }); @@ -372,7 +395,7 @@ public class StatusBar extends JPanel implements IPlugIn { add(getPositionLabel(), gbc); JPanel zoomPanel = new JPanel(new BorderLayout()); - zoomPanel.add(new JLabel("Zoom: "), BorderLayout.WEST); + zoomPanel.add(new JLabel(ZOOM + ": "), BorderLayout.WEST); zoomPanel.add(getZoomBox(), BorderLayout.CENTER); // zoomPanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory // .createEtchedBorder(), BorderFactory.createEmptyBorder(2, 4, 2, @@ -502,7 +525,7 @@ public class StatusBar extends JPanel implements IPlugIn { if (componentSlot == null) { if (componentNamesUnderCursor != null && !componentNamesUnderCursor.isEmpty()) { String formattedNames = Utils.toCommaString(componentNamesUnderCursor); - statusText = "Drag control point(s) of " + formattedNames + ""; + statusText = "" + DRAG_POINTS_OF + " " + formattedNames + ""; } else if (selectedComponentNames != null && !selectedComponentNames.isEmpty()) { StringBuilder builder = new StringBuilder(); builder.append(Utils.toCommaString(selectedComponentNames.subList(0, @@ -511,18 +534,18 @@ public class StatusBar extends JPanel implements IPlugIn { builder.append(" and " + (selectedComponentNames.size() - 15) + " more"); } if (!stuckComponentNames.isEmpty()) { - builder.append(" (hold Ctrl and drag to unstuck from "); + builder.append(" (" + String.format(HOLD_TO_UNSTUCK, "Ctrl") + " "); builder.append(Utils.toCommaString(stuckComponentNames.subList(0, Math.min(5, stuckComponentNames.size())))); if (stuckComponentNames.size() > 5) { builder.append(" and " + (stuckComponentNames.size() - 5) + " more"); } builder.append(")"); } - statusText = "Selection: " + builder.toString() + ""; + statusText = "" + SELECTION + ": " + builder.toString() + ""; } } else { if (forceInstatiate != null && forceInstatiate) - statusText = "Drag the mouse over the canvas to place a new " + componentSlot.getName() + statusText = "" + DRAG_TO_PLACE_A_NEW + " " + componentSlot.getName() + ""; else switch (componentSlot.getCreationMethod()) { @@ -534,13 +557,13 @@ public class StatusBar extends JPanel implements IPlugIn { count = "second"; } statusText = - "Click on the canvas to set the " + count + " control point of a new " - + componentSlot.getName() + " or press Esc to cancel"; + "" + String.format(CLICK_TO_SET_POINT, count, "" + + componentSlot.getName() + "", "Esc") + ""; break; case SINGLE_CLICK: statusText = - "Click on the canvas to create a new " + componentSlot.getName() - + " or press Esc to cancel"; + "" + String.format(CLICK_TO_CREATE, "" + componentSlot.getName() + + "", "Esc") + ""; break; } } diff --git a/diylc/diylc-swing/src/org/diylc/swing/plugins/tree/TreePanel.java b/diylc/diylc-swing/src/org/diylc/swing/plugins/tree/TreePanel.java index ffa1f288..cd0fdf11 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/plugins/tree/TreePanel.java +++ b/diylc/diylc-swing/src/org/diylc/swing/plugins/tree/TreePanel.java @@ -84,6 +84,7 @@ import org.diylc.core.IDIYComponent; import org.diylc.core.IView; import org.diylc.core.Template; import org.diylc.images.IconLoader; +import org.diylc.lang.TranslateUtil; import org.diylc.presenter.ComponentProcessor; import org.diylc.swing.ISwingUI; import org.diylc.swing.plugins.toolbox.ComponentButtonFactory; @@ -93,6 +94,9 @@ public class TreePanel extends JPanel { private static final long serialVersionUID = 1L; private static final Logger LOG = Logger.getLogger(TreePanel.class); + + private static final String CLICK_TO_INSTANTIATE = + TranslateUtil.translate("Left click to instantiate this component, right click for more options"); public static final String COMPONENT_SHORTCUT_KEY = "componentShortcuts"; @@ -751,11 +755,11 @@ public class TreePanel extends JPanel { if (payload.isVisible()) setPreferredSize(new Dimension(250, 20)); else - setPreferredSize(new Dimension(0, 0)); + setPreferredSize(new Dimension(0, 0)); } else { setToolTipText("" + payload.getComponentType().getName() + "
" + payload.getComponentType().getDescription() + "
Author: " + payload.getComponentType().getAuthor() - + "

Left click to instantiate this component, right click for more options" + ""); + + "

" + CLICK_TO_INSTANTIATE + ""); setIcon(payload.getComponentType().getIcon()); if (payload.isVisible()) setPreferredSize(new Dimension(250, 32)); @@ -791,7 +795,8 @@ public class TreePanel extends JPanel { } } - setText("" + payload.forDisplay() + shortCutHtml + variantsHtml + ""); + // translate categories + setText("" + (payload.getComponentType() == null ? TranslateUtil.translate(payload.forDisplay()) : payload.forDisplay()) + shortCutHtml + variantsHtml + ""); } return this;