Material localization support
[debian/openrocket] / core / src / net / sf / openrocket / file / openrocket / savers / RocketComponentSaver.java
index bc58ff403f47e98de95ec30dce05348518e33433..a4892902afa73822e9eca0d46e8112ab131feea5 100644 (file)
@@ -6,19 +6,23 @@ import java.util.List;
 import java.util.Locale;
 
 import net.sf.openrocket.file.RocketSaver;
+import net.sf.openrocket.l10n.Translator;
 import net.sf.openrocket.material.Material;
 import net.sf.openrocket.motor.Motor;
 import net.sf.openrocket.motor.ThrustCurveMotor;
+import net.sf.openrocket.preset.ComponentPreset;
 import net.sf.openrocket.rocketcomponent.ComponentAssembly;
 import net.sf.openrocket.rocketcomponent.MotorMount;
 import net.sf.openrocket.rocketcomponent.Rocket;
 import net.sf.openrocket.rocketcomponent.RocketComponent;
+import net.sf.openrocket.startup.Application;
 import net.sf.openrocket.util.BugException;
 import net.sf.openrocket.util.Color;
 import net.sf.openrocket.util.LineStyle;
 
 
 public class RocketComponentSaver {
+       private static final Translator trans = Application.getTranslator();
        
        protected RocketComponentSaver() {
                // Prevent instantiation from outside the package
@@ -27,6 +31,13 @@ public class RocketComponentSaver {
        protected void addParams(net.sf.openrocket.rocketcomponent.RocketComponent c, List<String> elements) {
                elements.add("<name>" + RocketSaver.escapeXML(c.getName()) + "</name>");
                
+               ComponentPreset preset = c.getPresetComponent();
+               if (preset != null) {
+                       elements.add("<preset type=\"" + preset.getType() +
+                                       "\" manufacturer=\"" + preset.getManufacturer().getSimpleName() +
+                                       "\" partno=\"" + preset.getPartNo() + "\" digest=\"" + preset.getDigest() + "\"/>");
+               }
+               
                
                // Save color and line style if significant
                if (!(c instanceof Rocket || c instanceof ComponentAssembly)) {
@@ -100,7 +111,9 @@ public class RocketComponentSaver {
                        throw new BugException("Unknown material type: " + mat.getType());
                }
                
-               return str + " density=\"" + mat.getDensity() + "\">" + RocketSaver.escapeXML(mat.getName()) + "</" + tag + ">";
+               String baseName = trans.getBaseText("material", mat.getName());
+               
+               return str + " density=\"" + mat.getDensity() + "\">" + RocketSaver.escapeXML(baseName) + "</" + tag + ">";
        }