translation

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