button.cancel = Cancel
button.close = Close
-about.dlg.but.close = Close
-about.dlg.lbl.translation =
-about.dlg.lbl.transwebsite =
+ ! Common labels used in buttons of dialog windows
+ dlg.but.ok = OK
+ dlg.but.cancel = Cancel
+ dlg.but.close = Close
+
++
++! General file type names
++filetypes.pdf = PDF files
++
++
+ ! About Dialog
-! Print panel dialog
-printdlg.but.saveaspdf = Save as PDF
-printdlg.but.preview = Preview
-printdlg.but.settings = Settings
++AboutDialog.lbl.version = Version
++! The texts below provide additional credits for the translation maintainer
++! - In AboutDialog.lbl.translation replace "English" with the current language.
++! - AboutDialog.lbl.translator is the translator / group name (may be empty)
++! - AboutDialog.lbl.translatorWebsite is a URL to the translator / group (may be empty)
++! - AboutDialog.lbl.translatorIcon is the file name of an icon under pix/translators/ (may be empty)
++AboutDialog.lbl.translation = English translation by:
++AboutDialog.lbl.translator =
++AboutDialog.lbl.translatorWebsite =
++AboutDialog.lbl.translatorIcon =
++
++
++! Print dialog
++PrintDialog.title = Print or export
++PrintDialog.but.previewAndPrint = Preview & Print
++PrintDialog.checkbox.showByStage = Show by stage
++PrintDialog.lbl.selectElements = Select elements to include:
++printdlg.but.saveaspdf = Save as PDF
++printdlg.but.preview = Preview
++printdlg.but.settings = Settings
++PrintDialog.error.preview.title = Unable to open preview
++PrintDialog.error.preview.desc1 = Unable to open PDF preview.
++PrintDialog.error.preview.desc2 = Please use the "Save as PDF" option instead.
++
+
+ ! Bug Report dialog
+ bugreport.dlg.title = Bug report
+ bugreport.dlg.but.Sendbugreport = Send bug report
+ bugreport.dlg.but.Sendbugreport.Ttip = Automatically send the bug report to the OpenRocket developers.
+ bugreport.dlg.successmsg1 = Bug report successfully sent.
+ bugreport.dlg.successmsg2 = Thank you for helping make OpenRocket better!
+ bugreport.dlg.successmsg3 = Bug report sent
+ bugreport.dlg.connectedInternet = <html>If connected to the Internet, you can simply click <em>Send bug report</em>.
+ bugreport.dlg.otherwise = Otherwise, send the text below to the address:
+ bugreport.lbl.Theinformation = The information above may be included in a public bug report. Make sure it does not contain any sensitive information you do not want to be made public.
+ bugreport.dlg.failedmsg1 = OpenRocket was unable to send the bug report:
+ bugreport.dlg.failedmsg2 = Please send the report manually to
+ bugreport.dlg.failedmsg3 = Error sending report
+ bugreport.reportDialog.txt = <html><b>You can report a bug in OpenRocket by filling in and submitting the form below.</b><br>You can also report bugs and include attachments on the project web site.
+ bugreport.reportDialog.txt2 = <html><b>Please include a short description about what you were doing when the exception occurred.</b>
+
+
+ ! Debug log dialog
+ debuglogdlg.but.clear = Clear
+ debuglogdlg.OpenRocketdebuglog = OpenRocket debug log
+ debuglogdlg.Displayloglines = Display log lines:
+ debuglogdlg.Follow = Follow
+ debuglogdlg.col.Time = Time
+ debuglogdlg.col.Level = Level
+ debuglogdlg.col.Location = Location
+ debuglogdlg.col.Message = Message
+ debuglogdlg.lbl.Loglinenbr = Log line number:
+ debuglogdlg.lbl.Time = Time:
+ debuglogdlg.lbl.Level = Level:
+
+
+ ! Edit Motor configuration dialog
+ edtmotorconfdlg.but.removemotor = Remove motor
+ edtmotorconfdlg.but.Selectmotor = Select motor
+ edtmotorconfdlg.but.Removeconfiguration = Remove configuration
+ edtmotorconfdlg.but.Newconfiguration = New configuration
+ edtmotorconfdlg.lbl.Motormounts = <html><b>Motor mounts:</b>
+ edtmotorconfdlg.title.Editmotorconf = Edit motor configurations
+ edtmotorconfdlg.selectcomp = <html>Select which components function as motor mounts:
+ edtmotorconfdlg.lbl.Motorconfig = <html><b>Motor configurations:</b>
+ edtmotorconfdlg.lbl.Configname = Configuration name:
+ edtmotorconfdlg.lbl.Leavenamedefault = Leave name empty for default.
+
+ ! Example design dialog
+ exdesigndlg.but.open = Open
+ exdesigndlg.lbl.Selectexample = Select example designs to open:
+ exdesigndlg.lbl.Openexampledesign = Open example design
+ exdesigndlg.lbl.Exampledesignsnotfound = Example designs could not be found.
+ exdesigndlg.lbl.Examplesnotfound = Examples not found
+
+
+ ! Material edit panel
+ matedtpan.but.new = New
+ matedtpan.but.edit = Edit
+ matedtpan.but.delete = Delete
+ matedtpan.but.revertall = Revert all
+ matedtpan.col.Material = Material
+ matedtpan.col.Type = Type
+ matedtpan.col.Density = Density
+ matedtpan.col.but.ttip.New = Add a new material
+ matedtpan.title.Addcustmaterial = Add a custom material
+ matedtpan.but.ttip.edit = Edit an existing material
+ matedtpan.title.Editmaterial = Edit material
+ matedtpan.title2.Editmaterial = The built-in materials cannot be modified.
+ matedtpan.but.ttip.delete = Delete a user-defined material
+ matedtpan.but.ttip.revertall = Delete all user-defined materials
+ matedtpan.title.Deletealluser-defined = Delete all user-defined materials?
+ matedtpan.title.Revertall = Revert all?
+ matedtpan.lbl.edtmaterials = <html><i>Editing materials will not affect existing rocket designs.</i>
+
+ !MaterialModel
+ MaterialModel.title.Material = Material
+ MaterialModel.title.Defcustmat = Define custom material
+
+
+ ! Preference dialog
+ pref.dlg.but.add = Add
+ pref.dlg.but.reset = Reset
+ pref.dlg.but.checknow = Check now
+ pref.dlg.but.defaultmetric = Default metric
+ pref.dlg.but.defaultimperial = Default imperial
+ pref.dlg.title.Preferences = Preferences
+ pref.dlg.tab.Units = Units
+ pref.dlg.tab.Defaultunits = Default units
+ pref.dlg.tab.Materials = Materials
+ pref.dlg.tab.Custommaterials = Custom materials
+ pref.dlg.tab.Options = Options
+ pref.dlg.tab.Miscellaneousoptions = Miscellaneous options
+ pref.dlg.lbl.Positiontoinsert = Position to insert new body components:
+ pref.dlg.lbl.Confirmdeletion = Confirm deletion of simulations:
+ pref.dlg.lbl.User-definedthrust = User-defined thrust curves:
+ pref.dlg.Allthrustcurvefiles = All thrust curve files (*.eng; *.rse; *.zip; directories)
+ pref.dlg.RASPfiles = RASP motor files (*.eng)
+ pref.dlg.RockSimfiles = RockSim engine files (*.rse)
+ pref.dlg.ZIParchives = ZIP archives (*.zip)
+ pref.dlg.checkbox.Checkupdates = Check for software updates at startup
+ pref.dlg.ttip.Checkupdatesnow = Check for software updates now
+ pref.dlg.lbl.Selectprefunits = Select your preferred units:
+ pref.dlg.lbl.Rocketdimensions = Rocket dimensions:
+ pref.dlg.lbl.Linedensity = Line density:
+ pref.dlg.lbl.Motordimensions = Motor dimensions:
+ pref.dlg.lbl.Surfacedensity = Surface density:
+ pref.dlg.lbl.Distance = Distance:
+ pref.dlg.lbl.Bulkdensity = Bulk density::
+ pref.dlg.lbl.Velocity = Velocity:
+ pref.dlg.lbl.Surfaceroughness = Surface roughness:
+ pref.dlg.lbl.Acceleration = Acceleration:
+ pref.dlg.lbl.Area = Area:
+ pref.dlg.lbl.Mass = Mass:
+ pref.dlg.lbl.Angle = Angle:
+ pref.dlg.lbl.Force = Force:
+ pref.dlg.lbl.Rollrate = Roll rate:
+ pref.dlg.lbl.Totalimpulse = Total impulse:
+ pref.dlg.lbl.Temperature = Temperature:
+ pref.dlg.lbl.Momentofinertia = Moment of inertia:
+ pref.dlg.lbl.Pressure = Pressure:
+ pref.dlg.lbl.Stability = Stability:
+ pref.dlg.lbl.effect1 = The effects will take place the next time you open a window.
+ pref.dlg.lbl.Checkingupdates = Checking for updates...
+ pref.dlg.lbl.msg1 = An error occurred while communicating with the server.
+ pref.dlg.lbl.msg2 = Unable to retrieve update information
+ pref.dlg.lbl.msg3 = You are running the latest version of OpenRocket.
+ pref.dlg.lbl.msg4 = No updates available
+ pref.dlg.PrefChoiseSelector1 = Always ask
+ pref.dlg.PrefChoiseSelector2 = Insert in middle
+ pref.dlg.PrefChoiseSelector3 = Add to end
+ pref.dlg.PrefBooleanSelector1 = Delete
+ pref.dlg.PrefBooleanSelector2 = Confirm
+ pref.dlg.Add = Add
+ pref.dlg.DescriptionArea.Adddirectories = Add directories, RASP motor files (*.eng), RockSim engine files (*.rse) or ZIP archives separated by a semicolon (;) to load external thrust curves. Changes will take effect the next time you start OpenRocket.
+
+
+ ! Simulation edit dialog
+ simedtdlg.but.runsimulation = Run simulation
+ simedtdlg.but.resettodefault = Reset to default
+ simedtdlg.but.add = Add
+ simedtdlg.but.remove = Remove
+ simedtdlg.title.Editsim = Edit simulation
+ simedtdlg.lbl.Simname = Simulation name:
+ simedtdlg.tab.Launchcond = Launch conditions
+ simedtdlg.tab.Simopt = Simulation options
+ simedtdlg.tab.Plotdata = Plot data
+ simedtdlg.tab.Exportdata = Export data
+ simedtdlg.lbl.Motorcfg = Motor configuration:
+ simedtdlg.lbl.ttip.Motorcfg = Select the motor configuration to use.
+ simedtdlg.combo.ttip.motorconf = Select the motor configuration to use.
+ simedtdlg.lbl.Wind = Wind
+ simedtdlg.lbl.Averwindspeed = Average windspeed:
+ simedtdlg.lbl.ttip.Averwindspeed = The average windspeed relative to the ground.
+ simedtdlg.lbl.Stddeviation = Standard deviation:
+ simedtdlg.lbl.ttip.Stddeviation = <html>The standard deviation of the windspeed.<br>The windspeed is within twice the standard deviation from the average for 95% of the time.
+ simedtdlg.lbl.Turbulenceintensity = Turbulence intensity:
+ simedtdlg.lbl.ttip.Turbulenceintensity1 = <html>The turbulence intensity is the standard deviation divided by the average windspeed.<br>
+ simedtdlg.lbl.ttip.Turbulenceintensity2 = Typical values range from
+ simedtdlg.lbl.ttip.Turbulenceintensity3 = to
+ simedtdlg.border.Atmoscond = Atmospheric conditions
+ simedtdlg.checkbox.InterStdAtmosphere = Use International Standard Atmosphere
+ simedtdlg.checkbox.ttip.InterStdAtmosphere1 = <html>Select to use the International Standard Atmosphere model.<br>This model has a temperature of
+ simedtdlg.checkbox.ttip.InterStdAtmosphere2 = and a pressure of
+ simedtdlg.checkbox.ttip.InterStdAtmosphere3 = at sea level.
+ simedtdlg.lbl.Temperature = Temperature:
+ simedtdlg.lbl.ttip.Temperature = The temperature at the launch site.
+ simedtdlg.lbl.Pressure = Pressure:
+ simedtdlg.lbl.ttip.Pressure = The atmospheric pressure at the launch site.
+ simedtdlg.lbl.Launchsite = Launch site
+ simedtdlg.lbl.Latitude = Latitude:
+ simedtdlg.lbl.ttip.Latitude = <html>The launch site latitude affects the gravitational pull of Earth.<br>Positive values are on the Northern hemisphere, negative values on the Southern hemisphere.
+ simedtdlg.lbl.Altitude = Altitude:
+ simedtdlg.lbl.ttip.Altitude = <html>The launch altitude above mean sea level.<br>This affects the position of the rocket in the atmospheric model.
+ simedtdlg.border.Launchrod = Launch rod
+ simedtdlg.lbl.Length = Length:
+ simedtdlg.lbl.ttip.Length = The length of the launch rod.
+ simedtdlg.lbl.Angle = Angle:
+ simedtdlg.lbl.ttip.Angle = The angle of the launch rod from vertical.
+ simedtdlg.lbl.Direction = Direction:
+ simedtdlg.lbl.ttip.Direction1 = <html>Direction of the launch rod relative to the wind.<br>
+ simedtdlg.lbl.ttip.Direction2 = = towards the wind,
+ simedtdlg.lbl.ttip.Direction3 = = downwind.
+ simedtdlg.border.Simopt = Simulator options
+ simedtdlg.lbl.Calcmethod = Calculation method:
+ simedtdlg.lbl.ttip.Calcmethod = <html>The Extended Barrowman method calculates aerodynamic forces according <br>to the Barrowman equations extended to accommodate more components.
+ simedtdlg.lbl.ExtBarrowman = Extended Barrowman
+ simedtdlg.lbl.Simmethod = Simulation method:
+ simedtdlg.lbl.ttip.Simmethod1 = <html>The six degree-of-freedom simulator allows the rocket total freedom during flight.<br>
+ simedtdlg.lbl.ttip.Simmethod2 = Integration is performed using a 4<sup>th</sup> order Runge-Kutta 4 numerical integration.
+ simedtdlg.lbl.Timestep = Time step:
+ simedtdlg.lbl.ttip.Timestep1 = <html>The time between simulation steps.<br>A smaller time step results in a more accurate but slower simulation.<br>
+ simedtdlg.lbl.ttip.Timestep2 = The 4<sup>th</sup> order simulation method is quite accurate with a time step of
+ simedtdlg.but.ttip.resettodefault = Reset the time step to its default value (
+ simedtdlg.border.Simlist = Simulator listeners
+ simedtdlg.txt.longA1 = <html><i>Simulation listeners</i> is an advanced feature that allows user-written code to listen to and interact with the simulation.
+ simedtdlg.txt.longA2 = For details on writing simulation listeners, see the OpenRocket technical documentation.
+ simedtdlg.lbl.Curlist = Current listeners:
+ simedtdlg.lbl.Addsimlist = Add simulation listener
+ simedtdlg.lbl.Noflightdata = No flight data available.
+ simedtdlg.lbl.runsimfirst = Please run the simulation first.
+ simedtdlg.chart.Simflight = Simulated flight
+ simedtdlg.dlg.Simres = Simulation results
+ simedtdlg.IntensityDesc.None = None
+ simedtdlg.IntensityDesc.Verylow = Very low
+ simedtdlg.IntensityDesc.Low = Low
+ simedtdlg.IntensityDesc.Medium = Medium
+ simedtdlg.IntensityDesc.High = High
+ simedtdlg.IntensityDesc.Veryhigh = Very high
+ simedtdlg.IntensityDesc.Extreme = Extreme
+
+
+
+ ! Simulation Panel
+ simpanel.but.newsimulation = New simulation
+ simpanel.but.editsimulation = Edit simulation
+ simpanel.but.runsimulations = Run simulations
+ simpanel.but.deletesimulations = Delete simulations
+ simpanel.but.plotexport = Plot / export
+ simpanel.but.ttip.newsimulation = Add a new simulation
+ simpanel.but.ttip.editsim = Edit the selected simulation
+ simpanel.but.ttip.runsimu = Re-run the selected simulations
+ simpanel.but.ttip.deletesim = Delete the selected simulations
+ simpanel.checkbox.donotask = Do not ask me again
+ simpanel.lbl.defpref = You can change the default operation in the preferences.
+ simpanel.dlg.lbl.DeleteSim1 = Delete the selected simulations?
+ simpanel.dlg.lbl.DeleteSim2 = <html><i>This operation cannot be undone.</i>
+ simpanel.dlg.lbl.DeleteSim3 = Delete simulations
+ simpanel.col.Name = Name
+ simpanel.col.Motors = Motors
+ simpanel.col.Apogee = Apogee
+ simpanel.col.Maxvelocity = Max. velocity
+ simpanel.col.Maxacceleration = Max. acceleration
+ simpanel.col.Timetoapogee = Time to apogee
+ simpanel.col.Flighttime = Flight time
+ simpanel.col.Groundhitvelocity = Ground hit velocity
+
+ ! SimulationRunDialog
+ SimuRunDlg.title.RunSim = Running simulations...
+ SimuRunDlg.lbl.Running = Running ...
+ SimuRunDlg.lbl.Simutime = Simulation time:
+ SimuRunDlg.lbl.Altitude = Altitude:
+ SimuRunDlg.lbl.Velocity = Velocity:
+ SimuRunDlg.msg.Unabletosim = Unable to simulate:
+ SimuRunDlg.msg.errorOccurred = An error occurred during the simulation:
+ SimuRunDlg.msg.AnException1 = An exception occurred during the simulation:
+ SimuRunDlg.msg.AnException2 = Please report this as a bug along with the details below.
+ SimuRunDlg.msg.AssertionError1 = A computation error occurred during the simulation.
+ SimuRunDlg.msg.AssertionError2 = Please report this as a bug along with the details below.
+ SimuRunDlg.msg.unknownerror1 = An unknown error was encountered during the simulation.
+ SimuRunDlg.msg.unknownerror2 = The program may be unstable, you should save all your designs and restart OpenRocket now!
+
+
+
+ ! SimulationExportPanel
+ SimExpPan.desc = Comma Separated Files (*.csv)
+ SimExpPan.border.Vartoexport = Variables to export
+ SimExpPan.but.Selectall = Select all
+ SimExpPan.but.Selectnone = Select none
+ SimExpPan.border.Fieldsep = Field separator
+ SimExpPan.lbl.Fieldsepstr = Field separator string:
+ SimExpPan.lbl.longA1 = <html>The string used to separate the fields in the exported file.<br>
+ SimExpPan.lbl.longA2 = Use ',' for a Comma Separated Values (CSV) file.
+ SimExpPan.checkbox.Includesimudesc = Include simulation description
+ SimExpPan.checkbox.ttip.Includesimudesc = Include a comment at the beginning of the file describing the simulation.
+ SimExpPan.border.Comments = Comments
+ SimExpPan.checkbox.Includefielddesc = Include field descriptions
+ SimExpPan.checkbox.ttip.Includefielddesc = Include a comment line with the descriptions of the exported variables.
+ SimExpPan.checkbox.Incflightevents = Include flight events
+ SimExpPan.checkbox.ttip.Incflightevents = Include a comment line for every flight event.
+ SimExpPan.lbl.Commentchar = Comment character:
+ SimExpPan.lbl.ttip.Commentchar = The character(s) that mark a comment line.
+ SimExpPan.but.Exporttofile = Export to file...
+ SimExpPan.Fileexists.desc1 = File \"
+ SimExpPan.Fileexists.desc2 = \" exists. Overwrite?
+ SimExpPan.Fileexists.title = File exists
+ SimExpPan.ExportingVar.desc1 = Exporting 1 variable out of
+ SimExpPan.ExportingVar.desc2 = Exporting
+ SimExpPan.ExportingVar.desc3 = variables out of
+ SimExpPan.Col.Variable = Variable
+ SimExpPan.Col.Unit = Unit
+
+ ! MotorPlot
+ MotorPlot.title.Motorplot = Motor plot
+ MotorPlot.but.Select = Select
+ MotorPlot.Chart.Motorthrustcurve = Motor thrust curve
+ MotorPlot.Chart.Time = Time / s
+ MotorPlot.Chart.Thrust = Thrust / N
+ MotorPlot.txt.Designation = Designation:
+ MotorPlot.txt.Manufacturer = Manufacturer:
+ MotorPlot.txt.Type = Type:
+ MotorPlot.txt.Delays = Delays:
+ MotorPlot.txt.Comment = Comment:\n
+
+
+
+ ! Simulation plot panel
+ simplotpanel.lbl.Presetplotconf = Preset plot configurations:
+ simplotpanel.lbl.Xaxistype = X axis type:
+ simplotpanel.lbl.Unit = Unit:
+ simplotpanel.lbl.Yaxistypes = Y axis types:
+ simplotpanel.lbl.Flightevents = Flight events:
+ simplotpanel.but.All = All
+ simplotpanel.but.None = None
+ simplotpanel.but.NewYaxisplottype = New Y axis plot type
+ simplotpanel.but.Plotflight = Plot flight
+ simplotpanel.lbl.Axis = Axis:
+ simplotpanel.but.ttip.Removethisplot = Remove this plot
+ simplotpanel.Desc = The data will be plotted in time order even if the X axis type is not time.
+ simplotpanel.OptionPane.lbl1 = A maximum of 15 plots is allowed.
+ simplotpanel.OptionPane.lbl2 = Cannot add plot
+ simplotpanel.AUTO_NAME = Auto
+ simplotpanel.LEFT_NAME = Left
+ simplotpanel.RIGHT_NAME = Right
+ simplotpanel.CUSTOM = Custom
+
+ ! Component add buttons
+ compaddbuttons.Bodycompandfinsets = Body components and fin sets
+ compaddbuttons.Nosecone = Nose cone
+ compaddbuttons.Bodytube = Body tube
+ compaddbuttons.Transition = Transition
+ compaddbuttons.Trapezoidal = Trapezoidal
+ compaddbuttons.Elliptical = Elliptical
+ compaddbuttons.Freeform = Freeform
+ compaddbuttons.Launchlug = Launch lug
+ compaddbuttons.Innercomponent = Inner component
+ compaddbuttons.Innertube = Inner tube
+ compaddbuttons.Coupler = Coupler
+ compaddbuttons.Centeringring = Centering\nring
+ compaddbuttons.Bulkhead = Bulkhead
+ compaddbuttons.Engineblock = Engine\nblock
+ compaddbuttons.Massobjects = Mass objects
+ compaddbuttons.Parachute = Parachute
+ compaddbuttons.Streamer = Streamer
+ compaddbuttons.Shockcord = Shock cord
+ compaddbuttons.Masscomponent = Mass\ncomponent
+ compaddbuttons.Donotaskmeagain = Do not ask me again
+ compaddbuttons.Selectcomppos = Select component position
+ compaddbuttons.lbl.Youcanchange = You can change the default operation in the preferences.
+ compaddbuttons.lbl.insertcomp = Insert the component after the current component or as the last component?
+ compaddbuttons.askPosition.Inserthere = Insert here
+ compaddbuttons.askPosition.Addtotheend = Add to the end
+ compaddbuttons.askPosition.Cancel = Cancel
+
+ ! Component Analysis Dialog
+ componentanalysisdlg.componentanalysis = Component analysis
+ componentanalysisdlg.lbl.winddir = Wind direction:
+ componentanalysisdlg.TitledBorder.warnings = Warnings:
+ componentanalysisdlg.ToggleBut.worst = Worst
+ componentanalysisdlg.lbl.angleofattack = Angle of attack:
+ componentanalysisdlg.lbl.machnumber = Mach number:
+ componentanalysisdlg.lbl.rollrate = Roll rate:
+ componentanalysisdlg.lbl.activestages = Active stages:
+ componentanalysisdlg.lbl.motorconf = Motor configuration:
+ componentanalysisdlg.TabStability.Col = Component
+ componentanalysisdlg.TabStability = Stability
+ componentanalysisdlg.TabStability.ttip = Stability information
+ componentanalysisdlg.dragTableModel.Col.Component = Component
+ componentanalysisdlg.dragTableModel.Col.Pressure = <html>Pressure C<sub>D</sub>
+ componentanalysisdlg.dragTableModel.Col.Base = <html>Base C<sub>D</sub>
+ componentanalysisdlg.dragTableModel.Col.friction = <html>Friction C<sub>D</sub>
+ componentanalysisdlg.dragTableModel.Col.total = <html>Total C<sub>D</sub>
+ componentanalysisdlg.dragTabchar = Drag characteristics
+ componentanalysisdlg.dragTabchar.ttip = Drag characteristics
+ componentanalysisdlg.rollTableModel.Col.component = Component
+ componentanalysisdlg.rollTableModel.Col.rollforc = Roll forcing coefficient
+ componentanalysisdlg.rollTableModel.Col.rolldamp = Roll damping coefficient
+ componentanalysisdlg.rollTableModel.Col.total = <html>Total C<sub>l</sub>
+ componentanalysisdlg.rollTableModel = Roll dynamics
+ componentanalysisdlg.rollTableModel.ttip = Roll dynamics
+ componentanalysisdlg.println.closingmethod = Closing method called:
+ componentanalysisdlg.println.settingnam = SETTING NAN VALUES
+ componentanalysisdlg.lbl.reflenght = Reference length:
+ componentanalysisdlg.lbl.refarea = Reference area:
+ !componentanalysisdlg.But.close =Close
+
+ ! Custom Material dialog
+ custmatdlg.title.Custommaterial = Custom material
+ custmatdlg.lbl.Materialname = Material name:
+ custmatdlg.lbl.Materialtype = Material type:
+ custmatdlg.lbl.Materialdensity = Material density:
+ custmatdlg.checkbox.Addmaterial = Add material to database
+
+
+ ! Ring Component Config
+ ringcompcfg.OuterRadius = OuterRadius
+ ringcompcfg.Automatic = Automatic
+ ringcompcfg.InnerRadius = InnerRadius
+ ringcompcfg.Thickness = Thickness
+ ringcompcfg.Length = Length
+ ringcompcfg.Positionrelativeto = Position relative to:
+ ringcompcfg.plus = plus
+ ringcompcfg.PositionValue = PositionValue
+ ringcompcfg.Radialdistance = Radial distance:
+ ringcompcfg.Distancefrom = Distance from the rocket centerline
+ ringcompcfg.Radialdirection = Radial direction
+ ringcompcfg.radialdirectionfrom = The radial direction from the rocket centerline
+ ringcompcfg.but.Reset = Reset
+ ringcompcfg.but.Resetcomponant = Reset the component to the rocket centerline
+ ringcompcfg.EngineBlock.desc = <html>An <b>engine block</b> stops the motor from moving forwards in the motor mount tube.<br><br>In order to add a motor, create a <b>body tube</b> or <b>inner tube</b> and mark it as a motor mount in the <em>Motor</em> tab.
+ ringcompcfg.note.desc = Note: An inner tube will not affect the aerodynamics of the rocket even if it is located outside of the body tube.
+
+
+ ! Body Tube Config
+ BodyTubecfg.lbl.Bodytubelength = Body tube length:
+ BodyTubecfg.lbl.Outerdiameter = Outer diameter:
+ BodyTubecfg.lbl.Innerdiameter = Inner diameter:
+ BodyTubecfg.lbl.Wallthickness = Wall thickness:
+ BodyTubecfg.tab.General = General
+ BodyTubecfg.tab.Generalproperties = General properties
+ BodyTubecfg.tab.Motor = Motor
+ BodyTubecfg.tab.Motormountconf = Motor mount configuration
+ BodyTubecfg.checkbox.Automatic = Automatic
+ BodyTubecfg.checkbox.Filled = Filled
+
+ ! FinSetConfig
+ FinSetConfig.tab.Fintabs = Fin tabs
+ FinSetConfig.tab.Through-the-wall = Through-the-wall fin tabs
+ FinSetConfig.but.Converttofreeform = Convert to freeform
+ FinSetConfig.but.Converttofreeform.ttip = Convert this fin set into a freeform fin set
+ FinSetConfig.Convertfinset = Convert fin set
+ FinSetConfig.but.Splitfins = Split fins
+ FinSetConfig.but.Splitfins.ttip = Split the fin set into separate fins
+ FinSetConfig.lbl.Through-the-wall = Through-the-wall fin tabs:
+ FinSetConfig.lbl.Tablength = Tab length:
+ FinSetConfig.ttip.Tablength = The length of the fin tab.
+ FinSetConfig.lbl.Tabheight = Tab height:
+ FinSetConfig.ttip.Tabheight = The spanwise height of the fin tab.
+ FinSetConfig.lbl.Tabposition = Tab position:
+ FinSetConfig.ttip.Tabposition = The position of the fin tab.
+ FinSetConfig.lbl.relativeto = relative to
+
+ ! MotorDatabaseLoadingDialog
+ MotorDbLoadDlg.title = Loading motors
+ MotorDbLoadDlg.Loadingmotors = Loading motors...
+
+ ! RocketConfig
+ RocketCfg.lbl.Designname = Design name:
+ RocketCfg.lbl.Designer = Designer:
+ RocketCfg.lbl.Comments = Comments:
+ RocketCfg.lbl.Revisionhistory = Revision history:
+ RocketCfg.lbl.Material = Material:
+
+ ! ShockCordConfig
+ ShockCordCfg.lbl.Shockcordlength = Shock cord length
+
+ ! RocketComponentConfig
+ RocketCompCfg.lbl.Componentname = Component name:
+ RocketCompCfg.ttip.Thecomponentname = The component name.
+ RocketCompCfg.tab.Override = Override
+ RocketCompCfg.tab.MassandCGoverride = Mass and CG override options
+ RocketCompCfg.tab.Figure = Figure
+ RocketCompCfg.tab.Figstyleopt = Figure style options
+ RocketCompCfg.tab.Comment = Comment
+ RocketCompCfg.tab.Specifyacomment = Specify a comment for the component
+ RocketCompCfg.lbl.Mass = Mass:
+ RocketCompCfg.lbl.Componentmass = Component mass:
+ RocketCompCfg.lbl.overriddento = (overridden to
+ RocketCompCfg.lbl.overriddenby = (overridden by
+ RocketCompCfg.lbl.Componentmaterial = Component material:
+ RocketCompCfg.lbl.Componentfinish = Component finish:
+ RocketCompCfg.lbl.ttip.componentmaterialaffects = The component material affects the weight of the component.
+ RocketCompCfg.combo.ttip.componentmaterialaffects = The component material affects the weight of the component.
+ RocketCompCfg.lbl.longA1 = <html>The component finish affects the aerodynamic drag of the component.<br>
+ RocketCompCfg.lbl.longA2 = The value indicated is the average roughness height of the surface.
+ RocketCompCfg.but.Setforall = Set for all
+ RocketCompCfg.but.ttip.Setforall = Set this finish for all components of the rocket.
+ RocketCompCfg.lbl.Overridemassorcenter = Override the mass or center of gravity of the
+ RocketCompCfg.checkbox.Overridemass = Override mass:
+ RocketCompCfg.checkbox.Overridecenterofgrav = Override center of gravity:
+ RocketCompCfg.checkbox.OverridemassandCG = Override mass and CG of all subcomponents
+ RocketCompCfg.lbl.longB1 = <html>The overridden mass does not include motors.<br>
+ RocketCompCfg.lbl.longB2 = The center of gravity is measured from the front end of the
+ RocketCompCfg.lbl.Commentsonthe = Comments on the
+ RocketCompCfg.lbl.Figurestyle = Figure style:
+ RocketCompCfg.lbl.Componentcolor = Component color:
+ RocketCompCfg.lbl.Choosecolor = Choose color
+ RocketCompCfg.checkbox.Usedefaultcolor = Use default color
+ RocketCompCfg.lbl.Complinestyle = Component line style:
+ RocketCompCfg.but.Saveasdefstyle = Save as default style
+ RocketCompCfg.lbl.Diameter = Diameter:
+ RocketCompCfg.lbl.Length = Length:
+ RocketCompCfg.lbl.Thickness = Thickness:
+ RocketCompCfg.checkbox.Endcapped = End capped
+ RocketCompCfg.ttip.Endcapped = Whether the end of the shoulder is capped.
+ RocketCompCfg.title.Noseconeshoulder = Nose cone shoulder
+ RocketCompCfg.title.Aftshoulder = Aft shoulder
+ RocketCompCfg.border.Foreshoulder = Fore shoulder
+ !RocketCompCfg.lbl.Length = Length:
+
+ ! BulkheadConfig
+ BulkheadCfg.tab.Radius = Radius:
+ BulkheadCfg.tab.Thickness = Thickness:
+ BulkheadCfg.tab.General = General
+ BulkheadCfg.tab.Generalproperties = General properties
+
+ !CenteringRingConfig
+ CenteringRingCfg.tab.Outerdiam = Outer diameter:
+ CenteringRingCfg.tab.Innerdiam = Inner diameter:
+ CenteringRingCfg.tab.Thickness = Thickness:
+ CenteringRingCfg.tab.General = General
+ CenteringRingCfg.tab.Generalproperties = General properties
+
+ !ComponentConfigDialog
+ ComponentCfgDlg.configuration = configuration
+ ComponentCfgDlg.Modify = Modify
+
+ !EllipticalFinSetConfig
+ EllipticalFinSetCfg.Nbroffins = Number of fins:
+ EllipticalFinSetCfg.Rotation = Rotation:
+ EllipticalFinSetCfg.Fincant = Fin cant:
+ EllipticalFinSetCfg.Rootchord = Root chord:
+ EllipticalFinSetCfg.Height = Height:
+ EllipticalFinSetCfg.Positionrelativeto = Position relative to:
+ EllipticalFinSetCfg.plus = plus
+ EllipticalFinSetCfg.FincrossSection = Fin cross section:
+ EllipticalFinSetCfg.Thickness = Thickness:
+ EllipticalFinSetCfg.General = General
+ EllipticalFinSetCfg.Generalproperties = General properties
+ EllipticalFinSetCfg.ttip.Fincant = The angle that the fins are canted with respect to the rocket body.
+
+ !FreeformFinSetConfig
+ FreeformFinSetCfg.tab.General = General
+ FreeformFinSetCfg.tab.ttip.General = General properties
+ FreeformFinSetCfg.tab.Shape = Shape
+ FreeformFinSetCfg.tab.ttip.Finshape = Fin shape
+ FreeformFinSetCfg.lbl.Numberoffins = Number of fins:
+ FreeformFinSetCfg.lbl.Finrotation = Fin rotation:
+ FreeformFinSetCfg.lbl.Fincant = Fin cant:
+ FreeformFinSetCfg.lbl.ttip.Fincant = The angle that the fins are canted with respect to the rocket body.
+ FreeformFinSetCfg.lbl.Posrelativeto = Position relative to:
+ FreeformFinSetCfg.lbl.plus = plus
+ FreeformFinSetCfg.lbl.FincrossSection = Fin cross section:
+ FreeformFinSetCfg.lbl.Thickness = Thickness:
+
+ !InnerTubeConfig
+ InnerTubeCfg.tab.Motor = Motor
+ InnerTubeCfg.tab.ttip.Motor = Motor mount configuration
+ InnerTubeCfg.tab.Cluster = Cluster
+ InnerTubeCfg.tab.ttip.Cluster = Cluster configuration
+ InnerTubeCfg.tab.Radialpos = Radial position
+ InnerTubeCfg.tab.ttip.Radialpos = Radial position
+ InnerTubeCfg.lbl.Selectclustercfg = Select cluster configuration:
+ InnerTubeCfg.lbl.TubeSep = Tube separation:
+ InnerTubeCfg.lbl.ttip.TubeSep = The separation of the tubes, 1.0 = touching each other
+ InnerTubeCfg.lbl.Rotation = Rotation:
+ InnerTubeCfg.lbl.ttip.Rotation = Rotation angle of the cluster configuration
+ InnerTubeCfg.lbl.Rotangle = Rotation angle of the cluster configuration
+ InnerTubeCfg.but.Splitcluster = Split cluster
+ InnerTubeCfg.lbl.longA1 = <html>Split the cluster into separate components.<br>
+ InnerTubeCfg.lbl.longA2 = This also duplicates all components attached to this inner tube.
+ InnerTubeCfg.but.Resetsettings = Reset settings
+ InnerTubeCfg.but.ttip.Resetsettings = Reset the separation and rotation to the default values
+
+ ! LaunchLugConfig
+ LaunchLugCfg.lbl.Length = Length:
+ LaunchLugCfg.lbl.Outerdiam = Outer diameter:
+ LaunchLugCfg.lbl.Innerdiam = Inner diameter:
+ LaunchLugCfg.lbl.Thickness = Thickness:
+ LaunchLugCfg.lbl.Radialpos = Radial position:
+ LaunchLugCfg.lbl.Posrelativeto = Position relative to:
+ LaunchLugCfg.lbl.plus = plus
+ LaunchLugCfg.tab.General = General
+ LaunchLugCfg.tab.Generalprop = General properties
+
+ ! MassComponentConfig
+ MassComponentCfg.lbl.Mass = Mass
+ MassComponentCfg.lbl.Length = Length
+ MassComponentCfg.lbl.Diameter = Diameter
+ MassComponentCfg.lbl.PosRelativeto = Position relative to:
+ MassComponentCfg.lbl.plus = plus
+ MassComponentCfg.tab.General = General
+ MassComponentCfg.tab.ttip.General = General properties
+ MassComponentCfg.tab.Radialpos = Radial position
+ MassComponentCfg.tab.ttip.Radialpos = Radial position configuration
+ MassComponentCfg.lbl.Radialdistance = Radial distance:
+ MassComponentCfg.lbl.Radialdirection = Radial direction:
+ MassComponentCfg.but.Reset = Reset
+
+ ! MotorConfig
+ MotorCfg.checkbox.compmotormount = This component is a motor mount
+ MotorCfg.lbl.Motorcfg = Motor configuration:
+ MotorCfg.but.New = New
+ MotorCfg.lbl.Currentmotor = Current motor:
+ MotorCfg.lbl.Motoroverhang = Motor overhang:
+ MotorCfg.lbl.Ignitionat = Ignition at:
+ MotorCfg.lbl.plus = plus
+ MotorCfg.lbl.seconds = seconds
+ MotorCfg.lbl.longA1 = The current design has only one stage.
+ MotorCfg.lbl.longA2 = Stages can be added by clicking \"New stage\".
+ MotorCfg.lbl.longB1 = The current design has
+ MotorCfg.lbl.longB2 = stages.
+ MotorCfg.but.Selectmotor = Select motor
+ MotorCfg.but.Removemotor = Remove motor
+ MotorCfg.lbl.motorLabel = None
+
+ ! NoseConeConfig
+ NoseConeCfg.lbl.Noseconeshape = Nose cone shape:
+ NoseConeCfg.lbl.Shapeparam = Shape parameter:
+ NoseConeCfg.lbl.Noseconelength = Nose cone length:
+ NoseConeCfg.lbl.Basediam = Base diameter:
+ NoseConeCfg.checkbox.Automatic = Automatic
+ NoseConeCfg.lbl.Wallthickness = Wall thickness:
+ NoseConeCfg.checkbox.Filled = Filled
+ NoseConeCfg.tab.General = General
+ NoseConeCfg.tab.ttip.General = General properties
+ NoseConeCfg.tab.Shoulder = Shoulder
+ NoseConeCfg.tab.ttip.Shoulder = Shoulder properties
+
+ ! ParachuteConfig
+ ParachuteCfg.lbl.Canopy = Canopy:
+ ParachuteCfg.lbl.Diameter = Diameter:
+ ParachuteCfg.lbl.Material = Material:
+ ParachuteCfg.combo.MaterialModel = The component material affects the weight of the component.
+ ParachuteCfg.lbl.longA1 = <html>Drag coefficient C<sub>D</sub>:
+ ParachuteCfg.lbl.longB1 = <html>The drag coefficient relative to the total area of the parachute.<br>
+ ParachuteCfg.lbl.longB2 = A larger drag coefficient yields a slowed descent rate.
+ ParachuteCfg.lbl.longB3 = A typical value for parachutes is 0.8.
+ ParachuteCfg.but.Reset = Reset
+ ParachuteCfg.lbl.Shroudlines = Shroud lines:
+ ParachuteCfg.lbl.Numberoflines = Number of lines:
+ ParachuteCfg.lbl.Linelength = Line length:
+ ParachuteCfg.lbl.Material = Material:
+ ParachuteCfg.lbl.Posrelativeto = Position relative to:
+ ParachuteCfg.lbl.plus = plus
+ ParachuteCfg.lbl.Packedlength = Packed length:
+ ParachuteCfg.lbl.Packeddiam = Packed diameter:
+ ParachuteCfg.lbl.Deploysat = Deploys at:
+ ParachuteCfg.lbl.seconds = seconds
+ ParachuteCfg.lbl.Altitude = Altitude:
+ ParachuteCfg.tab.General = General
+ ParachuteCfg.tab.ttip.General = General properties
+ ParachuteCfg.tab.Radialpos = Radial position
+ ParachuteCfg.tab.ttip.Radialpos = Radial position configuration
+ ParachuteCfg.lbl.Radialdistance = Radial distance:
+ ParachuteCfg.lbl.Radialdirection = Radial direction:
+ ParachuteCfg.but.Reset = Reset
+
+ ! ShockCordConfig
+ ShockCordCfg.lbl.Shockcordlength = Shock cord length
+ ShockCordCfg.lbl.Shockcordmaterial = Shock cord material:
+ ShockCordCfg.lbl.Posrelativeto = Position relative to:
+ ShockCordCfg.lbl.plus = plus
+ ShockCordCfg.lbl.Packedlength = Packed length:
+ ShockCordCfg.lbl.Packeddiam = Packed diameter:
+ ShockCordCfg.tab.General = General
+ ShockCordCfg.tab.ttip.General = General properties
+
+ !SleeveConfig
+ SleeveCfg.tab.Outerdiam = Outer diameter:
+ SleeveCfg.tab.Innerdiam = Inner diameter:
+ SleeveCfg.tab.Wallthickness = Wall thickness:
+ SleeveCfg.tab.Length = Length:
+ SleeveCfg.tab.General = General
+ SleeveCfg.tab.Generalproperties = General properties
+
+ ! StreamerConfig
+ StreamerCfg.lbl.Striplength = Strip length:
+ StreamerCfg.lbl.Stripwidth = Strip width:
+ StreamerCfg.lbl.Striparea = Strip area:
+ StreamerCfg.lbl.Aspectratio = Aspect ratio:
+ StreamerCfg.lbl.Material = Material:
+ StreamerCfg.combo.ttip.MaterialModel = The component material affects the weight of the component.
+ StreamerCfg.lbl.longA1 = <html>Drag coefficient C<sub>D</sub>:
+ StreamerCfg.lbl.longB1 = <html>The drag coefficient relative to the total area of the streamer.<br>
+ StreamerCfg.lbl.longB2 = A larger drag coefficient yields a slowed descent rate.
+ StreamerCfg.lbl.Automatic = Automatic
+ StreamerCfg.lbl.longC1 = The drag coefficient is relative to the area of the streamer.
+ StreamerCfg.lbl.Posrelativeto = Position relative to:
+ StreamerCfg.lbl.plus = plus
+ StreamerCfg.lbl.Packedlength = Packed length:
+ StreamerCfg.lbl.Packeddiam = Packed diameter:
+ StreamerCfg.lbl.Deploysat = Deploys at:
+ StreamerCfg.lbl.seconds = seconds
+ StreamerCfg.lbl.Altitude = Altitude:
+ StreamerCfg.tab.General = General
+ StreamerCfg.tab.ttip.General = General properties
+ StreamerCfg.tab.Radialpos = Radial position
+ StreamerCfg.tab.ttip.Radialpos = Radial position configuration
+ StreamerCfg.lbl.Radialdistance = Radial distance:
+ StreamerCfg.lbl.Radialdirection = Radial direction:
+ StreamerCfg.but.Reset = Reset
+
+ ! ThicknessRingComponentConfig
+ ThicknessRingCompCfg.tab.Outerdiam = Outer diameter:
+ ThicknessRingCompCfg.tab.Innerdiam = Inner diameter:
+ ThicknessRingCompCfg.tab.Wallthickness = Wall thickness:
+ ThicknessRingCompCfg.tab.Length = Length:
+ ThicknessRingCompCfg.tab.General = General
+ ThicknessRingCompCfg.tab.Generalprop = General properties
+
+ ! TransitionConfig
+ TransitionCfg.lbl.Transitionshape = Transition shape:
+ TransitionCfg.checkbox.Clipped = Clipped
+ TransitionCfg.lbl.Shapeparam = Shape parameter:
+ TransitionCfg.lbl.Transitionlength = Transition length:
+ TransitionCfg.lbl.Forediam = Fore diameter:
+ TransitionCfg.checkbox.Automatic = Automatic
+ TransitionCfg.lbl.Aftdiam = Aft diameter:
+ TransitionCfg.lbl.Wallthickness = Wall thickness:
+ TransitionCfg.checkbox.Filled = Filled
+ TransitionCfg.tab.General = General
+ TransitionCfg.tab.Generalproperties = General properties
+ TransitionCfg.tab.Shoulder = Shoulder
+ TransitionCfg.tab.Shoulderproperties = Shoulder properties
+
+ ! TrapezoidFinSetConfig
+ TrapezoidFinSetCfg.lbl.Nbroffins = Number of fins:
+ TrapezoidFinSetCfg.lbl.ttip.Nbroffins = The number of fins in the fin set.
+ TrapezoidFinSetCfg.lbl.Finrotation = Fin rotation:
+ TrapezoidFinSetCfg.lbl.ttip.Finrotation = The angle of the first fin in the fin set.
+ TrapezoidFinSetCfg.lbl.Fincant = Fin cant:
+ TrapezoidFinSetCfg.lbl.ttip.Fincant =The angle that the fins are canted with respect to the rocket body.
+ TrapezoidFinSetCfg.lbl.Rootchord = Root chord:
+ TrapezoidFinSetCfg.lbl.Tipchord = Tip chord:
+ TrapezoidFinSetCfg.lbl.Height = Height:
+ TrapezoidFinSetCfg.lbl.Sweeplength = Sweep length:
+ TrapezoidFinSetCfg.lbl.Sweepangle = Sweep angle:
+ TrapezoidFinSetCfg.lbl.FincrossSection = Fin cross section:
+ TrapezoidFinSetCfg.lbl.Thickness = Thickness:
+ TrapezoidFinSetCfg.lbl.Posrelativeto = Position relative to:
+ TrapezoidFinSetCfg.lbl.plus = plus
+ TrapezoidFinSetCfg.tab.General = General
+ TrapezoidFinSetCfg.tab.Generalproperties = General properties
+
+ !MotorConfigurationModel
+ MotorCfgModel.Editcfg = Edit configurations
+
+ ! StorageOptionChooser
+ StorageOptChooser.lbl.Simdatatostore = Simulated data to store:
+ StorageOptChooser.rdbut.Allsimdata = All simulated data
+ StorageOptChooser.lbl.longA1 = <html>Store all simulated data.<br>
+ StorageOptChooser.lbl.longA2 = This can result in very large files!
+ StorageOptChooser.rdbut.Every = Every
+ StorageOptChooser.lbl.longB1 = <html>Store plottable values approximately this far apart.<br>
+ StorageOptChooser.lbl.longB2 = Larger values result in smaller files.
+ StorageOptChooser.lbl.seconds = seconds
+ StorageOptChooser.rdbut.Onlyprimfig = Only primary figures
+ StorageOptChooser.lbl.longC1 = <html>Store only the values shown in the summary table.<br>
+ StorageOptChooser.lbl.longC2 = This results in the smallest files.
+ StorageOptChooser.checkbox.Compfile = Compress file
+ StorageOptChooser.lbl.UsingComp = Using compression reduces the file size significantly.
+ StorageOptChooser.lbl.longD1 = An estimate on how large the resulting file would be with the present options.
+ StorageOptChooser.ttip.Saveopt = Save options
+ StorageOptChooser.lbl.Estfilesize = Estimated file size:
+ StorageOptChooser.lbl.Saveopt = Save options
+
+ ! ThrustCurveMotorSelectionPanel
+ TCMotorSelPan.lbl.Selrocketmotor = Select rocket motor:
+ TCMotorSelPan.checkbox.hideSimilar = Hide very similar thrust curves
+ TCMotorSelPan.SHOW_DESCRIPTIONS.desc1 = Show all motors
+ TCMotorSelPan.SHOW_DESCRIPTIONS.desc2 = Show motors with diameter less than that of the motor mount
+ TCMotorSelPan.SHOW_DESCRIPTIONS.desc3 = Show motors with diameter equal to that of the motor mount
+ TCMotorSelPan.lbl.Motormountdia = Motor mount diameter:
+ TCMotorSelPan.lbl.Search = Search:
+ TCMotorSelPan.lbl.Selectthrustcurve = Select thrust curve:
+ TCMotorSelPan.lbl.Ejectionchargedelay = Ejection charge delay:
+ TCMotorSelPan.equalsIgnoreCase.None = None
+ TCMotorSelPan.lbl.NumberofsecondsorNone = (Number of seconds or \"None\")
+ TCMotorSelPan.lbl.Totalimpulse = Total impulse:
+ TCMotorSelPan.lbl.Avgthrust = Avg. thrust:
+ TCMotorSelPan.lbl.Maxthrust = Max. thrust:
+ TCMotorSelPan.lbl.Burntime = Burn time:
+ TCMotorSelPan.lbl.Launchmass = Launch mass:
+ TCMotorSelPan.lbl.Emptymass = Empty mass:
+ TCMotorSelPan.lbl.Datapoints = Data points:
+ TCMotorSelPan.lbl.Digest = Digest:
+ TCMotorSelPan.title.Thrustcurve = Thrust curve:
+ TCMotorSelPan.title.Thrust = Thrust
+ TCMotorSelPan.delayBox.None = None
+
+
+ ! PlotDialog
+ PlotDialog.title.Flightdataplot = Flight data plot
+ PlotDialog.Chart.Simulatedflight = Simulated flight
+ PlotDialog.CheckBox.Showdatapoints = Show data points
+ PlotDialog.lbl.Chart = Click+drag down+right to zoom in, up+left to zoom out
+
! "main" prefix is used for the main application dialog
main.menu.file.openExample = Open example...
main.menu.file.save = Save
main.menu.file.saveAs = Save as...
-main.menu.file.print = Print...
++main.menu.file.print = Print / Export PDF...
main.menu.file.close = Close
main.menu.file.quit = Quit
main.menu.help.license = License
main.menu.help.bugReport = Bug report
main.menu.help.debugLog = Debug log
- main.menu.help. = About
+ main.menu.help.about = About
+
+ main.menu.debug = Debug
+ main.menu.debug.whatisthismenu = What is this menu?
+ main.menu.debug.createtestrocket = Create test rocket
+
+ ! database
+ ! Translate here all material database
+ !
+
+ ! Material database
+ ! BULK_MATERIAL
+ Databases.materials.Acrylic = Acrylic
+ Databases.materials.Balsa = Balsa
+ Databases.materials.Birch = Birch
+ Databases.materials.Cardboard = Cardboard
+ Databases.materials.Carbonfiber = Carbon fiber
+ Databases.materials.Cork = Cork
+ Databases.materials.DepronXPS = Depron (XPS)
+ Databases.materials.Fiberglass = Fiberglass
+ Databases.materials.Kraftphenolic = Kraft phenolic
+ Databases.materials.Maple = Maple
+ Databases.materials.Paperoffice = Paper (office)
+ Databases.materials.Pine = Pine
+ Databases.materials.Plywoodbirch = Plywood (birch)
+ Databases.materials.PolycarbonateLexan = Polycarbonate (Lexan)
+ Databases.materials.Polystyrene = Polystyrene
+ Databases.materials.PVC = PVC
+ Databases.materials.Spruce = Spruce
+ Databases.materials.StyrofoamgenericEPS = Styrofoam (generic EPS)
+ Databases.materials.StyrofoamBluefoamXPS = Styrofoam \"Blue foam\" (XPS)
+ Databases.materials.Quantumtubing = Quantum tubing
+ !SURFACE_MATERIAL
+ Databases.materials.Ripstopnylon = Ripstop nylon
+ Databases.materials.Mylar = Mylar
+ Databases.materials.Polyethylenethin = Polyethylene (thin)
+ Databases.materials.Polyethyleneheavy = Polyethylene (heavy)
+ Databases.materials.Silk = Silk
+ Databases.materials.Paperoffice = Paper (office)
+ Databases.materials.Cellophane = Cellophane
-Databases.materials.Creape paper = Cr\u00eape paper
++Databases.materials.Crepepaper = Cr\u00eape paper
+ ! LINE_MATERIAL
+ Databases.materials.Threadheavy-duty = Thread (heavy-duty)
+ Databases.materials.Elasticcordround2mm = Elastic cord (round 2mm, 1/16 in)
+ Databases.materials.Elasticcordflat6mm = Elastic cord (flat 6mm, 1/4 in)
+ Databases.materials.Elasticcordflat12mm = Elastic cord (flat 12mm, 1/2 in)
+ Databases.materials.Elasticcordflat19mm = Elastic cord (flat 19mm, 3/4 in)
+ Databases.materials.Elasticcordflat25mm = Elastic cord (flat 25mm, 1 in)
+ Databases.materials.Braidednylon2mm = Braided nylon (2 mm, 1/16 in)
+ Databases.materials.Braidednylon3mm = Braided nylon (3 mm, 1/8 in)
+ Databases.materials.Tubularnylon11mm = Tubular nylon (11 mm, 7/16 in)
+ Databases.materials.Tubularnylon14mm = Tubular nylon (14 mm, 9/16 in)
+ Databases.materials.Tubularnylon25mm = Tubular nylon (25 mm, 1 in)
+
+ ! ExternalComponent
+ ExternalComponent.Rough = Rough
+ ExternalComponent.Unfinished = Unfinished
+ ExternalComponent.Regularpaint = Regular paint
+ ExternalComponent.Smoothpaint = Smooth paint
+ ExternalComponent.Polished = Polished
+
+ ! LineStyle
+ LineStyle.Solid = Solid
+ LineStyle.Dashed = Dashed
+ LineStyle.Dotted = Dotted
+ LineStyle.Dash-dotted = Dash-dotted
+ LineStyle.Defaultstyle = Default style
+
+ ! Shape
+ Shape.Conical = Conical
+ Shape.Conical.desc1 = A conical nose cone has a profile of a triangle.
+ Shape.Conical.desc2 = A conical transition has straight sides.
+ Shape.Ogive = Ogive
+ Shape.Ogive.desc1 = An ogive nose cone has a profile that is a segment of a circle. The shape parameter value 1 produces a <b>tangent ogive</b>, which has a smooth transition to the body tube, values less than 1 produce <b>secant ogives</b>.
+ Shape.Ogive.desc2 = An ogive transition has a profile that is a segment of a circle. The shape parameter value 1 produces a <b>tangent ogive</b>, which has a smooth transition to the body tube at the aft end, values less than 1 produce <b>secant ogives</b>.
+ Shape.Ellipsoid = Ellipsoid
+ Shape.Ellipsoid.desc1 = An ellipsoidal nose cone has a profile of a half-ellipse with major axes of lengths 2×<i>Length</i> and <i>Diameter</i>.
+ Shape.Ellipsoid.desc2 = An ellipsoidal transition has a profile of a half-ellipse with major axes of lengths 2×<i>Length</i> and <i>Diameter</i>. If the transition is not clipped, then the profile is extended at the center by the corresponding radius.
+ Shape.Powerseries = Power series
-Shape.Powerseries.descA1 = A power series nose cone has a profile of <i>Radius</i> × (<i>x</i> / <i>Length</i>)<sup><i>k</i></sup> where <i>k</i> is the shape parameter. For <i>k</i>=0.5 this is a <b>
-Shape.Powerseries.descA2 = -power</b> or <b>parabolic</b> nose cone, for <i>k</i>=0.75 a <b>
-Shape.Powerseries.descA3 = -power</b>, and for <i>k</i>=1 a <b>conical</b> nose cone.
-Shape.Powerseries.descB1 = A power series transition has a profile of <i>Radius</i> × (<i>x</i> / <i>Length</i>)<sup><i>k</i></sup> where <i>k</i> is the shape parameter. For <i>k</i>=0.5 the transition is <b>
-Shape.Powerseries.descB2 = -power</b> or <b>parabolic</b>, for <i>k</i>=0.75 a <b>
-Shape.Powerseries.descB3 = -power</b>, and for <i>k</i>=1 <b>conical</b>.
++Shape.Powerseries.desc1 = A power series nose cone has a profile of <i>Radius</i> × (<i>x</i> / <i>Length</i>)<sup><i>k</i></sup> where <i>k</i> is the shape parameter. For <i>k</i>=0.5 this is a <b>\u00BD-power</b> or <b>parabolic</b> nose cone, for <i>k</i>=0.75 a <b>\u00BE-power</b>, and for <i>k</i>=1 a <b>conical</b> nose cone.
++Shape.Powerseries.desc2 = A power series transition has a profile of <i>Radius</i> × (<i>x</i> / <i>Length</i>)<sup><i>k</i></sup> where <i>k</i> is the shape parameter. For <i>k</i>=0.5 the transition is <b>\u00BD-power</b> or <b>parabolic</b>, for <i>k</i>=0.75 a <b>\u00BE-power</b>, and for <i>k</i>=1 <b>conical</b>.
+ Shape.Parabolicseries = Parabolic series
+ Shape.Parabolicseries.desc1 = A parabolic series nose cone has a profile of a parabola. The shape parameter defines the segment of the parabola to utilize. The shape parameter 1.0 produces a <b>full parabola</b> which is tangent to the body tube, 0.75 produces a <b>3/4 parabola</b>, 0.5 procudes a <b>1/2 parabola</b> and 0 produces a <b>conical</b> nose cone.
+ Shape.Parabolicseries.desc2 = A parabolic series transition has a profile of a parabola. The shape parameter defines the segment of the parabola to utilize. The shape parameter 1.0 produces a <b>full parabola</b> which is tangent to the body tube at the aft end, 0.75 produces a <b>3/4 parabola</b>, 0.5 procudes a <b>1/2 parabola</b> and 0 produces a <b>conical</b> transition.
+ Shape.Haackseries = Haack series
+ Shape.Haackseries.desc1 = The Haack series nose cones are designed to minimize drag. The shape parameter 0 produces an <b>LD-Haack</b> or <b>Von Karman</b> nose cone, which minimizes drag for fixed length and diameter, while a value of 0.333 produces an <b>LV-Haack</b> nose cone, which minimizes drag for fixed length and volume.
+ Shape.Haackseries.desc2 = The Haack series <i>nose cones</i> are designed to minimize drag. These transition shapes are their equivalents, but do not necessarily produce optimal drag for transitions. The shape parameter 0 produces an <b>LD-Haack</b> or <b>Von Karman</b> shape, while a value of 0.333 produces an <b>LV-Haack</b> shape.
+
+
+ ! RocketComponent
+ RocketComponent.Position.TOP = Top of the parent component
+ RocketComponent.Position.MIDDLE = Middle of the parent component
+ RocketComponent.Position.BOTTOM = Bottom of the parent component
+ RocketComponent.Position.AFTER = After the parent component
+ RocketComponent.Position.ABSOLUTE = Tip of the nose cone
+
+ ! LaunchLug
+ LaunchLug.Launchlug = Launch lug
+ ! NoseCone
+ NoseCone.NoseCone = Nose cone
+ ! Transition
+ Transition.Transition = Transition
+ !Stage
+ Stage.Stage = Stage
+ ! BodyTube
+ BodyTube.BodyTube = Body tube
+ ! TubeCoupler
+ TubeCoupler.TubeCoupler = Tube coupler
+ !InnerTube
+ InnerTube.InnerTube = Inner Tube
+ ! TrapezoidFinSet
+ TrapezoidFinSet.TrapezoidFinSet = Trapezoidal fin set
+ ! FreeformFinSet
+ FreeformFinSet.FreeformFinSet = Freeform fin set
+ !MassComponent
+ MassComponent.MassComponent = Mass component
+ ! Parachute
+ Parachute.Parachute = Parachute
+ ! ShockCord
+ ShockCord.ShockCord = Shock cord
+ ! Bulkhead
+ Bulkhead.Bulkhead = Bulkhead
+
+ !Rocket
+ Rocket.motorCount.Nomotor = [No motors]
+ Rocket.compname.Rocket = Rocket
+
+ !MotorMount
+ MotorMount.IgnitionEvent.AUTOMATIC = Automatic (launch or ejection charge)
+ MotorMount.IgnitionEvent.LAUNCH = Launch
+ MotorMount.IgnitionEvent.EJECTION_CHARGE = First ejection charge of previous stage
+ MotorMount.IgnitionEvent.BURNOUT = First burnout of previous stage
+ MotorMount.IgnitionEvent.NEVER = Never
+
+ !ComponentIcons
+ ComponentIcons.Nosecone = Nose cone
+ ComponentIcons.Bodytube = Body tube
+ ComponentIcons.Transition = Transition
+ ComponentIcons.Trapezoidalfinset = Trapezoidal fin set
+ ComponentIcons.Ellipticalfinset = Elliptical fin set
+ ComponentIcons.Freeformfinset = Freeform fin set
+ ComponentIcons.Launchlug = Launch lug
+ ComponentIcons.Innertube = Inner tube
+ ComponentIcons.Tubecoupler = Tube coupler
+ ComponentIcons.Centeringring = Centering ring
+ ComponentIcons.Bulkhead = Bulk head
+ ComponentIcons.Engineblock = Engine block
+ ComponentIcons.Parachute = Parachute
+ ComponentIcons.Streamer = Streamer
+ ComponentIcons.Shockcord = Shock cord
+ ComponentIcons.Masscomponent = Mass component
+ ComponentIcons.disabled = (disabled)
+
+ ! StageAction
+ StageAction.Stage = Stage
+
+ ! RecoveryDevice
+ RecoveryDevice.DeployEvent.LAUNCH = Launch (plus NN seconds)
+ RecoveryDevice.DeployEvent.EJECTION = First ejection charge of this stage
+ RecoveryDevice.DeployEvent.APOGEE = Apogee
+ RecoveryDevice.DeployEvent.ALTITUDE = Specific altitude during descent
+ RecoveryDevice.DeployEvent.NEVER = Never
+
+ ! FlightEvent
+ FlightEvent.Type.LAUNCH = Launch
+ FlightEvent.Type.IGNITION = Motor ignition
+ FlightEvent.Type.LIFTOFF = Lift-off
+ FlightEvent.Type.LAUNCHROD = Launch rod clearance
+ FlightEvent.Type.BURNOUT = Motor burnout
+ FlightEvent.Type.EJECTION_CHARGE = Ejection charge
+ FlightEvent.Type.STAGE_SEPARATION = Stage separation
+ FlightEvent.Type.APOGEE = Apogee
+ FlightEvent.Type.RECOVERY_DEVICE_DEPLOYMENT = Recovery device deployment
+ FlightEvent.Type.GROUND_HIT = Ground hit
+ FlightEvent.Type.SIMULATION_END = Simulation end
+ FlightEvent.Type.ALTITUDE = Altitude change
+
+ ! ThrustCurveMotorColumns
+ TCurveMotorCol.MANUFACTURER = Manufacturer
+ TCurveMotorCol.DESIGNATION = Designation
+ TCurveMotorCol.TYPE = Type
+ TCurveMotorCol.DIAMETER = Diameter
+ TCurveMotorCol.LENGTH = Length
+
+ ! RocketInfo
+ RocketInfo.lengthLine.Length = Length
+ RocketInfo.lengthLine.maxdiameter = , max. diameter
+ RocketInfo.massText1 = Mass with motors
+ RocketInfo.massText2 = Mass with no motors
+ RocketInfo.at = at M=
+ RocketInfo.cgText = CG:
+ RocketInfo.cpText = CP:
+ RocketInfo.stabText = Stability:
+ RocketInfo.Warning = Warning:
+ RocketInfo.Calculating = Calculating...
+ RocketInfo.Apogee = Apogee:
+ RocketInfo.Maxvelocity = Max. velocity:
+ RocketInfo.Maxacceleration = Max. acceleration:
+ RocketInfo.apogeeValue = N/A
+ RocketInfo.Mach = (Mach
+ RocketInfo.velocityValue = N/A
+ RocketInfo.accelerationValue = N/A
+
+ ! FinSet
+ FinSet.CrossSection.SQUARE = Square
+ FinSet.CrossSection.ROUNDED = Rounded
+ FinSet.CrossSection.AIRFOIL = Airfoil
+ FinSet.TabRelativePosition.FRONT = Root chord leading edge
+ FinSet.TabRelativePosition.CENTER = Root chord midpoint
+ FinSet.TabRelativePosition.END = Root chord trailing edge
+ ! FlightDataType
+ FlightDataType.TYPE_TIME = Time
+ FlightDataType.TYPE_ALTITUDE = Altitude
+ FlightDataType.TYPE_VELOCITY_Z = Vertical velocity
+ FlightDataType.TYPE_ACCELERATION_Z = Vertical acceleration
+ FlightDataType.TYPE_VELOCITY_TOTAL = Total velocity
+ FlightDataType.TYPE_ACCELERATION_TOTAL = Total acceleration
+ FlightDataType.TYPE_POSITION_X = Position upwind
+ FlightDataType.TYPE_POSITION_Y = Position parallel to wind
+ FlightDataType.TYPE_POSITION_XY = Lateral distance
+ FlightDataType.TYPE_POSITION_DIRECTION = Lateral direction
+ FlightDataType.TYPE_VELOCITY_XY = Lateral velocity
+ FlightDataType.TYPE_ACCELERATION_XY = Lateral acceleration
+ FlightDataType.TYPE_AOA = Angle of attack
+ FlightDataType.TYPE_ROLL_RATE = Roll rate
+ FlightDataType.TYPE_PITCH_RATE = Pitch rate
+ FlightDataType.TYPE_YAW_RATE = Yaw rate
+ FlightDataType.TYPE_MASS = Mass
+ FlightDataType.TYPE_LONGITUDINAL_INERTIA = Longitudinal moment of inertia
+ FlightDataType.TYPE_ROTATIONAL_INERTIA = Rotational moment of inertia
+ FlightDataType.TYPE_CP_LOCATION = CP location
+ FlightDataType.TYPE_CG_LOCATION = CG location
+ FlightDataType.TYPE_STABILITY = Stability margin calibers
+ FlightDataType.TYPE_MACH_NUMBER = Mach number
+ FlightDataType.TYPE_REYNOLDS_NUMBER = Reynolds number
+ FlightDataType.TYPE_THRUST_FORCE = Thrust
+ FlightDataType.TYPE_DRAG_FORCE = Drag force
+ FlightDataType.TYPE_DRAG_COEFF = Drag coefficient
+ FlightDataType.TYPE_AXIAL_DRAG_COEFF = Axial drag coefficient
+ FlightDataType.TYPE_FRICTION_DRAG_COEFF = Friction drag coefficient
+ FlightDataType.TYPE_PRESSURE_DRAG_COEFF = Pressure drag coefficient
+ FlightDataType.TYPE_BASE_DRAG_COEFF = Base drag coefficient
+ FlightDataType.TYPE_NORMAL_FORCE_COEFF = Normal force coefficient
+ FlightDataType.TYPE_PITCH_MOMENT_COEFF = Pitch moment coefficient
+ FlightDataType.TYPE_YAW_MOMENT_COEFF = Yaw moment coefficient
+ FlightDataType.TYPE_SIDE_FORCE_COEFF = Side force coefficient
+ FlightDataType.TYPE_ROLL_MOMENT_COEFF = Roll moment coefficient
+ FlightDataType.TYPE_ROLL_FORCING_COEFF = Roll forcing coefficient
+ FlightDataType.TYPE_ROLL_DAMPING_COEFF = Roll damping coefficient
+ FlightDataType.TYPE_PITCH_DAMPING_MOMENT_COEFF = Pitch damping coefficient
+ FlightDataType.TYPE_YAW_DAMPING_MOMENT_COEFF = Yaw damping coefficient
+ FlightDataType.TYPE_REFERENCE_LENGTH = Reference lenght
+ FlightDataType.TYPE_REFERENCE_AREA = Reference area
+ FlightDataType.TYPE_ORIENTATION_THETA = Vertical orientation (zenith)
+ FlightDataType.TYPE_ORIENTATION_PHI = Lateral orientation (azimuth)
+ FlightDataType.TYPE_WIND_VELOCITY = Wind velocity
+ FlightDataType.TYPE_AIR_TEMPERATURE = Air temperature
+ FlightDataType.TYPE_AIR_PRESSURE = Air pressure
+ FlightDataType.TYPE_SPEED_OF_SOUND = Speed of sound
+ FlightDataType.TYPE_TIME_STEP = Simulation time step
+ FlightDataType.TYPE_COMPUTATION_TIME = Computation time
+ ! PlotConfiguration
+ PlotConfiguration.Verticalmotion = Vertical motion vs. time
+ PlotConfiguration.Totalmotion = Total motion vs. time
+ PlotConfiguration.Flightside = Flight side profile
+ PlotConfiguration.Stability = Stability vs. time
+ PlotConfiguration.Dragcoef = Drag coefficients vs. Mach number
+ PlotConfiguration.Rollcharacteristics = Roll characteristics
+ PlotConfiguration.Angleofattack = Angle of attack and orientation vs. time
+ PlotConfiguration.Simulationtime = Simulation time step and computation time
+ ! Warning
+ Warning.LargeAOA.str1 = Large angle of attack encountered.
+ Warning.LargeAOA.str2 = Large angle of attack encountered (
+ Warning.DISCONTINUITY = Discontinuity in rocket body diameter.
+ Warning.THICK_FIN = Thick fins may not be modeled accurately.
+ Warning.JAGGED_EDGED_FIN = Jagged-edged fin predictions may be inaccurate.
+ Warning.LISTENERS_AFFECTED = Listeners modified the flight simulation
+ Warning.RECOVERY_DEPLOYMENT_WHILE_BURNING = Recovery device opened while motor still burning.
+ Warning.FILE_INVALID_PARAMETER = Invalid parameter encountered, ignoring.
--- /dev/null
-Databases.materials.Creape paper = Krepppapier\r
+ ! Set to the name of the current translation file (used for debugging purposes)\r
+ debug.currentFile = messages_de.properties\r
+ \r
+ ! RocketActions\r
+ RocketActions.checkbox.Donotaskmeagain = Nicht wieder fragen\r
+ RocketActions.lbl.Youcanchangedefop = Die Standardaktion kann in den Einstellungen geändert werden.\r
+ RocketActions.showConfirmDialog.lbl1 = Simulationen löschen?\r
+ RocketActions.showConfirmDialog.lbl2 = <html><i>Diese Aktion kann nicht rückgängig gemacht werden.</i>\r
+ RocketActions.showConfirmDialog.title = Simulationen löschen\r
+ RocketActions.DelCompAct.Delete = Löschen\r
+ RocketActions.DelCompAct.ttip.Delete = Die ausgewählte Komponente löschen.\r
+ RocketActions.DelSimuAct.Delete = Löschen\r
+ RocketActions.DelSimuAct.ttip.Delete = Die ausgewählte Simulation löschen.\r
+ RocketActions.DelAct.Delete = Löschen\r
+ RocketActions.DelAct.ttip.Delete = Die ausgewählte Komponente oder Simulation löschen.\r
+ RocketActions.CutAction.Cut = Ausschneiden\r
+ RocketActions.CutAction.ttip.Cut = Diese Komponente oder Simulation ausschneiden und aus dem Design entfernen\r
+ RocketActions.CopyAct.Copy = Kopieren\r
+ RocketActions.CopyAct.ttip.Copy = Komponente (und Subkomponenten) in die Zwischenablage kopieren.\r
+ RocketActions.PasteAct.Paste = Einfügen\r
+ RocketActions.PasteAct.ttip.Paste = Fügt die Komponente oder Simulation aus der Zwischenablage in das Design ein.\r
+ RocketActions.EditAct.Edit = Bearbeiten\r
+ RocketActions.EditAct.ttip.Edit = Die ausgewählte Komponente bearbeiten.\r
+ RocketActions.NewStageAct.Newstage = Neue Stufe\r
+ RocketActions.NewStageAct.ttip.Newstage = Fügt eine neue Stufe in das Raketendesign ein.\r
+ RocketActions.ActBoosterstage = Booster-Stufe\r
+ RocketActions.MoveUpAct.Moveup = Nach oben verschieben\r
+ RocketActions.MoveUpAct.ttip.Moveup = Verschiebt diese Komponente nach oben.\r
+ RocketActions.MoveDownAct.Movedown = Nach unten verschieben\r
+ RocketActions.MoveDownAct.ttip.Movedown = Verschiebt diese Komponente nach unten.\r
+ \r
+ ! RocketPanel\r
+ RocketPanel.FigTypeAct.Sideview = Seitenansicht\r
+ RocketPanel.FigTypeAct.ttip.Sideview = Seitenansicht\r
+ RocketPanel.FigTypeAct.Backview = Rückansicht\r
+ RocketPanel.FigTypeAct.ttip.Backview = Vorderansicht\r
+ RocketPanel.lbl.Motorcfg = Motorkonfiguration\r
+ RocketPanel.lbl.infoMessage = <html>Zum Auswählen klicken Shift+Klick andere auswählen Doppelklick zum Bearbeiten Klicken+Ziehen zum Verschieben\r
+ \r
+ \r
+ ! BasicFrame\r
+ BasicFrame.SimpleFileFilter1 = Alle Raketendesigns (*.ork; *.rkt)\r
+ BasicFrame.SimpleFileFilter2 = OpenRocket Designs (*.ork)\r
+ BasicFrame.SimpleFileFilter3 = RockSim Designs (*.rkt)\r
+ BasicFrame.tab.Rocketdesign = Raketendesign\r
+ BasicFrame.tab.Flightsim = Flugsimulation\r
+ BasicFrame.title.Addnewcomp = Neue Komponente hinzufügen\r
+ BasicFrame.item.Openrocketdesign = Raketendesign öffnen\r
+ BasicFrame.item.Openexamplerocketdesign = Beispieldesign öffnen\r
+ BasicFrame.item.SavecurRocketdesign = Aktuelles Raketendesign speichern\r
+ BasicFrame.item.SavecurRocketdesnewfile = Aktuelles Raketendesign in eine neue Datei speichern\r
+ BasicFrame.item.Printpart = Komponentenliste und Leitwerkschablone drucken\r
+ BasicFrame.item.Closedesign = Aktuelles Raketendesign schließen\r
+ BasicFrame.item.Quitprogram = Programm beenden\r
+ BasicFrame.menu.Rocketedt = Rakete bearbeiten\r
+ BasicFrame.dlg.lbl1 = Design '\r
+ BasicFrame.dlg.lbl2 = ist nicht gespeichert.\r
+ BasicFrame.dlg.lbl3 = Möchten Sie es speichern?\r
+ BasicFrame.dlg.title = Design nicht gespeichert\r
+ BasicFrame.StageName.Sustainer = Sustainer\r
+ BasicFrame.WarningDialog.txt1 = Die folgenden Probleme würden beim Öffnen festgestellt\r
+ BasicFrame.WarningDialog.txt2 = Einige Designeigenschaften wurde eventuell nicht korrekt geladen.\r
+ BasicFrame.WarningDialog.title = Warnungen während des Öffnens der Datei\r
+ \r
+ ! Labels used in buttons of dialog windows\r
+ button.ok = OK\r
+ button.cancel = Abbrechen\r
+ button.close = Schließen\r
+ \r
+ ! Common labels used in buttons of dialog windows\r
+ dlg.but.ok = OK\r
+ dlg.but.cancel = Abbrechen\r
+ dlg.but.close = Schließen\r
+ \r
+ ! About Dialog\r
+ about.dlg.but.close = Schließen\r
+ about.dlg.lbl.translation = Ins Deutsche übersetzt von Stefan Lobas (ERIG e.V.)\r
+ about.dlg.lbl.transwebsite = http://www.er-ig.de/\r
+ \r
+ ! Bug Report dialog\r
+ bugreport.dlg.title = Fehlerbericht\r
+ bugreport.dlg.but.Sendbugreport = Fehlerbericht senden\r
+ bugreport.dlg.but.Sendbugreport.Ttip = Automatische einen Fehlerbericht an die OpenRocket-Entwickler senden.\r
+ bugreport.dlg.successmsg1 = Fehlerbericht erfolgreich gesendet.\r
+ bugreport.dlg.successmsg2 = Danke für die Hilfe, OpenRocket noch besser zu machen!\r
+ bugreport.dlg.successmsg3 = Fehlerbericht gesendet\r
+ bugreport.dlg.connectedInternet = <html>Wenn Sie mit dem Internet verbunden sind, können Sie einfach auf <em>Fehlerbericht senden</em> klicken.\r
+ bugreport.dlg.otherwise = Sonst senden Sie den den folgenden Text an diese Adresse:\r
+ bugreport.lbl.Theinformation = Die oben stehenden Informationen können in einem öffentlichen Fehlerbericht erscheinen. Bitte stellen Sie sicher, dass der Bericht keine sensiblen Informationen enthält, die nicht veröffentlicht werden sollen!\r
+ bugreport.dlg.failedmsg1 = OpenRocket konnte den Fehlerbericht nicht versenden:\r
+ bugreport.dlg.failedmsg2 = Bitte senden Sie den Bericht manuell an\r
+ bugreport.dlg.failedmsg3 = Fehler beim Versenden des Berichts\r
+ bugreport.reportDialog.txt = <html><b>Sie können eine Fehler in OpenRocket mitteilen, indem Sie das unten stehende Formular ausfüllen und abschicken.</b><br>Sie können Fehler mit angehängten Dateien auch auf der Projekt-Website mitteilen.\r
+ bugreport.reportDialog.txt2 = Bitte beschreiben Sie kurz, was Sie getan haben, als der Fehler auftrat.</b>\r
+ \r
+ \r
+ ! Debug log dialog\r
+ debuglogdlg.but.clear = Löschen\r
+ debuglogdlg.OpenRocketdebuglog = OpenRocket Fehler-Log\r
+ debuglogdlg.Displayloglines = Zeige Log-Zeilen:\r
+ debuglogdlg.Follow = Folgen\r
+ debuglogdlg.col.Time = Zeit\r
+ debuglogdlg.col.Level = Level\r
+ debuglogdlg.col.Location = Ort\r
+ debuglogdlg.col.Message = Nachricht\r
+ debuglogdlg.lbl.Loglinenbr = Log-Zeilennummer\r
+ debuglogdlg.lbl.Time = Zeit:\r
+ debuglogdlg.lbl.Level = Level:\r
+ \r
+ \r
+ ! Edit Motor configuration dialog\r
+ edtmotorconfdlg.but.removemotor = Motor entfernen\r
+ edtmotorconfdlg.but.Selectmotor = Motor auswählen\r
+ edtmotorconfdlg.but.Removeconfiguration = Konfiguration entfernen\r
+ edtmotorconfdlg.but.Newconfiguration = Neue Konfiguration\r
+ edtmotorconfdlg.lbl.Motormounts = <html><b>Motorhalterungen:</b>\r
+ edtmotorconfdlg.title.Editmotorconf = Motorkonfiguration bearbeiten\r
+ edtmotorconfdlg.selectcomp = <html>Auswählen, welche Komponenten Motorhalterungen sind:\r
+ edtmotorconfdlg.lbl.Motorconfig = <html><b>Motorkonfigurationen:</b>\r
+ edtmotorconfdlg.lbl.Configname = Name der Konfiguration:\r
+ edtmotorconfdlg.lbl.Leavenamedefault = Leer lassen für Standardwert.\r
+ \r
+ ! Example design dialog\r
+ exdesigndlg.but.open = Öffnen\r
+ exdesigndlg.lbl.Selectexample = Beispieldesigns zum Öffnen auswählen:\r
+ exdesigndlg.lbl.Openexampledesign = Beispieldesign öffnen\r
+ exdesigndlg.lbl.Exampledesignsnotfound = Beispieldesigns konnten nicht gefunden werden.\r
+ exdesigndlg.lbl.Examplesnotfound = Beispieldesign konnten nicht gefunden werden\r
+ \r
+ ! Print panel dialog\r
+ printdlg.but.saveaspdf = Als PDF speichern\r
+ printdlg.but.preview = Vorschau\r
+ printdlg.but.settings = Einstellungen\r
+ \r
+ ! Material edit panel\r
+ matedtpan.but.new = Neu\r
+ matedtpan.but.edit = Bearbeiten\r
+ matedtpan.but.delete = Löschen\r
+ matedtpan.but.revertall = Alle löschen\r
+ matedtpan.col.Material = Material\r
+ matedtpan.col.Type = Typ\r
+ matedtpan.col.Density = Dichte\r
+ matedtpan.col.but.ttip.New = Neues Material hinzufügen\r
+ matedtpan.title.Addcustmaterial = Benutzerdefiniertes Material hinzufügen\r
+ matedtpan.but.ttip.edit = Bestehendes Material bearbeiten\r
+ matedtpan.title.Editmaterial = Material bearbeiten\r
+ matedtpan.title2.Editmaterial = Die mitgelieferten Materialien können nicht verändert werden.\r
+ matedtpan.but.ttip.delete = Benutzerdefiniertes Material löschen\r
+ matedtpan.but.ttip.revertall = Alle benutzerdefinierten Materialien löschen\r
+ matedtpan.title.Deletealluser-defined = Alle benutzerdefinierten Materialien löschen?\r
+ matedtpan.title.Revertall = Alle löschen?\r
+ matedtpan.lbl.edtmaterials = <html><i>Das Bearbeiten der Materialien beeinflusst keine bereits existierenden Raketendesigns.</i>\r
+ \r
+ !MaterialModel\r
+ MaterialModel.title.Material = Material\r
+ MaterialModel.title.Defcustmat = Benutzerdefiniertes Material definieren\r
+ \r
+ \r
+ ! Preference dialog\r
+ pref.dlg.but.add = Hinzufügen\r
+ pref.dlg.but.reset = Zurücksetzen\r
+ pref.dlg.but.checknow = Jetzt überprüfen\r
+ pref.dlg.but.defaultmetric = Metrisches System\r
+ pref.dlg.but.defaultimperial = Imperialistisches System\r
+ pref.dlg.title.Preferences = Einstellungen\r
+ pref.dlg.tab.Units = Einheiten\r
+ pref.dlg.tab.Defaultunits = Standardeinheiten\r
+ pref.dlg.tab.Materials = Materialien\r
+ pref.dlg.tab.Custommaterials = Benutzerdefinierte Materialien\r
+ pref.dlg.tab.Options = Optionen\r
+ pref.dlg.tab.Miscellaneousoptions = Weiter Optionen\r
+ pref.dlg.lbl.Positiontoinsert = Position, um neue Komponenten einzufügen:\r
+ pref.dlg.lbl.Confirmdeletion = Löschen von Simulationen bestätigen\r
+ pref.dlg.lbl.User-definedthrust = Benutzerdefinierte Schubkurven:\r
+ pref.dlg.Allthrustcurvefiles = Alle Schubkurvendateien (*.eng; *.rrse; *.zzip; Verzeichnisse)\r
+ pref.dlg.RASPfiles = RASP Schubkurven (*.eng)\r
+ pref.dlg.RockSimfiles = RockSim Schubkurven(*.rse)\r
+ pref.dlg.ZIParchives = ZIP-Archiv (*.zip)\r
+ pref.dlg.checkbox.Checkupdates = Beim Starten auf neue Version prüfen\r
+ pref.dlg.ttip.Checkupdatesnow = Jetzt auf neue Version prüfen\r
+ pref.dlg.lbl.Selectprefunits = Wählen Sie Ihre bevorzugten Einheiten aus:\r
+ pref.dlg.lbl.Rocketdimensions = Raketendimensionen:\r
+ pref.dlg.lbl.Linedensity = Liniendichte:\r
+ pref.dlg.lbl.Motordimensions = Motordimensionen:\r
+ pref.dlg.lbl.Surfacedensity = Oberflächendichte:\r
+ pref.dlg.lbl.Distance = Entfernung:\r
+ pref.dlg.lbl.Bulkdensity = Bulk density::\r
+ pref.dlg.lbl.Velocity = Geschwindigkeit\r
+ pref.dlg.lbl.Surfaceroughness = Oberflächenrauhheit:\r
+ pref.dlg.lbl.Acceleration = Beschleunigung:\r
+ pref.dlg.lbl.Area = Fläche\r
+ pref.dlg.lbl.Mass = Masse:\r
+ pref.dlg.lbl.Angle = Winkel:\r
+ pref.dlg.lbl.Force = Kraft:\r
+ pref.dlg.lbl.Rollrate = Roll-Rate:\r
+ pref.dlg.lbl.Totalimpulse = Gesamtimpuls:\r
+ pref.dlg.lbl.Temperature = Temperatur:\r
+ pref.dlg.lbl.Momentofinertia = Trägheitsmoment:\r
+ pref.dlg.lbl.Pressure = Druck:\r
+ pref.dlg.lbl.Stability = Stabilität\r
+ pref.dlg.lbl.effect1 = Die Änderungen werden wirksam, wenn Sie das nächste Mal ein Fenster öffnen.\r
+ pref.dlg.lbl.Checkingupdates = Prüfe, ob Aktualisierungen verfügbar sind...\r
+ pref.dlg.lbl.msg1 = Ein Fehler trat bei der Kommunikation mit dem Server auf.\r
+ pref.dlg.lbl.msg2 = Es konnten keine Informationen über Programmaktualisierungen empfangen werden.\r
+ pref.dlg.lbl.msg3 = Sie benutzen die neueste Version von OpenRocket.\r
+ pref.dlg.lbl.msg4 = Keine Aktualisierungen verfügbar.\r
+ pref.dlg.PrefChoiseSelector1 = Immer fragen\r
+ pref.dlg.PrefChoiseSelector2 = in der Mitte einfügen\r
+ a = an das Ende anhängen\r
+ pref.dlg.PrefBooleanSelector1 = Löschen\r
+ pref.dlg.PrefBooleanSelector2 = Bestätigen\r
+ pref.dlg.Add = Hinzufügen\r
+ pref.dlg.DescriptionArea.Adddirectories = Um eigene Schubkurven zu laden, Verzeichnisse, RASP-Motordateien (*.eng), RockSim-Motordateien (*.rse) oder ZIP-Archive mit Semikolon getrennt eingeben. Änderungen werden beim nächsten Neustart von OpenRocket übernommen.\r
+ \r
+ \r
+ ! Simulation edit dialog\r
+ simedtdlg.but.runsimulation = Simulation starten\r
+ simedtdlg.but.resettodefault = Auf Standardeinstellungen zurücksetzen\r
+ simedtdlg.but.add = Hinzufügen\r
+ simedtdlg.but.remove = Entfernen\r
+ simedtdlg.title.Editsim = Simulation bearbeiten\r
+ simedtdlg.lbl.Simname = Name der Simulation:\r
+ simedtdlg.tab.Launchcond = Startbedingungen\r
+ simedtdlg.tab.Simopt = Simulationsoptionen\r
+ simedtdlg.tab.Plotdata = Daten plotten\r
+ simedtdlg.tab.Exportdata = Daten exportieren\r
+ simedtdlg.lbl.Motorcfg = Motorkonfiguration:\r
+ simedtdlg.lbl.ttip.Motorcfg = Motorkonfiguration auswählen\r
+ simedtdlg.combo.ttip.motorconf = Die Motorkonfiguration auswählen.\r
+ simedtdlg.lbl.Wind = Wind\r
+ simedtdlg.lbl.Averwindspeed = Durchschnittliche Windgeschwindigkeit:\r
+ simedtdlg.lbl.ttip.Averwindspeed = Die durchschnittliche Windgeschwindigkeit relativ zum Boden.\r
+ simedtdlg.lbl.Stddeviation = Standardabweichung\r
+ simedtdlg.lbl.ttip.Stddeviation = <html>Die Standardabweichung der Windgeschwindigkeit. <br>Die Windgeschwindigkeit liegt im Durchschnitt zu 95% der Zeit in der doppelten Standardabweichung.\r
+ simedtdlg.lbl.Turbulenceintensity = Intensität der Turbulenz:\r
+ simedtdlg.lbl.ttip.Turbulenceintensity1 = <html>Die Intensität der Turbulenz ist die Standardabweichung geteilt durch durch die durchschnittliche Windgeschwindigkeit.<br>\r
+ simedtdlg.lbl.ttip.Turbulenceintensity2 = Typischer Wertebereich von\r
+ simedtdlg.lbl.ttip.Turbulenceintensity3 = bis\r
+ simedtdlg.border.Atmoscond = Atmosphärische Bedingungen\r
+ simedtdlg.checkbox.InterStdAtmosphere = Internationale Standardatmosphäre benutzen\r
+ simedtdlg.checkbox.ttip.InterStdAtmosphere1 = <html>Auswählen, um das Modell der Internationalen Standardatmosphäre zu verwenden.<br>In diesem Modell gilt eine Temperatur von\r
+ simedtdlg.checkbox.ttip.InterStdAtmosphere2 = und ein Luftdruck von\r
+ simedtdlg.checkbox.ttip.InterStdAtmosphere3 = auf Meeresniveau.\r
+ simedtdlg.lbl.Temperature = Temperatur:\r
+ simedtdlg.lbl.ttip.Temperature = Die Temperatur am Startplatz.\r
+ simedtdlg.lbl.Pressure = Luftdruck:\r
+ simedtdlg.lbl.ttip.Pressure = Der Luftdruck am Startplatz.\r
+ simedtdlg.lbl.Launchsite = Startplatz\r
+ simedtdlg.lbl.Latitude = Breitengrad:\r
+ simedtdlg.lbl.ttip.Latitude = <html>Der Breitengrad des Startplatzes beeinflusst die wirksame Gravitationskraft.<br>Positive Werte liegen auf der Nordhalbkugel, negative Werte auf der Südhalbkugel.\r
+ simedtdlg.lbl.Altitude = Höhe:\r
+ simedtdlg.lbl.ttip.Altitude = <html>Die Höhe des Startplatzes über Meeresniveau.<br>Die Höhe des Startplatzes beeinflusst die Position der Rakete im atmosphärischen Modell.\r
+ simedtdlg.border.Launchrod = Startrampe\r
+ simedtdlg.lbl.Length = Länge:\r
+ simedtdlg.lbl.ttip.Length = Die Länge der Startrampe\r
+ simedtdlg.lbl.Angle = Winkel:\r
+ simedtdlg.lbl.ttip.Angle = Der Winkel der Startrampe aus der Vertikalen.\r
+ simedtdlg.lbl.Direction = Richtung:\r
+ simedtdlg.lbl.ttip.Direction1 = <html>Richtung der Startrampe relativ zur Windrichtung<br>\r
+ simedtdlg.lbl.ttip.Direction2 = = gegen den Wind.\r
+ simedtdlg.lbl.ttip.Direction3 = = mit dem Wind\r
+ simedtdlg.border.Simopt = Simulationsoptionen\r
+ simedtdlg.lbl.Calcmethod = Berechnungsmethode\r
+ simedtdlg.lbl.ttip.Calcmethod = <html>Die erweiterte Methode nach Barrowman berechnet die aerodynamischen Kräfte<br>nach den Gleichungen von Barrowman, die um weitere Faktoren erweitert wurden.\r
+ simedtdlg.lbl.ExtBarrowman = Barrowman (erweitert)\r
+ simedtdlg.lbl.Simmethod = Simulationsmethode:\r
+ simedtdlg.lbl.ttip.Simmethod1 = <html>Der Sechs-Freiheitsgradsimulator erlaubt der Rakete völlige Bewegungsfreiheit während des Fluges.<br>\r
+ simedtdlg.lbl.ttip.Simmethod2 = Das Integrieren wird nach dem numerischen Runge-Kutta-Verfahren 4. Ordnung durchgeführt.\r
+ simedtdlg.lbl.Timestep = Zeitschritt:\r
+ simedtdlg.lbl.ttip.Timestep1 = <html>Die Zeit zwischen den Simulationsschritten.<br>Kleinere Schritte ergeben genauere Ergebnisse, die Simulationen dauern aber länger.<br>\r
+ simedtdlg.lbl.ttip.Timestep2 = Die Berechnung der Simulation mit dem Verfahren 4. Ordnung liefert gute Ergebnisse mit Zeitschritten von\r
+ simedtdlg.but.ttip.resettodefault = Zeitschritte zurücksetzen auf den Standardwert (\r
+ simedtdlg.border.Simlist = Simulationsempfänger\r
+ simedtdlg.txt.longA1 = <html><i>Simulationsempfänger</i> sind ein fortgeschrittenes Feature, dass es benutzerdefinierten Programmen erlaubt, die Simulationsdaten zu empfangen und mit der Simulation zu interagieren. \r
+ simedtdlg.txt.longA2 = Mehr Information zum Schreiben von Simualtionsempfängern sind in der OpenRocket technical documentation zu finden.\r
+ simedtdlg.lbl.Curlist = Aktuelle Simulationsempfänger:\r
+ simedtdlg.lbl.Addsimlist = Simulationsempfänger hinzufügen\r
+ simedtdlg.lbl.Noflightdata = Keine Flugdaten verfügbar.\r
+ simedtdlg.lbl.runsimfirst = Bitte erst die Simulation ausführen.\r
+ simedtdlg.chart.Simflight = Simulierter Flug\r
+ simedtdlg.dlg.Simres = Ergebnisse der Simulation\r
+ simedtdlg.IntensityDesc.None = Keine\r
+ simedtdlg.IntensityDesc.Verylow = Sehr niedrig\r
+ simedtdlg.IntensityDesc.Low = Niedrig\r
+ simedtdlg.IntensityDesc.Medium = Mittel\r
+ simedtdlg.IntensityDesc.High = Hoch\r
+ simedtdlg.IntensityDesc.Veryhigh = Sehr hoch\r
+ simedtdlg.IntensityDesc.Extreme = Extrem\r
+ \r
+ \r
+ \r
+ ! Simulation Panel\r
+ simpanel.but.newsimulation = Neue Simulation\r
+ simpanel.but.editsimulation = Simulation bearbeiten\r
+ simpanel.but.runsimulations = Simulation ausführen\r
+ simpanel.but.deletesimulations = Simulation löschen\r
+ simpanel.but.plotexport = Plotten / exportieren\r
+ simpanel.but.ttip.newsimulation = Neue Simulation hinzufügen\r
+ simpanel.but.ttip.editsim = Ausgewählte Simulation bearbeiten\r
+ simpanel.but.ttip.runsimu = Neuberechnen der ausgewählten Simulationen\r
+ simpanel.but.ttip.deletesim = Ausgewählte Simulationen löschen\r
+ simpanel.checkbox.donotask = Nicht wieder fragen\r
+ simpanel.lbl.defpref = Die Standardaktion kann in den Einstellungen geändert werden.\r
+ simpanel.dlg.lbl.DeleteSim1 = Die ausgewählten Simulationen löschen?\r
+ simpanel.dlg.lbl.DeleteSim2 = <html><i>Diese Aktion kann nicht rückgängig gemacht werden.</i>\r
+ simpanel.dlg.lbl.DeleteSim3 = Simulationen löschen\r
+ simpanel.col.Name = Name der Simulation:\r
+ simpanel.col.Motors = Motoren\r
+ simpanel.col.Apogee = Apogäum\r
+ simpanel.col.Maxvelocity = max. Geschwindigkeit\r
+ simpanel.col.Maxacceleration = max. Beschleunigung\r
+ simpanel.col.Timetoapogee = Zeit bis zum Apogäum\r
+ simpanel.col.Flighttime = Flugzeit\r
+ simpanel.col.Groundhitvelocity = Landegeschwindigkeit\r
+ \r
+ ! SimulationRunDialog\r
+ SimuRunDlg.title.RunSim = Simuliere...\r
+ SimuRunDlg.lbl.Running = Arbeite...\r
+ SimuRunDlg.lbl.Simutime = Simulationsdauer:\r
+ SimuRunDlg.lbl.Altitude = Höhe:\r
+ SimuRunDlg.lbl.Velocity = Geschwindigkeit:\r
+ SimuRunDlg.msg.Unabletosim = Simulieren nicht möglich:\r
+ SimuRunDlg.msg.errorOccurred = Während der Simulation trat ein Fehler auf:\r
+ SimuRunDlg.msg.AnException1 = Während der Simulation trat eine Ausnahme auf:\r
+ SimuRunDlg.msg.AnException2 = Bitte berichten Sie diesen Fehler mit den unten stehenden Details.\r
+ SimuRunDlg.msg.AssertionError1 = Während der Simulation trat ein Berechnungsfehler auf:\r
+ SimuRunDlg.msg.AssertionError2 = Bitte berichten Sie diesen Fehler mit den unten stehenden Details.\r
+ SimuRunDlg.msg.unknownerror1 = Während der Simulation trat ein unbekannter Fehler auf:\r
+ SimuRunDlg.msg.unknownerror2 = Das Programm könnte instabil sein, speichern Sie Ihr Design und starten Sie OpenRocket neu!\r
+ \r
+ \r
+ \r
+ ! SimulationExportPanel\r
+ SimExpPan.desc = Komma getrennte Werte (*.csv)\r
+ SimExpPan.border.Vartoexport = zu exportierende Variablen\r
+ SimExpPan.but.Selectall = Alle auswählen\r
+ SimExpPan.but.Selectnone = Keine auswählen\r
+ SimExpPan.border.Fieldsep = Feldtrennung\r
+ SimExpPan.lbl.Fieldsepstr = Trennzeichen\r
+ SimExpPan.lbl.longA1 = <html>Das Trennzeichen wird benutzt, um die Felder in der exportierten Datei voneinander zu trennen.<br>\r
+ SimExpPan.lbl.longA2 = Für eine CSV-Datei (Comma Separated Values) ein ',' benutzen.\r
+ SimExpPan.checkbox.Includesimudesc = Simulationsbeschreibung einfügen\r
+ SimExpPan.checkbox.ttip.Includesimudesc = Fügt einen Kommentar mit einer Simulationsbeschreibung am Anfang der Datei ein.\r
+ SimExpPan.border.Comments = Kommentare\r
+ SimExpPan.checkbox.Includefielddesc = Feldbeschreibungen einfügen\r
+ SimExpPan.checkbox.ttip.Includefielddesc = Fügt eine Kommentarzeile mit der Beschreibung der exportierten Variablen ein.\r
+ SimExpPan.checkbox.Incflightevents = Flugereignisse einfügen\r
+ SimExpPan.checkbox.ttip.Incflightevents = Fügt eine Kommentarzeile für jedes Flugereignis ein.\r
+ SimExpPan.lbl.Commentchar = Kommentarzeichen:\r
+ SimExpPan.lbl.ttip.Commentchar = Zeichen, das einen Kommentar in der exportierten Datei kennzeichnet.\r
+ SimExpPan.but.Exporttofile = In Datei exportieren...\r
+ SimExpPan.Fileexists.desc1 = File \"",Datei \«"\r
+ SimExpPan.Fileexists.desc2 = \" existiert bereits. Überschreiben?"\r
+ SimExpPan.Fileexists.title = Datei existiert bereits\r
+ SimExpPan.ExportingVar.desc1 = Exportiere Variable 1 aus\r
+ SimExpPan.ExportingVar.desc2 = Exportiere\r
+ SimExpPan.ExportingVar.desc3 = Variablen aus\r
+ SimExpPan.Col.Variable = Variable\r
+ SimExpPan.Col.Unit = Einheit\r
+ \r
+ ! MotorPlot\r
+ MotorPlot.title.Motorplot = Motorkurve\r
+ MotorPlot.but.Select = Auswahl\r
+ MotorPlot.Chart.Motorthrustcurve = Motorschubkurve\r
+ MotorPlot.Chart.Time = Zeit / s\r
+ MotorPlot.Chart.Thrust = Schub / N\r
+ MotorPlot.txt.Designation = Bezeichnung:\r
+ MotorPlot.txt.Manufacturer = Hersteller\r
+ MotorPlot.txt.Type = Typ:\r
+ MotorPlot.txt.Delays = Verzögerungen:\r
+ MotorPlot.txt.Comment = Kommentare:\n\r
+ \r
+ \r
+ \r
+ ! Simulation plot panel\r
+ simplotpanel.lbl.Presetplotconf = Plotparameter setzen\r
+ simplotpanel.lbl.Xaxistype = X-Achse:\r
+ simplotpanel.lbl.Unit = Einheit:\r
+ simplotpanel.lbl.Yaxistypes = Y-Achse:\r
+ simplotpanel.lbl.Flightevents = Flugereignisse:\r
+ simplotpanel.but.All = Alle auswählen\r
+ simplotpanel.but.None = Keine\r
+ simplotpanel.but.NewYaxisplottype = Neuer Y-Achsenplot-Typ\r
+ simplotpanel.but.Plotflight = Flug plotten\r
+ simplotpanel.lbl.Axis = Achsen:\r
+ simplotpanel.but.ttip.Removethisplot = Diesen Plot löschen\r
+ simplotpanel.Desc = Die Daten werden in zeitlicher Reihenfolge geplottet, auch wenn der X-Achsen-Typ nicht Zeit ist.\r
+ simplotpanel.OptionPane.lbl1 = Es sind maximal 15 Plots erlaubt.\r
+ simplotpanel.OptionPane.lbl2 = Plot konnte nicht hinzugefügt werden\r
+ simplotpanel.AUTO_NAME = Auto\r
+ simplotpanel.LEFT_NAME = Links\r
+ simplotpanel.RIGHT_NAME = Rechts\r
+ simplotpanel.CUSTOM = Benutzerdefiniert\r
+ \r
+ ! Component add buttons\r
+ compaddbuttons.Bodycompandfinsets = Körperteile und Leitwerke\r
+ compaddbuttons.Nosecone = Spitze\r
+ compaddbuttons.Bodytube = Körperrohr\r
+ compaddbuttons.Transition = Übergang\r
+ compaddbuttons.Trapezoidal = Trapeziod\r
+ compaddbuttons.Elliptical = Elliptisch\r
+ compaddbuttons.Freeform = Freiform\r
+ compaddbuttons.Launchlug = Leit-\nröhrchen\r
+ compaddbuttons.Innercomponent = Innenteile\r
+ compaddbuttons.Innertube = Innenrohr\r
+ compaddbuttons.Coupler = Koppler\r
+ compaddbuttons.Centeringring = Zentrier-\nring\r
+ compaddbuttons.Bulkhead = Schott\r
+ compaddbuttons.Engineblock = Motor-\nblock\r
+ compaddbuttons.Massobjects = Massenobjekte\r
+ compaddbuttons.Parachute = Fallschirm\r
+ compaddbuttons.Streamer = Strömer\r
+ compaddbuttons.Shockcord = Gummiseil\r
+ compaddbuttons.Masscomponent = Massen-\nobjekt\r
+ compaddbuttons.Donotaskmeagain = Nicht wieder fragen\r
+ compaddbuttons.Selectcomppos = Komponentenposition auswählen\r
+ compaddbuttons.lbl.Youcanchange = Die Standardaktion kann in den Einstellungen geändert werden.\r
+ compaddbuttons.lbl.insertcomp = Die Komponente nach der aktuellen Komponente oder als letzte Komponente einfügen?\r
+ compaddbuttons.askPosition.Inserthere = Hier einfügen\r
+ compaddbuttons.askPosition.Addtotheend = Zum Ende hinzufügen\r
+ compaddbuttons.askPosition.Cancel = Abbrechen\r
+ \r
+ ! Component Analysis Dialog\r
+ componentanalysisdlg.componentanalysis = Component analysis\r
+ componentanalysisdlg.lbl.winddir = Windrichtung\r
+ componentanalysisdlg.TitledBorder.warnings = Warnungen:\r
+ componentanalysisdlg.ToggleBut.worst = Worst\r
+ componentanalysisdlg.lbl.angleofattack = Angriffswinkel:\r
+ componentanalysisdlg.lbl.machnumber = Machzahl:\r
+ componentanalysisdlg.lbl.rollrate = Rollrate:\r
+ componentanalysisdlg.lbl.activestages = Aktive Stufen:\r
+ componentanalysisdlg.lbl.motorconf = Motorkonfiguration:\r
+ componentanalysisdlg.TabStability.Col = Komponente\r
+ componentanalysisdlg.TabStability = Stabilität\r
+ componentanalysisdlg.TabStability.ttip = Stabilitätsinformationen\r
+ componentanalysisdlg.dragTableModel.Col.Component = Komponente\r
+ componentanalysisdlg.dragTableModel.Col.Pressure = <html>Druck C<sub>D</sub>\r
+ componentanalysisdlg.dragTableModel.Col.Base = <html>Base C<sub>D</sub>\r
+ componentanalysisdlg.dragTableModel.Col.friction = <html>Reibung C<sub>D</sub>\r
+ componentanalysisdlg.dragTableModel.Col.total = <html>Gesamt C<sub>D</sub>\r
+ componentanalysisdlg.dragTabchar = Drag characteristics\r
+ componentanalysisdlg.dragTabchar.ttip = Drag characteristics\r
+ componentanalysisdlg.rollTableModel.Col.component = Komponente\r
+ componentanalysisdlg.rollTableModel.Col.rollforc = Roll forcing coefficient\r
+ componentanalysisdlg.rollTableModel.Col.rolldamp = Roll damping coefficient\r
+ componentanalysisdlg.rollTableModel.Col.total = <html>Gesamt C<sub>l</sub>\r
+ componentanalysisdlg.rollTableModel = Rolldynamik\r
+ componentanalysisdlg.rollTableModel.ttip = Rolldynamik\r
+ componentanalysisdlg.println.closingmethod = Closing method called:\r
+ componentanalysisdlg.println.settingnam = SETTING NAN VALUES\r
+ componentanalysisdlg.lbl.reflenght = Referenzlänge:\r
+ componentanalysisdlg.lbl.refarea = Referenzfläche:\r
+ !componentanalysisdlg.But.close =Close\r
+ \r
+ ! Custom Material dialog\r
+ custmatdlg.title.Custommaterial = Benutzerdefiniertes Material\r
+ custmatdlg.lbl.Materialname = Name des Materials:\r
+ custmatdlg.lbl.Materialtype = Materialtyp\r
+ custmatdlg.lbl.Materialdensity = Materialdichte:\r
+ custmatdlg.checkbox.Addmaterial = Material zur Datenbank hinzufügen\r
+ \r
+ \r
+ ! Ring Component Config\r
+ ringcompcfg.OuterRadius = Äußerer Radius\r
+ ringcompcfg.Automatic = Automatisch\r
+ ringcompcfg.InnerRadius = Innerer Radius\r
+ ringcompcfg.Thickness = Wandstärke\r
+ ringcompcfg.Length = Länge\r
+ ringcompcfg.Positionrelativeto = Relative Position zu:\r
+ ringcompcfg.plus = plus\r
+ ringcompcfg.PositionValue = Positionswert\r
+ ringcompcfg.Radialdistance = Radialer Abstand:\r
+ ringcompcfg.Distancefrom = Abstand von der Raketenmittellinie\r
+ ringcompcfg.Radialdirection = Radiale Richtung\r
+ ringcompcfg.radialdirectionfrom = Die radiale Richtung von der Raketenmittellinie\r
+ ringcompcfg.but.Reset = Zurücksetzen\r
+ ringcompcfg.but.Resetcomponant = Komponente auf die Raketenmittellinie zurücksetzen\r
+ ringcompcfg.EngineBlock.desc = <html>Eine <b>Motorhalterung</b> verhindert, dass der Motor sich im Rohr nach vorne bewegt.<br><br>Um einen Motor hinzuzufügen, ein <b>Körperrohr</b> oder ein <b>Innenrohr</b> hinzufügen und im Reiter <em>Motor</em> als Motorhalterung markieren.\r
+ ringcompcfg.note.desc = Hinweis: Innenrohre beeinflussen die Aerodynamik der Rakete nicht, auch wenn sie außerhalb des Körperohres liegen.\r
+ \r
+ \r
+ ! Body Tube Config\r
+ BodyTubecfg.lbl.Bodytubelength = Länge des Körperrohres:\r
+ BodyTubecfg.lbl.Outerdiameter = Außendurchmesser:\r
+ BodyTubecfg.lbl.Innerdiameter = Innendurchmesser:\r
+ BodyTubecfg.lbl.Wallthickness = Wandstärke:\r
+ BodyTubecfg.tab.General = Allgemein\r
+ BodyTubecfg.tab.Generalproperties = Allgemeine Eigenschaften\r
+ BodyTubecfg.tab.Motor = Motor\r
+ BodyTubecfg.tab.Motormountconf = Motorkonfiguration\r
+ BodyTubecfg.checkbox.Automatic = Automatisch\r
+ BodyTubecfg.checkbox.Filled = Gefüllt\r
+ \r
+ ! FinSetConfig\r
+ FinSetConfig.tab.Fintabs = Leitwerke\r
+ FinSetConfig.tab.Through-the-wall = Durchsteckbare Leitwerke\r
+ FinSetConfig.but.Converttofreeform = In Freiform konvertieren\r
+ FinSetConfig.but.Converttofreeform.ttip = Konvertiert diese Leitwerke in eine Freiform\r
+ FinSetConfig.Convertfinset = Leitwerke konvertieren\r
+ FinSetConfig.but.Splitfins = Geteilte Leitwerke\r
+ FinSetConfig.but.Splitfins.ttip = Teilt den Leitwerkssatz in getrennte Leitwerke\r
+ FinSetConfig.lbl.Through-the-wall = Durchsteckbare Leitwerke:\r
+ FinSetConfig.lbl.Tablength = Länge:\r
+ FinSetConfig.ttip.Tablength = Länge des Leitwerks.\r
+ FinSetConfig.lbl.Tabheight = Höhe:\r
+ FinSetConfig.ttip.Tabheight = Spannweite des Leitwerks.\r
+ FinSetConfig.lbl.Tabposition = Position:\r
+ FinSetConfig.ttip.Tabposition = Position des Leitwerks.\r
+ FinSetConfig.lbl.relativeto = relativ zu\r
+ \r
+ ! MotorDatabaseLoadingDialog\r
+ MotorDbLoadDlg.title = Lade Motoren\r
+ MotorDbLoadDlg.Loadingmotors = Lade Motoren...\r
+ \r
+ ! RocketConfig\r
+ RocketCfg.lbl.Designname = Name der Rakete:\r
+ RocketCfg.lbl.Designer = Ersteller:\r
+ RocketCfg.lbl.Comments = Kommentare:\r
+ RocketCfg.lbl.Revisionhistory = Versionsgeschichte:\r
+ RocketCfg.lbl.Material = Material:\r
+ \r
+ ! ShockCordConfig\r
+ ShockCordCfg.lbl.Shockcordlength = Gummiseillänge\r
+ \r
+ ! RocketComponentConfig\r
+ RocketCompCfg.lbl.Componentname = Komponentenname:\r
+ RocketCompCfg.ttip.Thecomponentname = Name der Komponente.\r
+ RocketCompCfg.tab.Override = Werte überschreiben\r
+ RocketCompCfg.tab.MassandCGoverride = Massen- und Schwerpunktsoptionen\r
+ RocketCompCfg.tab.Figure = Form\r
+ RocketCompCfg.tab.Figstyleopt = Formoptionen\r
+ RocketCompCfg.tab.Comment = Kommentar\r
+ RocketCompCfg.tab.Specifyacomment = Kommentar zu dieser Komponente\r
+ RocketCompCfg.lbl.Mass = Masse:\r
+ RocketCompCfg.lbl.Componentmass = Masse der Komponente:\r
+ RocketCompCfg.lbl.overriddento = (überschrieben auf\r
+ RocketCompCfg.lbl.overriddenby = (überschrieben durch\r
+ RocketCompCfg.lbl.Componentmaterial = Material:\r
+ RocketCompCfg.lbl.Componentfinish = Oberfläche:\r
+ RocketCompCfg.lbl.ttip.componentmaterialaffects = Das Material beeinflusst die Masse der Komponente.\r
+ RocketCompCfg.combo.ttip.componentmaterialaffects = Das Material beeinflusst die Masse der Komponente.\r
+ RocketCompCfg.lbl.longA1 = <html>Die Oberfläche beeinflusst den aerodynamischen Widerstand der Komponente.<br>\r
+ RocketCompCfg.lbl.longA2 = Der angegebene Wert ist die durchschnittliche Rautiefe der Oberfläche.\r
+ RocketCompCfg.but.Setforall = Für alle setzen\r
+ RocketCompCfg.but.ttip.Setforall = Diese Oberflächen für alle Komponenten der Rakete setzen.\r
+ RocketCompCfg.lbl.Overridemassorcenter = Überschreiben von Masse oder Schwerpunkts von \r
+ RocketCompCfg.checkbox.Overridemass = Masse überschreiben:\r
+ RocketCompCfg.checkbox.Overridecenterofgrav = Schwerpunkt überschreiben:\r
+ RocketCompCfg.checkbox.OverridemassandCG = Masse und Schwerpunkt für alle Unterkomponenten überschreiben\r
+ RocketCompCfg.lbl.longB1 = <html>Die überschriebene Masse enthält keine Motoren.<br>\r
+ RocketCompCfg.lbl.longB2 = Die Messung des Schwerpunktes beginnt am Ende von\r
+ RocketCompCfg.lbl.Commentsonthe = Kommentare zu\r
+ RocketCompCfg.lbl.Figurestyle = Form:\r
+ RocketCompCfg.lbl.Componentcolor = Farbe:\r
+ RocketCompCfg.lbl.Choosecolor = Farbe auswählen\r
+ RocketCompCfg.checkbox.Usedefaultcolor = Standardfarbe verwenden\r
+ RocketCompCfg.lbl.Complinestyle = Linienstil:\r
+ RocketCompCfg.but.Saveasdefstyle = Als Standardstil speichern\r
+ RocketCompCfg.lbl.Diameter = Durchmesser:\r
+ RocketCompCfg.lbl.Length = Länge:\r
+ RocketCompCfg.lbl.Thickness = Wandstärke:\r
+ RocketCompCfg.checkbox.Endcapped = Verschlossenes Ende\r
+ RocketCompCfg.ttip.Endcapped = Gibt an, ob das Ende der Schulter geschlossen ist.\r
+ RocketCompCfg.title.Noseconeshoulder = Spitzenschulter\r
+ RocketCompCfg.title.Aftshoulder = Schulter hinten\r
+ RocketCompCfg.border.Foreshoulder = Schulter vorn\r
+ !RocketCompCfg.lbl.Length = Length:\r
+ \r
+ ! BulkheadConfig\r
+ BulkheadCfg.tab.Radius = Radius:\r
+ BulkheadCfg.tab.Thickness = Wandstärke:\r
+ BulkheadCfg.tab.General = Allgemein\r
+ BulkheadCfg.tab.Generalproperties = Allgemeine Eigenschaften\r
+ \r
+ !CenteringRingConfig\r
+ CenteringRingCfg.tab.Outerdiam = Außendurchmesser:\r
+ CenteringRingCfg.tab.Innerdiam = Innendurchmesser:\r
+ CenteringRingCfg.tab.Thickness = Wandstärke:\r
+ CenteringRingCfg.tab.General = Allgemein\r
+ CenteringRingCfg.tab.Generalproperties = Allgemeine Eigenschaften\r
+ \r
+ !ComponentConfigDialog\r
+ ComponentCfgDlg.configuration = Konfiguration\r
+ ComponentCfgDlg.Modify = Verändern\r
+ \r
+ !EllipticalFinSetConfig\r
+ EllipticalFinSetCfg.Nbroffins = Anzahl der Leitwerke\r
+ EllipticalFinSetCfg.Rotation = Rotation:\r
+ EllipticalFinSetCfg.Fincant = Neigung:\r
+ EllipticalFinSetCfg.Rootchord = Blatttiefe:\r
+ EllipticalFinSetCfg.Height = Höhe:\r
+ EllipticalFinSetCfg.Positionrelativeto = Position relativ zu:\r
+ EllipticalFinSetCfg.plus = plus\r
+ EllipticalFinSetCfg.FincrossSection = Querschnitt:\r
+ EllipticalFinSetCfg.Thickness = Wandstärke:\r
+ EllipticalFinSetCfg.General = Allgemein\r
+ EllipticalFinSetCfg.Generalproperties = Allgemeine Eigenschaften\r
+ EllipticalFinSetCfg.ttip.Fincant = Der Winkel, in dem die Leitwerke zum Körperrohr geneigt sind.\r
+ \r
+ !FreeformFinSetConfig\r
+ FreeformFinSetCfg.tab.General = Allgemein\r
+ FreeformFinSetCfg.tab.ttip.General = Allgemeine Eigenschaften\r
+ FreeformFinSetCfg.tab.Shape = Form\r
+ FreeformFinSetCfg.tab.ttip.Finshape = Leitwerksform\r
+ FreeformFinSetCfg.lbl.Numberoffins = Anzahl der Leitwerke\r
+ FreeformFinSetCfg.lbl.Finrotation = Rotation:\r
+ FreeformFinSetCfg.lbl.Fincant = Neigung:\r
+ FreeformFinSetCfg.lbl.ttip.Fincant = Der Winkel, in dem die Leitwerke zum Körperrohr geneigt sind.\r
+ FreeformFinSetCfg.lbl.Posrelativeto = Position relativ zu:\r
+ FreeformFinSetCfg.lbl.plus = plus\r
+ FreeformFinSetCfg.lbl.FincrossSection = Querschnitt:\r
+ FreeformFinSetCfg.lbl.Thickness = Wandstärke:\r
+ \r
+ !InnerTubeConfig\r
+ InnerTubeCfg.tab.Motor = Motor\r
+ InnerTubeCfg.tab.ttip.Motor = Motorkonfiguration\r
+ InnerTubeCfg.tab.Cluster = Cluster\r
+ InnerTubeCfg.tab.ttip.Cluster = Cluster-Konfiguration\r
+ InnerTubeCfg.tab.Radialpos = Radiale Position\r
+ InnerTubeCfg.tab.ttip.Radialpos = Radiale Position\r
+ InnerTubeCfg.lbl.Selectclustercfg = Cluster-Konfiguration auswählen:\r
+ InnerTubeCfg.lbl.TubeSep = Rohrtrennung\r
+ InnerTubeCfg.lbl.ttip.TubeSep = Die Trennung der Rohre, 1.0 = die Rohre berühren sich\r
+ InnerTubeCfg.lbl.Rotation = Rotation:\r
+ InnerTubeCfg.lbl.ttip.Rotation = Rotationswinkel der Cluster-Konfiguration\r
+ InnerTubeCfg.lbl.Rotangle = Rotationswinkel der Cluster-Konfiguration\r
+ InnerTubeCfg.but.Splitcluster = Cluster aufteilen\r
+ InnerTubeCfg.lbl.longA1 = <html>Den Cluster in einzelne Komponenten aufteilen.<br>\r
+ InnerTubeCfg.lbl.longA2 = Die dupliziert alle Komponenten innerhalb dieses Innenrohrs.\r
+ InnerTubeCfg.but.Resetsettings = Einstellungen zurücksetzen\r
+ InnerTubeCfg.but.ttip.Resetsettings = Setzt die Aufteilung und Rotation auf die Standardwerte zurück\r
+ \r
+ ! LaunchLugConfig\r
+ LaunchLugCfg.lbl.Length = Länge:\r
+ LaunchLugCfg.lbl.Outerdiam = Außendurchmesser:\r
+ LaunchLugCfg.lbl.Innerdiam = Innendurchmesser:\r
+ LaunchLugCfg.lbl.Thickness = Wandstärke:\r
+ LaunchLugCfg.lbl.Radialpos = Radiale Position:\r
+ LaunchLugCfg.lbl.Posrelativeto = Position relativ zu:\r
+ LaunchLugCfg.lbl.plus = plus\r
+ LaunchLugCfg.tab.General = Allgemein\r
+ LaunchLugCfg.tab.Generalprop = Allgemeine Eigenschaften\r
+ \r
+ ! MassComponentConfig\r
+ MassComponentCfg.lbl.Mass = Masse\r
+ MassComponentCfg.lbl.Length = Länge\r
+ MassComponentCfg.lbl.Diameter = Durchmesser\r
+ MassComponentCfg.lbl.PosRelativeto = Position relativ zu:\r
+ MassComponentCfg.lbl.plus = plus\r
+ MassComponentCfg.tab.General = Allgemein\r
+ MassComponentCfg.tab.ttip.General = Allgemeine Eigenschaften\r
+ MassComponentCfg.tab.Radialpos = Radiale Position\r
+ MassComponentCfg.tab.ttip.Radialpos = Konfiguration der radialen Position\r
+ MassComponentCfg.lbl.Radialdistance = Radialer Abstand:\r
+ MassComponentCfg.lbl.Radialdirection = radiale Richtung:\r
+ MassComponentCfg.but.Reset = Zurücksetzen\r
+ \r
+ ! MotorConfig\r
+ MotorCfg.checkbox.compmotormount = Diese Komponente ist eine Motorhalterung\r
+ MotorCfg.lbl.Motorcfg = Motorkonfiguration\r
+ MotorCfg.but.New = Neu\r
+ MotorCfg.lbl.Currentmotor = Aktueller Motor:\r
+ MotorCfg.lbl.Motoroverhang = Motorüberstand:\r
+ MotorCfg.lbl.Ignitionat = Zündung bei:\r
+ MotorCfg.lbl.plus = plus\r
+ MotorCfg.lbl.seconds = Sekunden\r
+ MotorCfg.lbl.longA1 = Das aktuelle Design hat im Moment nur eine Stufe.\r
+ MotorCfg.lbl.longA2 = Stufen können durch Klicken auf \«Neue Stufe\« hinzugefügt werden.\r
+ MotorCfg.lbl.longB1 = Das aktuelle Design hat im Moment nur eine Stufe.\r
+ MotorCfg.lbl.longB2 = Stufen.\r
+ MotorCfg.but.Selectmotor = Motor auswählen\r
+ MotorCfg.but.Removemotor = Motor entfernen\r
+ MotorCfg.lbl.motorLabel = Keiner\r
+ \r
+ ! NoseConeConfig\r
+ NoseConeCfg.lbl.Noseconeshape = Spitzenform:\r
+ NoseConeCfg.lbl.Shapeparam = Formparameter:\r
+ NoseConeCfg.lbl.Noseconelength = Spitzenlänge:\r
+ NoseConeCfg.lbl.Basediam = Basisdurchmesser:\r
+ NoseConeCfg.checkbox.Automatic = Automatisch\r
+ NoseConeCfg.lbl.Wallthickness = Wandstärke:\r
+ NoseConeCfg.checkbox.Filled = gefüllt\r
+ NoseConeCfg.tab.General = Allgemein\r
+ NoseConeCfg.tab.ttip.General = Allgemeine Eigenschaften\r
+ NoseConeCfg.tab.Shoulder = Schulter\r
+ NoseConeCfg.tab.ttip.Shoulder = Schultereigenschaften\r
+ \r
+ ! ParachuteConfig\r
+ ParachuteCfg.lbl.Canopy = Fallschirmkappe:\r
+ ParachuteCfg.lbl.Diameter = Durchmesser:\r
+ ParachuteCfg.lbl.Material = Material:\r
+ ParachuteCfg.combo.MaterialModel = Das Material beeinflusst die Masse der Komponente.\r
+ ParachuteCfg.lbl.longA1 = <html>Luftwiderstandskoeffizient C<sub>D</sub>:\r
+ ParachuteCfg.lbl.longB1 = <html>Der Luftwiderstandsbeiwert relativ zur Gesamtfläche des Fallschirms.<br>\r
+ ParachuteCfg.lbl.longB2 = Ein größerer Luftwiderstand führt zu einer kleineren Sinkrate.\r
+ ParachuteCfg.lbl.longB3 = Ein typischer Wert für Fallschirme ist 0,8.\r
+ ParachuteCfg.but.Reset = Zurücksetzen\r
+ ParachuteCfg.lbl.Shroudlines = Fangleinen:\r
+ ParachuteCfg.lbl.Numberoflines = Anzahl der Leinen:\r
+ ParachuteCfg.lbl.Linelength = Länge der Leinen:\r
+ ParachuteCfg.lbl.Material = Material:\r
+ ParachuteCfg.lbl.Posrelativeto = Position relativ zu:\r
+ ParachuteCfg.lbl.plus = plus\r
+ ParachuteCfg.lbl.Packedlength = gepackte Länge:\r
+ ParachuteCfg.lbl.Packeddiam = gepackter Durchmesser:\r
+ ParachuteCfg.lbl.Deploysat = Auswurf bei\r
+ ParachuteCfg.lbl.seconds = Sekunden\r
+ ParachuteCfg.lbl.Altitude = Höhe:\r
+ ParachuteCfg.tab.General = Allgemein\r
+ ParachuteCfg.tab.ttip.General = Allgemeine Eigenschaften\r
+ ParachuteCfg.tab.Radialpos = Radiale Position\r
+ ParachuteCfg.tab.ttip.Radialpos = Konfiguration der radialen Position\r
+ ParachuteCfg.lbl.Radialdistance = Radialer Abstand:\r
+ ParachuteCfg.lbl.Radialdirection = radiale Richtung:\r
+ ParachuteCfg.but.Reset = Zurücksetzen\r
+ \r
+ ! ShockCordConfig \r
+ ShockCordCfg.lbl.Shockcordlength = Länge des Gummiseils\r
+ ShockCordCfg.lbl.Shockcordmaterial = Material des Gummiseils:\r
+ ShockCordCfg.lbl.Posrelativeto = Position relativ zu:\r
+ ShockCordCfg.lbl.plus = plus\r
+ ShockCordCfg.lbl.Packedlength = gepackte Länge:\r
+ ShockCordCfg.lbl.Packeddiam = gepackter Durchmesser:\r
+ ShockCordCfg.tab.General = Allgemein\r
+ ShockCordCfg.tab.ttip.General = Allgemeine Eigenschaften\r
+ \r
+ !SleeveConfig\r
+ SleeveCfg.tab.Outerdiam = Außendurchmesser:\r
+ SleeveCfg.tab.Innerdiam = Innendurchmesser:\r
+ SleeveCfg.tab.Wallthickness = Wandstärke:\r
+ SleeveCfg.tab.Length = Länge:\r
+ SleeveCfg.tab.General = Allgemein\r
+ SleeveCfg.tab.Generalproperties = Allgemeine Eigenschaften\r
+ \r
+ ! StreamerConfig\r
+ StreamerCfg.lbl.Striplength = Länge des Strömers:\r
+ StreamerCfg.lbl.Stripwidth = Breite des Strömers:\r
+ StreamerCfg.lbl.Striparea = Fläche des Strömers:\r
+ StreamerCfg.lbl.Aspectratio = Seitenverhältnis:\r
+ StreamerCfg.lbl.Material = Material:\r
+ StreamerCfg.combo.ttip.MaterialModel = Das Material beeinflusst die Masse der Komponente.\r
+ StreamerCfg.lbl.longA1 = <html>Widerstandskoeffizient C<sub>D</sub>:\r
+ StreamerCfg.lbl.longB1 = <html>Der Widerstandskoeffizient des Strömers hängt von der Gesamtfläche ab.<br>\r
+ StreamerCfg.lbl.longB2 = Ein größerer Luftwiderstandskoeffizient führt zu einer kleineren Sinkrate.\r
+ StreamerCfg.lbl.Automatic = Automatisch\r
+ StreamerCfg.lbl.longC1 = Der Luftwiderstandskoeffizient hängt von der Fläche des Strömers ab.\r
+ StreamerCfg.lbl.Posrelativeto = Position relativ zu:\r
+ StreamerCfg.lbl.plus = plus\r
+ StreamerCfg.lbl.Packedlength = gepackte Länge:\r
+ StreamerCfg.lbl.Packeddiam = gepackter Durchmesser:\r
+ StreamerCfg.lbl.Deploysat = Auswurf bei\r
+ StreamerCfg.lbl.seconds = Sekunden\r
+ StreamerCfg.lbl.Altitude = Höhe:\r
+ StreamerCfg.tab.General = Allgemein\r
+ StreamerCfg.tab.ttip.General = Allgemeine Eigenschaften\r
+ StreamerCfg.tab.Radialpos = Radiale Position\r
+ StreamerCfg.tab.ttip.Radialpos = Konfiguration der radialen Position\r
+ StreamerCfg.lbl.Radialdistance = Radialer Abstand:\r
+ StreamerCfg.lbl.Radialdirection = radiale Richtung:\r
+ StreamerCfg.but.Reset = Zurücksetzen\r
+ \r
+ ! ThicknessRingComponentConfig\r
+ ThicknessRingCompCfg.tab.Outerdiam = Außendurchmesser:\r
+ ThicknessRingCompCfg.tab.Innerdiam = Innendurchmesser:\r
+ ThicknessRingCompCfg.tab.Wallthickness = Wandstärke:\r
+ ThicknessRingCompCfg.tab.Length = Länge:\r
+ ThicknessRingCompCfg.tab.General = Allgemein\r
+ ThicknessRingCompCfg.tab.Generalprop = Allgemeine Eigenschaften\r
+ \r
+ ! TransitionConfig\r
+ TransitionCfg.lbl.Transitionshape = Form des Übergangs\r
+ TransitionCfg.checkbox.Clipped = geklemmt\r
+ TransitionCfg.lbl.Shapeparam = Formparameter:\r
+ TransitionCfg.lbl.Transitionlength = Länge des Übergangs:\r
+ TransitionCfg.lbl.Forediam = Vorderer Durchmesser\r
+ TransitionCfg.checkbox.Automatic = Automatisch\r
+ TransitionCfg.lbl.Aftdiam = Hinterer Durchmesser\r
+ TransitionCfg.lbl.Wallthickness = Wandstärke:\r
+ TransitionCfg.checkbox.Filled = gefüllt\r
+ TransitionCfg.tab.General = Allgemein\r
+ TransitionCfg.tab.Generalproperties = Allgemeine Eigenschaften\r
+ TransitionCfg.tab.Shoulder = Schulter\r
+ TransitionCfg.tab.Shoulderproperties = Schultereigenschaften\r
+ \r
+ ! TrapezoidFinSetConfig\r
+ TrapezoidFinSetCfg.lbl.Nbroffins = Anzahl der Leitwerke\r
+ TrapezoidFinSetCfg.lbl.ttip.Nbroffins = Anzahl der Leitwerke in diesem Satz\r
+ TrapezoidFinSetCfg.lbl.Finrotation = Rotation der Leitwerke\r
+ TrapezoidFinSetCfg.lbl.ttip.Finrotation = Winkel des ersten Leitwerks in diesem Satz\r
+ TrapezoidFinSetCfg.lbl.Fincant = Neigung:\r
+ TrapezoidFinSetCfg.lbl.ttip.Fincant = Der Winkel, in dem die Leitwerke zum Körperrohr geneigt sind.\r
+ TrapezoidFinSetCfg.lbl.Rootchord = Blatttiefe:\r
+ TrapezoidFinSetCfg.lbl.Tipchord = Blatttiefe (Spitze)\r
+ TrapezoidFinSetCfg.lbl.Height = Höhe:\r
+ TrapezoidFinSetCfg.lbl.Sweeplength = Blattbreite:\r
+ TrapezoidFinSetCfg.lbl.Sweepangle = Pfeilungswinkel\r
+ TrapezoidFinSetCfg.lbl.FincrossSection = Leitwerksquerschnitt\r
+ TrapezoidFinSetCfg.lbl.Thickness = Wandstärke:\r
+ TrapezoidFinSetCfg.lbl.Posrelativeto = Position relativ zu:\r
+ TrapezoidFinSetCfg.lbl.plus = plus\r
+ TrapezoidFinSetCfg.tab.General = Allgemein\r
+ TrapezoidFinSetCfg.tab.Generalproperties = Allgemeine Eigenschaften\r
+ \r
+ !MotorConfigurationModel\r
+ MotorCfgModel.Editcfg = Konfigurationen bearbeiten\r
+ \r
+ ! StorageOptionChooser\r
+ StorageOptChooser.lbl.Simdatatostore = Zu speichernde Simulationsdaten:\r
+ StorageOptChooser.rdbut.Allsimdata = Alle Simulationsdaten\r
+ StorageOptChooser.lbl.longA1 = <html>Speichert alle Simulationsdaten.<br>\r
+ StorageOptChooser.lbl.longA2 = Dies kann sehr große Dateien erzeugen!\r
+ StorageOptChooser.rdbut.Every = Alle Simulationsdaten\r
+ StorageOptChooser.lbl.longB1 = <html>Speicher plotbare Daten in etwa diesem Abstand.<br>\r
+ StorageOptChooser.lbl.longB2 = Größere Werte erzeugen kleinere Dateien.\r
+ StorageOptChooser.lbl.seconds = Sekunden\r
+ StorageOptChooser.rdbut.Onlyprimfig = Nur die wichtigsten Werte\r
+ StorageOptChooser.lbl.longC1 = <html>Speichert nur die Werte, die in der Zusammenfassung stehen.<br>\r
+ StorageOptChooser.lbl.longC2 = Dies ergibt die kleinsten Dateien\r
+ StorageOptChooser.checkbox.Compfile = Datei komprimieren\r
+ StorageOptChooser.lbl.UsingComp = Kompression der Datei verringert die Größe signifikant.\r
+ StorageOptChooser.lbl.longD1 = Eine Schätzung der Dateigröße mit den gegebenen Optionen.\r
+ StorageOptChooser.ttip.Saveopt = Speicheroptionen\r
+ StorageOptChooser.lbl.Estfilesize = Voraussichtliche Dateigröße:\r
+ StorageOptChooser.lbl.Saveopt = Speicheroptionen\r
+ \r
+ ! ThrustCurveMotorSelectionPanel\r
+ TCMotorSelPan.lbl.Selrocketmotor = Raketenmotor auswählen:\r
+ TCMotorSelPan.checkbox.hideSimilar = Ähnliche Schubkurven verbergen\r
+ TCMotorSelPan.SHOW_DESCRIPTIONS.desc1 = Alle Motoren anzeigen\r
+ TCMotorSelPan.SHOW_DESCRIPTIONS.desc2 = Motoren anzeigen, deren Durchmesser kleiner als der der Motorhalterung ist\r
+ TCMotorSelPan.SHOW_DESCRIPTIONS.desc3 = Motoren anzeigen, deren Durchmesser gleich der der Motorhalterung ist\r
+ TCMotorSelPan.lbl.Motormountdia = Durchmesser der Motorhalterung\r
+ TCMotorSelPan.lbl.Search = Suchen:\r
+ TCMotorSelPan.lbl.Selectthrustcurve = Schubkurve auswählen:\r
+ TCMotorSelPan.lbl.Ejectionchargedelay = Verzögerung der Ausstoßladung:\r
+ TCMotorSelPan.equalsIgnoreCase.None = keine\r
+ TCMotorSelPan.lbl.NumberofsecondsorNone = (Anzahl der Sekunden oder \«keine\«)\r
+ TCMotorSelPan.lbl.Totalimpulse = Gesamtimpuls:\r
+ TCMotorSelPan.lbl.Avgthrust = Durchschn. Schub:\r
+ TCMotorSelPan.lbl.Maxthrust = max. Schub\r
+ TCMotorSelPan.lbl.Burntime = Brenndauer:\r
+ TCMotorSelPan.lbl.Launchmass = Startmasse:\r
+ TCMotorSelPan.lbl.Emptymass = Leermasse:\r
+ TCMotorSelPan.lbl.Datapoints = Datenpunkte:\r
+ TCMotorSelPan.lbl.Digest = Übersicht:\r
+ TCMotorSelPan.title.Thrustcurve = Schubkurve:\r
+ TCMotorSelPan.title.Thrust = Schub:\r
+ TCMotorSelPan.delayBox.None = keine\r
+ \r
+ \r
+ ! PlotDialog\r
+ PlotDialog.title.Flightdataplot = Flugdatenplot\r
+ PlotDialog.Chart.Simulatedflight = Simulierter Flug\r
+ PlotDialog.CheckBox.Showdatapoints = Datenpunkte anzeigen\r
+ PlotDialog.lbl.Chart = Klicken+ziehen: runter+rechts um hinein zu zoomen, hoch+links um heraus zu zoomen \r
+ \r
+ \r
+ ! "main" prefix is used for the main application dialog\r
+ \r
+ main.menu.file = Datei\r
+ main.menu.file.new = Neu\r
+ main.menu.file.open = Öffnen..\r
+ main.menu.file.openExample = Beispiel öffnen..\r
+ main.menu.file.save = Speichern\r
+ main.menu.file.saveAs = Speichern unter...\r
+ main.menu.file.print = Drucken...\r
+ main.menu.file.close = Schließen\r
+ main.menu.file.quit = Beenden\r
+ \r
+ main.menu.edit = Bearbeiten\r
+ main.menu.edit.undo = Rückgängig\r
+ main.menu.edit.redo = Wiederholen\r
+ main.menu.edit.cut = Ausschneiden\r
+ main.menu.edit.copy = Kopieren\r
+ main.menu.edit.paste = Einfügen\r
+ main.menu.edit.delete = Löschen\r
+ main.menu.edit.preferences = Einstellungen\r
+ \r
+ main.menu.analyze = Analysieren\r
+ main.menu.analyze.componentAnalysis = Komponente analysieren\r
+ \r
+ main.menu.help = Hilfe\r
+ main.menu.help.license = Lizenz\r
+ main.menu.help.bugReport = Fehlerbericht\r
+ main.menu.help.debugLog = Debug-Log\r
+ main.menu.help.about = Über\r
+ \r
+ main.menu.debug = Debug\r
+ main.menu.debug.whatisthismenu = Was macht diese Menü?\r
+ main.menu.debug.createtestrocket = Eine Testrakete erstellen\r
+ \r
+ ! database\r
+ ! Translate here all material database\r
+ !\r
+ \r
+ ! Material database\r
+ ! BULK_MATERIAL\r
+ Databases.materials.Acrylic = Acryl\r
+ Databases.materials.Balsa = Balsa\r
+ Databases.materials.Birch = Birke\r
+ Databases.materials.Cardboard = Karton\r
+ Databases.materials.Carbonfiber = Kohlefaser\r
+ Databases.materials.Cork = Kork\r
+ Databases.materials.DepronXPS = Depron (XPS)\r
+ Databases.materials.Fiberglass = Glasfaser\r
+ Databases.materials.Kraftphenolic = Pertinax\r
+ Databases.materials.Maple = Ahorn\r
+ Databases.materials.Paperoffice = Papier (Büro)\r
+ Databases.materials.Pine = Kiefer\r
+ Databases.materials.Plywoodbirch = Sperrholz (Birke)\r
+ Databases.materials.PolycarbonateLexan = Polycarbonat (Lexan)\r
+ Databases.materials.Polystyrene = Polystyrène\r
+ Databases.materials.PVC = PVC\r
+ Databases.materials.Spruce = Fichte\r
+ Databases.materials.StyrofoamgenericEPS = Styropor (EPS)\r
+ Databases.materials.StyrofoamBluefoamXPS = Styrodur (XPS)\r
+ Databases.materials.Quantumtubing = Quantum tubing\r
+ !SURFACE_MATERIAL\r
+ Databases.materials.Ripstopnylon = Ripstop Nylon\r
+ Databases.materials.Mylar = Mylar\r
+ Databases.materials.Polyethylenethin = Polyethylen (dünn)\r
+ Databases.materials.Polyethyleneheavy = Polyethylen (schwer)\r
+ Databases.materials.Silk = Seide\r
+ Databases.materials.Paperoffice = Papier (Büro)\r
+ Databases.materials.Cellophane = Zellophan\r
++Databases.materials.Crepepaper = Krepppapier\r
+ ! LINE_MATERIAL\r
+ Databases.materials.Threadheavy-duty = Faden (stark)\r
+ Databases.materials.Elasticcordround2mm = Elastikband (rund, 2mm, 1/16 in)\r
+ Databases.materials.Elasticcordflat6mm = Elastikband (flach, 6mm, 1/4 in)\r
+ Databases.materials.Elasticcordflat12mm = Elastikband (flach, 12mm, 1/2 in)\r
+ Databases.materials.Elasticcordflat19mm = Elastikband (flach, 19mm, 3/4 in)\r
+ Databases.materials.Elasticcordflat25mm = Elastikband (flach, 25mm, 1 in)\r
+ Databases.materials.Braidednylon2mm = Nylonflachband (2 mm, 1/16 in)\r
+ Databases.materials.Braidednylon3mm = Nylonflachband (3 mm, 1/8 in)\r
+ Databases.materials.Tubularnylon11mm = Tubular Nylon (11 mm, 7/16 in)\r
+ Databases.materials.Tubularnylon14mm = Tubular Nylon (14 mm, 9/16 in)\r
+ Databases.materials.Tubularnylon25mm = Tubular Nylon (25 mm, 1 in)\r
+ \r
+ ! ExternalComponent\r
+ ExternalComponent.Rough = Rau\r
+ ExternalComponent.Unfinished = unbehandelt\r
+ ExternalComponent.Regularpaint = normale Farbe\r
+ ExternalComponent.Smoothpaint = glatte Farbe\r
+ ExternalComponent.Polished = poliert\r
+ \r
+ ! LineStyle\r
+ LineStyle.Solid = durchgehend\r
+ LineStyle.Dashed = gestrichelt\r
+ LineStyle.Dotted = gepunktet\r
+ LineStyle.Dash-dotted = Strich-Punkt\r
+ LineStyle.Defaultstyle = Standardstil\r
+ \r
+ ! Shape\r
+ Shape.Conical = Konisch\r
+ Shape.Conical.desc1 = Eine konische Spitze hat ein dreieckiges Profil\r
+ Shape.Conical.desc2 = Ein konischer Übergang hat gerade Kanten\r
+ Shape.Ogive = Ogive\r
+ Shape.Ogive.desc1 = Eine ogive Spitze hat das Profil eines Kreissegments. Der Formparamter 1 erzeugt eine <b>tangentiale Ogive</b>, die einen weichen Übergang zum Körperrohr hat, Werte kleiner 1 erzeugen eine <b>sekante Ogive<b>.\r
+ Shape.Ogive.desc2 = Eine ogive Spitze hat das Profil eines Kreissegments. Der Formparamter 1 erzeugt eine <b>tangentiale Ogive</b>, die einen weichen Übergang zum Körperrohr am hinteren Ende hat, Werte kleiner 1 erzeugen eine <b>sekante Ogive<b>.\r
+ Shape.Ellipsoid = Ellipsoid\r
+ Shape.Ellipsoid.desc1 = Eine ellipsoide Spitze hat ein Profil einer Halbellipse mit der einer Hauptachsenlänge von 2×<i>Länge</i> und <i>Durchmesser</i> \r
+ Shape.Ellipsoid.desc2 = An ellipsoidal transition has a profile of a half-ellipse with major axes of lengths 2×<i>Length</i> and <i>Diameter</i>. If the transition is not clipped, then the profile is extended at the center by the corresponding radius. \r
+ Shape.Powerseries = Power series\r
+ Shape.Powerseries.descA1 = A power series nose cone has a profile of <i>Radius</i> × (<i>x</i> / <i>Length</i>)<sup><i>k</i></sup> where <i>k</i> is the shape parameter. For <i>k</i>=0.5 this is a <b>\r
+ Shape.Powerseries.descA2 = -power</b> or <b>parabolic</b> nose cone, for <i>k</i>=0.75 a <b>\r
+ Shape.Powerseries.descA3 = -power</b>, and for <i>k</i>=1 a <b>conical</b> nose cone.\r
+ Shape.Powerseries.descB1 = A power series transition has a profile of <i>Radius</i> × (<i>x</i> / <i>Length</i>)<sup><i>k</i></sup> where <i>k</i> is the shape parameter. For <i>k</i>=0.5 the transition is <b>\r
+ Shape.Powerseries.descB2 = -power</b> or <b>parabolic</b>, for <i>k</i>=0.75 a <b>\r
+ Shape.Powerseries.descB3 = -power</b>, and for <i>k</i>=1 <b>conical</b>.\r
+ Shape.Parabolicseries = Parabolic series\r
+ Shape.Parabolicseries.desc1 = A parabolic series nose cone has a profile of a parabola. The shape parameter defines the segment of the parabola to utilize. The shape parameter 1.0 produces a <b>full parabola</b> which is tangent to the body tube, 0.75 produces a <b>3/4 parabola</b>, 0.5 procudes a <b>1/2 parabola</b> and 0 produces a <b>conical</b> nose cone.\r
+ Shape.Parabolicseries.desc2 = A parabolic series transition has a profile of a parabola. The shape parameter defines the segment of the parabola to utilize. The shape parameter 1.0 produces a <b>full parabola</b> which is tangent to the body tube at the aft end, 0.75 produces a <b>3/4 parabola</b>, 0.5 procudes a <b>1/2 parabola</b> and 0 produces a <b>conical</b> transition.\r
+ Shape.Haackseries = Haack series\r
+ Shape.Haackseries.desc1 = The Haack series nose cones are designed to minimize drag. The shape parameter 0 produces an <b>LD-Haack</b> or <b>Von Karman</b> nose cone, which minimizes drag for fixed length and diameter, while a value of 0.333 produces an <b>LV-Haack</b> nose cone, which minimizes drag for fixed length and volume.\r
+ Shape.Haackseries.desc2 = The Haack series <i>nose cones</i> are designed to minimize drag. These transition shapes are their equivalents, but do not necessarily produce optimal drag for transitions. The shape parameter 0 produces an <b>LD-Haack</b> or <b>Von Karman</b> shape, while a value of 0.333 produces an <b>LV-Haack</b> shape. \r
+ \r
+ \r
+ ! RocketComponent\r
+ RocketComponent.Position.TOP = oberes Ende der übergeordneten Komponente\r
+ RocketComponent.Position.MIDDLE = Mitte der übergeordneten Komponente\r
+ RocketComponent.Position.BOTTOM = unteres Ende der übergeordneten Komponente\r
+ RocketComponent.Position.AFTER = nach der übergeordneten Komponente\r
+ RocketComponent.Position.ABSOLUTE = zur Spitze\r
+ \r
+ ! LaunchLug\r
+ LaunchLug.Launchlug = Leitröhrchen\r
+ ! NoseCone\r
+ NoseCone.NoseCone = Spitze\r
+ ! Transition\r
+ Transition.Transition = Übergang\r
+ !Stage\r
+ Stage.Stage = Stufe\r
+ ! BodyTube\r
+ BodyTube.BodyTube = Körperrohr\r
+ ! TubeCoupler\r
+ TubeCoupler.TubeCoupler = Koppler\r
+ !InnerTube\r
+ InnerTube.InnerTube = Innenrohr\r
+ ! TrapezoidFinSet\r
+ TrapezoidFinSet.TrapezoidFinSet = Trapezoide Leitwerke\r
+ ! FreeformFinSet\r
+ FreeformFinSet.FreeformFinSet = Frei geformte Leitwerke\r
+ !MassComponent\r
+ MassComponent.MassComponent = Masse\r
+ ! Parachute\r
+ Parachute.Parachute = Fallschirm\r
+ ! ShockCord\r
+ ShockCord.ShockCord = Gummiseil\r
+ ! Bulkhead\r
+ Bulkhead.Bulkhead = Schott\r
+ \r
+ !Rocket\r
+ Rocket.motorCount.Nomotor = [Keine Motoren]\r
+ Rocket.compname.Rocket = Rakete\r
+ \r
+ !MotorMount\r
+ MotorMount.IgnitionEvent.AUTOMATIC = Automatisch (Start oder Ausstoßladung)\r
+ MotorMount.IgnitionEvent.LAUNCH = Start\r
+ MotorMount.IgnitionEvent.EJECTION_CHARGE = Erste Ausstoßladung der vorherigen Stufe\r
+ MotorMount.IgnitionEvent.BURNOUT = Erster Brennschluss der vorherigen Stufe\r
+ MotorMount.IgnitionEvent.NEVER = Nie\r
+ \r
+ !ComponentIcons \r
+ ComponentIcons.Nosecone = Spitze\r
+ ComponentIcons.Bodytube = Körperrohr\r
+ ComponentIcons.Transition = Übergang\r
+ ComponentIcons.Trapezoidalfinset = Trapezoide Leitwerke\r
+ ComponentIcons.Ellipticalfinset = Elliptische Leitwerke\r
+ ComponentIcons.Freeformfinset = Frei geformte Leitwerke\r
+ ComponentIcons.Launchlug = Leitröhrchen\r
+ ComponentIcons.Innertube = Innenrohr\r
+ ComponentIcons.Tubecoupler = Koppler\r
+ ComponentIcons.Centeringring = Zentrierring\r
+ ComponentIcons.Bulkhead = Schott\r
+ ComponentIcons.Engineblock = Motorhalterung\r
+ ComponentIcons.Parachute = Fallschirm\r
+ ComponentIcons.Streamer = Strömer\r
+ ComponentIcons.Shockcord = Gummiseil\r
+ ComponentIcons.Masscomponent = Masse\r
+ ComponentIcons.disabled = (deaktiviert)\r
+ \r
+ ! StageAction\r
+ StageAction.Stage = Stufe\r
+ \r
+ ! RecoveryDevice\r
+ RecoveryDevice.DeployEvent.LAUNCH = Start (plus NN Sekunden)\r
+ RecoveryDevice.DeployEvent.EJECTION = Erste Ausstoßladung dieser Stufe\r
+ RecoveryDevice.DeployEvent.APOGEE = Apogäum\r
+ RecoveryDevice.DeployEvent.ALTITUDE = Spezifische Höhe während der Landephase\r
+ RecoveryDevice.DeployEvent.NEVER = Nie\r
+ \r
+ ! FlightEvent\r
+ FlightEvent.Type.LAUNCH = Start\r
+ FlightEvent.Type.IGNITION = Motorzündung\r
+ FlightEvent.Type.LIFTOFF = Abheben\r
+ FlightEvent.Type.LAUNCHROD = Verlassen der Startrampe\r
+ FlightEvent.Type.BURNOUT = Motorbrennschluss\r
+ FlightEvent.Type.EJECTION_CHARGE = Ausstoßladung\r
+ FlightEvent.Type.STAGE_SEPARATION = Stufentrennung\r
+ FlightEvent.Type.APOGEE = Apogäum\r
+ FlightEvent.Type.RECOVERY_DEVICE_DEPLOYMENT = Auslösung des Bergungssystems\r
+ FlightEvent.Type.GROUND_HIT = Landung\r
+ FlightEvent.Type.SIMULATION_END = Ende der Simulation\r
+ FlightEvent.Type.ALTITUDE = Höhenänderung\r
+ \r
+ ! ThrustCurveMotorColumns\r
+ TCurveMotorCol.MANUFACTURER = Hersteller\r
+ TCurveMotorCol.DESIGNATION = Bezeichnung\r
+ TCurveMotorCol.TYPE = Typ\r
+ TCurveMotorCol.DIAMETER = Durchmesser\r
+ TCurveMotorCol.LENGTH = Länge\r
+ \r
+ ! RocketInfo\r
+ RocketInfo.lengthLine.Length = Länge\r
+ RocketInfo.lengthLine.maxdiameter = , max. Durchmesser\r
+ RocketInfo.massText1 = Masse mit Motoren\r
+ RocketInfo.massText2 = Masse ohne Motoren\r
+ RocketInfo.at = bei M=\r
+ RocketInfo.cgText = CG:\r
+ RocketInfo.cpText = CP:\r
+ RocketInfo.stabText = Stabilität:\r
+ RocketInfo.Warning = Warnung:\r
+ RocketInfo.Calculating = Berechne...\r
+ RocketInfo.Apogee = Apogäum:\r
+ RocketInfo.Maxvelocity = max. Geschwindigkeit:\r
+ RocketInfo.Maxacceleration = max. Beschleunigung:\r
+ RocketInfo.apogeeValue = N/A\r
+ RocketInfo.Mach = (Mach\r
+ RocketInfo.velocityValue = N/A\r
+ RocketInfo.accelerationValue = N/A\r
+ \r
+ ! FinSet\r
+ FinSet.CrossSection.SQUARE = Quadrat\r
+ FinSet.CrossSection.ROUNDED = Abgerundet\r
+ FinSet.CrossSection.AIRFOIL = Tragfläche\r
+ FinSet.TabRelativePosition.FRONT = Root chord leading edge\r
+ FinSet.TabRelativePosition.CENTER = Root chord midpoint\r
+ FinSet.TabRelativePosition.END = Root chord trailing edge\r
+ \r
+ ! FlightDataType\r
+ FlightDataType.TYPE_TIME = Zeit\r
+ FlightDataType.TYPE_ALTITUDE = Höhe\r
+ FlightDataType.TYPE_VELOCITY_Z = Vertikalgeschwindigkeit\r
+ FlightDataType.TYPE_ACCELERATION_Z = Vertikalbeschleunigung\r
+ FlightDataType.TYPE_VELOCITY_TOTAL = Gesamtgeschwindigkeit\r
+ FlightDataType.TYPE_ACCELERATION_TOTAL = Gesamtbeschleunigung\r
+ FlightDataType.TYPE_POSITION_X = Position upwind\r
+ FlightDataType.TYPE_POSITION_Y = Position parallel to wind\r
+ FlightDataType.TYPE_POSITION_XY = Lateral distance\r
+ FlightDataType.TYPE_POSITION_DIRECTION = Lateral direction\r
+ FlightDataType.TYPE_VELOCITY_XY = Lateral velocity\r
+ FlightDataType.TYPE_ACCELERATION_XY = Lateral acceleration\r
+ FlightDataType.TYPE_AOA = Angriffswinkel\r
+ FlightDataType.TYPE_ROLL_RATE = Rollrate\r
+ FlightDataType.TYPE_PITCH_RATE = Nickrate\r
+ FlightDataType.TYPE_YAW_RATE = Gierrate\r
+ FlightDataType.TYPE_MASS = Masse\r
+ FlightDataType.TYPE_LONGITUDINAL_INERTIA = Longitudinal moment of inertia\r
+ FlightDataType.TYPE_ROTATIONAL_INERTIA = Rotational moment of inertia\r
+ FlightDataType.TYPE_CP_LOCATION = Position vom CP\r
+ FlightDataType.TYPE_CG_LOCATION = Position vom CG\r
+ FlightDataType.TYPE_STABILITY = Stabilität in Kalibern\r
+ FlightDataType.TYPE_MACH_NUMBER = Machzahl\r
+ FlightDataType.TYPE_REYNOLDS_NUMBER = Reynoldszahl\r
+ FlightDataType.TYPE_THRUST_FORCE = Schub\r
+ FlightDataType.TYPE_DRAG_FORCE = Luftwiderstandskraft\r
+ FlightDataType.TYPE_DRAG_COEFF = Luftwiderstandskoeffizient\r
+ FlightDataType.TYPE_AXIAL_DRAG_COEFF = Axial drag coefficient\r
+ FlightDataType.TYPE_FRICTION_DRAG_COEFF = Reibungskoeffizient\r
+ FlightDataType.TYPE_PRESSURE_DRAG_COEFF = Pressure drag coefficient\r
+ FlightDataType.TYPE_BASE_DRAG_COEFF = Base drag coefficient\r
+ FlightDataType.TYPE_NORMAL_FORCE_COEFF = Normal force coefficient\r
+ FlightDataType.TYPE_PITCH_MOMENT_COEFF = Pitch moment coefficient\r
+ FlightDataType.TYPE_YAW_MOMENT_COEFF = Yaw moment coefficient\r
+ FlightDataType.TYPE_SIDE_FORCE_COEFF = Side force coefficient\r
+ FlightDataType.TYPE_ROLL_MOMENT_COEFF = Roll moment coefficient\r
+ FlightDataType.TYPE_ROLL_FORCING_COEFF = Roll forcing coefficient\r
+ FlightDataType.TYPE_ROLL_DAMPING_COEFF = Roll damping coefficient\r
+ FlightDataType.TYPE_PITCH_DAMPING_MOMENT_COEFF = Pitch damping coefficient\r
+ FlightDataType.TYPE_YAW_DAMPING_MOMENT_COEFF = Yaw damping coefficient\r
+ FlightDataType.TYPE_REFERENCE_LENGTH = Referenzlänge\r
+ FlightDataType.TYPE_REFERENCE_AREA = Referenzfläche\r
+ FlightDataType.TYPE_ORIENTATION_THETA = Vertical orientation (zenith)\r
+ FlightDataType.TYPE_ORIENTATION_PHI = Lateral orientation (azimuth)\r
+ FlightDataType.TYPE_WIND_VELOCITY = Windgeschwindigkeit\r
+ FlightDataType.TYPE_AIR_TEMPERATURE = Lufttemperatur\r
+ FlightDataType.TYPE_AIR_PRESSURE = Luftdruck\r
+ FlightDataType.TYPE_SPEED_OF_SOUND = Schallgeschwindigkeit\r
+ FlightDataType.TYPE_TIME_STEP = Simulationszeitschritt\r
+ FlightDataType.TYPE_COMPUTATION_TIME = Berechnnungszeit\r
+ \r
+ ! PlotConfiguration\r
+ PlotConfiguration.Verticalmotion = Vertikale Bewegung über Zeit\r
+ PlotConfiguration.Totalmotion = Gesamte Bewegung über Zeit\r
+ PlotConfiguration.Flightside = Flight side profile\r
+ PlotConfiguration.Stability = Stabilität über Zeit\r
+ PlotConfiguration.Dragcoef = Drag coefficients vs. Mach number\r
+ PlotConfiguration.Rollcharacteristics = Roll characteristics\r
+ PlotConfiguration.Angleofattack = Angle of attack and orientation vs. time\r
+ PlotConfiguration.Simulationtime = Simulationszeitschritt und Berechnungszeit\r
+ \r
+ ! Warning\r
+ Warning.LargeAOA.str1 = Large angle of attack encountered.\r
+ Warning.LargeAOA.str2 = Large angle of attack encountered (\r
+ Warning.DISCONTINUITY = Unstetigkeit im Raketendurchmesser\r
+ Warning.THICK_FIN = Dicke Leitwerke können nicht präzise modelliert werden.\r
+ Warning.JAGGED_EDGED_FIN = Gezackte Ecken in Leitwerken können unpräzise Ergebnisse liefern.\r
+ Warning.LISTENERS_AFFECTED = Simulationsempfänger haben die Simulation beeinflusst.\r
+ Warning.RECOVERY_DEPLOYMENT_WHILE_BURNING = Bergungssystem wurde ausgelöst während der Motor noch gebrannt hat.\r
+ Warning.FILE_INVALID_PARAMETER = Ignoriere ungültigen Parameter.\r
--- /dev/null
-compaddbuttons.Bodytube = Tubo del fuselaje
+ #
+ # Spanish base translation file
+ # translations provided by Tripoli Spain
+ #
+ # Should you need to add new logical keys here is the proposed method
+ #
+ # className.ComponantType.componantName
+ #
+
+
+
+ ! Set to the name of the current translation file (used for debugging purposes)
+ debug.currentFile = messages_es.properties
+
+ ! RocketActions
+ RocketActions.checkbox.Donotaskmeagain = No preguntarme nuevamente
+ RocketActions.lbl.Youcanchangedefop = Puede modificar la operación por defecto con sus preferencias
+ RocketActions.showConfirmDialog.lbl1 = ¿Borrar las simulaciones seleccionadas?
+ RocketActions.showConfirmDialog.lbl2 = <html><i>Esta operación no puede deshacerse.</i>
+ RocketActions.showConfirmDialog.title = Borrar simulaciones
+ RocketActions.DelCompAct.Delete = Borrar
+ RocketActions.DelCompAct.ttip.Delete = Borrar el componente seleccionado
+ RocketActions.DelSimuAct.Delete = Borrar
+ RocketActions.DelSimuAct.ttip.Delete = Borrar la simulación seleccionada
+ RocketActions.DelAct.Delete = Borrar
+ RocketActions.DelAct.ttip.Delete = Borrar el componente o simulación, seleccionado
+ RocketActions.CutAction.Cut = Cortar
+ RocketActions.CutAction.ttip.Cut = Cortar este componente o simulación y copiarlo a la libreta de notas y quitarlo de este diseño
+ RocketActions.CopyAct.Copy = Copiar
+ RocketActions.CopyAct.ttip.Copy = Copiar este componente (y subcomponentes) a la libreta de notas
+ RocketActions.PasteAct.Paste = Pegar
+ RocketActions.PasteAct.ttip.Paste = Pegar el componente o simulación de la libreta de notas al diseño.
+ RocketActions.EditAct.Edit = Mostrar
+ RocketActions.EditAct.ttip.Edit = Mostrar el componente seleccionado
+ RocketActions.NewStageAct.Newstage = Nueva etapa
+ RocketActions.NewStageAct.ttip.Newstage = Añadir una nueva etapa al diseño del cohete
+ RocketActions.ActBoosterstage = Etapa booster
+ RocketActions.MoveUpAct.Moveup = Mover hacia arriba
+ RocketActions.MoveUpAct.ttip.Moveup = Mover este componente hacia arriba
+ RocketActions.MoveDownAct.Movedown = Mover hacia abajo
+ RocketActions.MoveDownAct.ttip.Movedown = Mover este componente hacia abajo
+
+ ! RocketPanel
+ RocketPanel.FigTypeAct.Sideview = Vista lateral
+ RocketPanel.FigTypeAct.ttip.Sideview = Vista lateral
+ RocketPanel.FigTypeAct.Backview = Vista desde atrás
+ RocketPanel.FigTypeAct.ttip.Backview = Vista trasera
+ RocketPanel.lbl.Motorcfg = Configuración del motor
+ RocketPanel.lbl.infoMessage = <html>Click para seleccionar Mayúsculas+click para seleccionar otro Doble-click to mostrar Click+arrastrar para mover
+
+
+ ! BasicFrame
+ BasicFrame.SimpleFileFilter1 = Todos los diseños de cohete(*.ork; *.rkt)
+ BasicFrame.SimpleFileFilter2 = Diseños OpenRocket (*.ork)
+ BasicFrame.SimpleFileFilter3 = Diseños RockSim (*.rkt)
+ BasicFrame.tab.Rocketdesign = Diseños de cohete
+ BasicFrame.tab.Flightsim = Simulaciones de vuelo
+ BasicFrame.title.Addnewcomp = Añadir un nuevo componente
+ BasicFrame.item.Openrocketdesign = Abrir un diseño de cohete
+ BasicFrame.item.Openexamplerocketdesign = Abrir un ejemplo de diseño de cohete
+ BasicFrame.item.SavecurRocketdesign = Guardar el diseño actual
+ BasicFrame.item.SavecurRocketdesnewfile = Guardar el diseño actual como un nuevo documento
+ BasicFrame.item.Printpart = Imprimir un listado de componentes y un esquema de aleta
+ BasicFrame.item.Closedesign = Cerrar el diseño actual
+ BasicFrame.item.Quitprogram = Abandonar el programa
+ BasicFrame.menu.Rocketedt = Mostrando el cohete
+ BasicFrame.dlg.lbl1 = Diseño
+ BasicFrame.dlg.lbl2 = No se ha guardado
+ BasicFrame.dlg.lbl3 = ¿Quiere guardarlo?
+ BasicFrame.dlg.title = Diseño no guardado
+ BasicFrame.StageName.Sustainer = Cuerpo principal
+ BasicFrame.WarningDialog.txt1 = Mientras se abría, se encontraron los siguiente problemas
+ BasicFrame.WarningDialog.txt2 = Algunas configuraciones de diseño no pudieron cargarse correctamente.
+ BasicFrame.WarningDialog.title = Precauciones mientras se abre el archivo
+
+ ! Labels used in buttons of dialog windows
+ button.ok = OK
+ button.cancel = Borrar
+ button.close = Cerrar
+
+ ! Common labels used in buttons of dialog windows
+ dlg.but.ok = OK
+ dlg.but.cancel = Borrar
+ dlg.but.close = Cerrar
+
+ ! About Dialog
+ about.dlg.but.close = Cerrar
+ about.dlg.lbl.translation = Traducido al español por Tripoli Spain
+ about.dlg.lbl.transwebsite = http://www.tripoli-spain.org/
+
+ ! Bug Report dialog
+ bugreport.dlg.title = Report de error
+ bugreport.dlg.but.Sendbugreport = Enviar un report de error
+ bugreport.dlg.but.Sendbugreport.Ttip = Enviar automáticamente un report de error a los creadores de Open Rocket
+ bugreport.dlg.successmsg1 = Report de error enviado con éxito
+ bugreport.dlg.successmsg2 = Gracias por ayudar a mejorar Open Rocket !
+ bugreport.dlg.successmsg3 = Report de error enviado
+ bugreport.dlg.connectedInternet = <html>Si está conectado a Internet, haga simplemente Clik <em>Enviar report de errores</em>.
+ bugreport.dlg.otherwise = De otro modo, envíe el texto debajo a la dirección:
+ bugreport.lbl.Theinformation = La información de arriba puede incluirse en un report de error público. Asegúrese de que no contiene ninguna información que usted no quiere hacer pública.
+ bugreport.dlg.failedmsg1 = OpenRocket fue incapaz de enviar el report de error:
+ bugreport.dlg.failedmsg2 = Por favor envíe manualmente el report a
+ bugreport.dlg.failedmsg3 = Error enviando el report
+ bugreport.reportDialog.txt = <html><b>Puede enviar un report de error en OpenRocket rellenando el formulario de abajo y enviándolo.</b><br>También puede reportar errores e incluir adjuntos sobre el proyecto de Web.
+ bugreport.reportDialog.txt2 = <html><b>Por favor incluya una breve descripción de lo que estaba haciendo cuando ocurrió la excepción.</b>
+
+
+ ! Debug log dialog
+ debuglogdlg.but.clear = Limpiar
+ debuglogdlg.OpenRocketdebuglog = Fichero de error de Open Rocket
+ debuglogdlg.Displayloglines = Mostrar líneas de registro:
+ debuglogdlg.Follow = Seguir
+ debuglogdlg.col.Time = Hora
+ debuglogdlg.col.Level = Nivel
+ debuglogdlg.col.Location = Situación
+ debuglogdlg.col.Message = Mensaje
+ debuglogdlg.lbl.Loglinenbr = Número de línea de registro:
+ debuglogdlg.lbl.Time = Hora:
+ debuglogdlg.lbl.Level = Nivel:
+
+
+ ! Edit Motor configuration dialog
+ edtmotorconfdlg.but.removemotor = Quitar motor
+ edtmotorconfdlg.but.Selectmotor = Seleccionar motor
+ edtmotorconfdlg.but.Removeconfiguration = Quitar configuración
+ edtmotorconfdlg.but.Newconfiguration = Nueva configuración
+ edtmotorconfdlg.lbl.Motormounts = <html><b>Porta motor:</b>
+ edtmotorconfdlg.title.Editmotorconf = Mostrar las configuraciones de motor
+ edtmotorconfdlg.selectcomp = <html>Seleccionar que componentes tienen la función de porta motor:
+ edtmotorconfdlg.lbl.Motorconfig = <html><b>Configuraciones del motor:</b>
+ edtmotorconfdlg.lbl.Configname = Nombre de la configuración:
+ edtmotorconfdlg.lbl.Leavenamedefault = Dejar vacío el nombre por defecto.
+
+ ! Example design dialog
+ exdesigndlg.but.open = Abrir
+ exdesigndlg.lbl.Selectexample = Al abrir seleccione ejemplos de diseños:
+ exdesigndlg.lbl.Openexampledesign = Abra un diseño como ejemplo
+ exdesigndlg.lbl.Exampledesignsnotfound = Los ejemplos de diseño podrían no hallarse.
+ exdesigndlg.lbl.Examplesnotfound = Ejemplos no hallados
+
+ ! Print panel dialog
+ printdlg.but.saveaspdf = Guardar como PDF
+ printdlg.but.preview = Previsualizar
+ printdlg.but.settings = Configuraciones
+
+ ! Material edit panel
+ matedtpan.but.new = Nuevo
+ matedtpan.but.edit = Editar
+ matedtpan.but.delete = Borrar
+ matedtpan.but.revertall = Invertir todo
+ matedtpan.col.Material = Material
+ matedtpan.col.Type = Tipo
+ matedtpan.col.Density = Densidad
+ matedtpan.col.but.ttip.New = Añadir un nuevo material
+ matedtpan.title.Addcustmaterial = Añadir un material hecho en casa
+ matedtpan.but.ttip.edit = Editar un material existente
+ matedtpan.title.Editmaterial = Editar material
+ matedtpan.title2.Editmaterial = Los materiales construidos no se pueden modificar
+ matedtpan.but.ttip.delete = Borrar un material pre definido
+ matedtpan.but.ttip.revertall = Borrar todos los materiales predefinidos
+ matedtpan.title.Deletealluser-defined = ¿Borrar todos los materiales predefinidos?
+ matedtpan.title.Revertall = ¿Revertir todo?
+ matedtpan.lbl.edtmaterials = <html><i>Editar materiales que no afectaran los diseños existentes.</i>
+
+ !MaterialModel
+ MaterialModel.title.Material = Material
+ MaterialModel.title.Defcustmat = Definir material hecho en casa
+
+
+ ! Preference dialog
+ pref.dlg.but.add = Agregar
+ pref.dlg.but.reset = Reiniciar
+ pref.dlg.but.checknow = Comprobar ahora
+ pref.dlg.but.defaultmetric = Sistema Métrico por defecto
+ pref.dlg.but.defaultimperial = Sistema Imperial por defecto
+ pref.dlg.title.Preferences = Preferencias
+ pref.dlg.tab.Units = Unidades
+ pref.dlg.tab.Defaultunits = Unidades por defecto
+ pref.dlg.tab.Materials = Materiales
+ pref.dlg.tab.Custommaterials = Materiales hechos en casa
+ pref.dlg.tab.Options = Opciones
+ pref.dlg.tab.Miscellaneousoptions = Otras opciones
+ pref.dlg.lbl.Positiontoinsert = Posición para introducir nuevos componentes del fuselaje:
+ pref.dlg.lbl.Confirmdeletion = Confirmar borrar simulaciones:
+ pref.dlg.lbl.User-definedthrust = Curvas de potencia definidas por el usuario:
+ pref.dlg.Allthrustcurvefiles = Todos los ficheros de curvas de potencia (*.eng; *.rse; *.zip; directorios)
+ pref.dlg.RASPfiles = Ficheros de motor RASP (*.eng)
+ pref.dlg.RockSimfiles = Ficheros de motor Rocksim (*.rse)
+ pref.dlg.ZIParchives = Archivos ZIP (*.zip)
+ pref.dlg.checkbox.Checkupdates = Comprobar actualizaciones de software al arrancar
+ pref.dlg.ttip.Checkupdatesnow = Comprobar actualizaciones de software ahora
+ pref.dlg.lbl.Selectprefunits = Seleccione sus unidades preferidas:
+ pref.dlg.lbl.Rocketdimensions = Dimensiones del cohete:
+ pref.dlg.lbl.Linedensity = Densidad:
+ pref.dlg.lbl.Motordimensions = Dimensiones del motor:
+ pref.dlg.lbl.Surfacedensity = Densidad superficial:
+ pref.dlg.lbl.Distance = Distancia:
+ pref.dlg.lbl.Bulkdensity = Densidad media:
+ pref.dlg.lbl.Velocity = Velocidad:
+ pref.dlg.lbl.Surfaceroughness = Rugosidad de la superficie:
+ pref.dlg.lbl.Acceleration = Aceleración:
+ pref.dlg.lbl.Area = Área:
+ pref.dlg.lbl.Mass = Masa:
+ pref.dlg.lbl.Angle = Ángulo:
+ pref.dlg.lbl.Force = Fuerza:
+ pref.dlg.lbl.Rollrate = Valor de giro:
+ pref.dlg.lbl.Totalimpulse = Impulso total:
+ pref.dlg.lbl.Temperature = Temperatura:
+ pref.dlg.lbl.Momentofinertia = Momento de inercia:
+ pref.dlg.lbl.Pressure = Presión:
+ pref.dlg.lbl.Stability = Estabilidad:
+ pref.dlg.lbl.effect1 = Los cambios tendrán efecto cuando se abra nuevamente una ventana.
+ pref.dlg.lbl.Checkingupdates = Comprobando actualizaciones...
+ pref.dlg.lbl.msg1 = Ocurrió un error mientras se comunicaba con el servidor.
+ pref.dlg.lbl.msg2 = Incapaz de recuperar la información de las actualizaciones
+ pref.dlg.lbl.msg3 = Usted está utilizando la última versión de Open Rocket.
+ pref.dlg.lbl.msg4 = No hay actualizaciones disponibles
+ pref.dlg.PrefChoiseSelector1 = Pregunte siempre
+ pref.dlg.PrefChoiseSelector2 = Insertar en medio
+ pref.dlg.PrefChoiseSelector3 = Añadir al final
+ pref.dlg.PrefBooleanSelector1 = Borrar
+ pref.dlg.PrefBooleanSelector2 = Confirmar
+ pref.dlg.Add = Añadir
+ pref.dlg.DescriptionArea.Adddirectories = Añadir directorios, RASP archivos de motor (*.eng), RockSim archivos de motor (*.rse) o ZIP archivos separados por punto y coma (;) para cargar curvas de empuje externas. Los cambios tendrán efecto la próxima vez que abra OpenRocket.
+
+
+ ! Simulation edit dialog
+ simedtdlg.but.runsimulation = Lanzar la simulación
+ simedtdlg.but.resettodefault = Restaurar por defecto
+ simedtdlg.but.add = Agregar
+ simedtdlg.but.remove = Quitar
+ simedtdlg.title.Editsim = Mostrar la simulación
+ simedtdlg.lbl.Simname = Nombre de la simulación
+ simedtdlg.tab.Launchcond = Condiciones del lanzamiento
+ simedtdlg.tab.Simopt = Opciones de simulación
+ simedtdlg.tab.Plotdata = Datos del plotter
+ simedtdlg.tab.Exportdata = Exportar datos
+ simedtdlg.lbl.Motorcfg = Configuración del motor:
+ simedtdlg.lbl.ttip.Motorcfg = Seleccionar la configuración del motor a usar
+ simedtdlg.combo.ttip.motorconf = Seleccionar la configuración del motor a usar
+ simedtdlg.lbl.Wind = Viento
+ simedtdlg.lbl.Averwindspeed = Velocidad media del viento
+ simedtdlg.lbl.ttip.Averwindspeed = Velocidad media del viento en relación al suelo
+ simedtdlg.lbl.Stddeviation = Desviación standard
+ simedtdlg.lbl.ttip.Stddeviation = <html>Desviación standard de la velocidad del viento.<br>La velocidad del viento se encuentra dentro del doble de la desviación media en un 95% del tiempo.
+ simedtdlg.lbl.Turbulenceintensity = Intensidad de la turbulencia
+ simedtdlg.lbl.ttip.Turbulenceintensity1 = <html>La intensidad de la turbulencia es la desviación standard dividida por la velocidad media del viento.<br>
+ simedtdlg.lbl.ttip.Turbulenceintensity2 = Valores típicos en el campo
+ simedtdlg.lbl.ttip.Turbulenceintensity3 = a
+ simedtdlg.border.Atmoscond = Condiciones atmosféricas
+ simedtdlg.checkbox.InterStdAtmosphere = Usa los patrones de Atmosfera Internacional
+ simedtdlg.checkbox.ttip.InterStdAtmosphere1 = <html>Seleccionar para usar el modelo de la International Standard Atmosphere model.<br>Este modelo tiene una temperatura de
+ simedtdlg.checkbox.ttip.InterStdAtmosphere2 = Y una presión de
+ simedtdlg.checkbox.ttip.InterStdAtmosphere3 = A nivel del mar.
+ simedtdlg.lbl.Temperature = Temperatura:
+ simedtdlg.lbl.ttip.Temperature = Temperatura en el lugar del lanzamiento.
+ simedtdlg.lbl.Pressure = Presión:
+ simedtdlg.lbl.ttip.Pressure = Presión atmosférica en el lugar del lanzamiento
+ simedtdlg.lbl.Launchsite = Lugar del lanzamiento
+ simedtdlg.lbl.Latitude = Latitud:
+ simedtdlg.lbl.ttip.Latitude = <html>La latitud del lugar de lanzamiento afecta la atracción terrestre.<br>Los valores positivos se dan en el hemisferio Norte, los negativos en el hemisferio Sur.
+ simedtdlg.lbl.Altitude = Altitud:
+ simedtdlg.lbl.ttip.Altitude = <html>Los valores por encima del nivel del mar.<br>Esto afecta la posición del modelo atmosférico.
+ simedtdlg.border.Launchrod = Varilla para lanzar
+ simedtdlg.lbl.Length = Longitud:
+ simedtdlg.lbl.ttip.Length = Longitud de la varilla de lanzamiento
+ simedtdlg.lbl.Angle = Ángulo:
+ simedtdlg.lbl.ttip.Angle = El ángulo de la varilla de lanzamiento con la vertical.
+ simedtdlg.lbl.Direction = Dirección:
+ simedtdlg.lbl.ttip.Direction1 = <html>Dirección de la varilla de lanzamiento relativa al viento.<br>
+ simedtdlg.lbl.ttip.Direction2 = Hacia el viento
+ simedtdlg.lbl.ttip.Direction3 = A favor del viento
+ simedtdlg.border.Simopt = Opciones del simulador
+ simedtdlg.lbl.Calcmethod = Método de cálculo
+ simedtdlg.lbl.ttip.Calcmethod = <html>El método Barrowman extendido calcula las fuerzas aerodinámicas <br>Para las ecuaciones Barrowman extendidas para recibir mas componentes.
+ simedtdlg.lbl.ExtBarrowman = Barrowman Extendido
+ simedtdlg.lbl.Simmethod = Método de simulación:
+ simedtdlg.lbl.ttip.Simmethod1 = <html>El simulador de seis-grados-de-libertad permite al cohete una total libertad durante el vuelo.<br>
+ simedtdlg.lbl.ttip.Simmethod2 = La integración mejora usando un 4<sup>th</sup> ordenar Runge-Kutta 4 integración numérica.
+ simedtdlg.lbl.Timestep = Duración de la etapa
+ simedtdlg.lbl.ttip.Timestep1 = <html>Tiempo entre etapas de simulación.<br>Un tiempo mas corto de etapa origina una simulación mas exacta pero mas lenta.<br>
+ simedtdlg.lbl.ttip.Timestep2 = The 4<sup>th</sup> ordenar el método de simulación es bastante preciso con un tiempo de etapa de
+ simedtdlg.but.ttip.resettodefault = Restituir el tiempo de etapa a su valor por defecto (
+ simedtdlg.border.Simlist = Oyentes del simulador
+ simedtdlg.txt.longA1 = <html><i>Oyentes del simulador</i> es una prestación avanzada que permite al código escrito del usuario oír e interaccionar con la simulación.
+ simedtdlg.txt.longA2 = Para detalles de esta prestación de los oyentes, vea la documentación técnica del Open Rocket.
+ simedtdlg.lbl.Curlist = Oyentes actuales
+ simedtdlg.lbl.Addsimlist = Añadir la audición del simulador
+ simedtdlg.lbl.Noflightdata = No hay datos disponibles del vuelo.
+ simedtdlg.lbl.runsimfirst = Por favor accione la simulación primero.
+ simedtdlg.chart.Simflight = Vuelo simulado
+ simedtdlg.dlg.Simres = Resultados de la simulación
+ simedtdlg.IntensityDesc.None = Ninguno
+ simedtdlg.IntensityDesc.Verylow = Muy pesado
+ simedtdlg.IntensityDesc.Low = Pesado
+ simedtdlg.IntensityDesc.Medium = Medio
+ simedtdlg.IntensityDesc.High = Alto
+ simedtdlg.IntensityDesc.Veryhigh = Muy alto
+ simedtdlg.IntensityDesc.Extreme = Extremo
+
+
+
+ ! Simulation Panel
+ simpanel.but.newsimulation = Nueva simulación
+ simpanel.but.editsimulation = Editar la simulación
+ simpanel.but.runsimulations = Lanzar las simulaciones
+ simpanel.but.deletesimulations = Borrar las simulaciones
+ simpanel.but.plotexport = Exportar / Plot
+ simpanel.but.ttip.newsimulation = Añadir una nueva simulación
+ simpanel.but.ttip.editsim = Mostrar la simulación seleccionada
+ simpanel.but.ttip.runsimu = Accionar de nuevo las simulaciones seleccionadas
+ simpanel.but.ttip.deletesim = Borrar las simulaciones seleccionadas
+ simpanel.checkbox.donotask = No preguntarme de nuevo
+ simpanel.lbl.defpref = Puede cambiar la operación por defecto por las preferencias
+ simpanel.dlg.lbl.DeleteSim1 = ¿Borrar las simulaciones seleccionadas?
+ simpanel.dlg.lbl.DeleteSim2 = <html><i>Esta operación no puede deshacerse.</i>
+ simpanel.dlg.lbl.DeleteSim3 = Borrar las simulaciones
+ simpanel.col.Name = Nombre
+ simpanel.col.Motors = Motores
+ simpanel.col.Apogee = Apogeo
+ simpanel.col.Maxvelocity = Velocidad máxima
+ simpanel.col.Maxacceleration = Aceleración máxima
+ simpanel.col.Timetoapogee = Tiempo hasta el apogeo
+ simpanel.col.Flighttime = Duración del vuelo
+ simpanel.col.Groundhitvelocity = Velocidad de llegada a tierra
+
+ ! SimulationRunDialog
+ SimuRunDlg.title.RunSim = Accionando simulaciones
+ SimuRunDlg.lbl.Running = Accionando
+ SimuRunDlg.lbl.Simutime = Duración de la simulación:
+ SimuRunDlg.lbl.Altitude = Altitud:
+ SimuRunDlg.lbl.Velocity = Velocidad:
+ SimuRunDlg.msg.Unabletosim = Incapaz de simular:
+ SimuRunDlg.msg.errorOccurred = Ha ocurrido un error durante la simulación:
+ SimuRunDlg.msg.AnException1 = Ha ocurrido una excepción durante la simulación:
+ SimuRunDlg.msg.AnException2 = Por favor anote esto debajo como un error con todos los detalles.
+ SimuRunDlg.msg.AssertionError1 = Se ha producido un error informático durante la simulación.
+ SimuRunDlg.msg.AssertionError2 = Por favor anote esto debajo como un error con todos los detalles.
+ SimuRunDlg.msg.unknownerror1 = Se ha detectado un error desconocido durante la simulación.
+ SimuRunDlg.msg.unknownerror2 = El programa puede ser inestable, Guarde todos sus diseños y reinicie OpenRocket ahora!
+
+
+
+ ! SimulationExportPanel
+ SimExpPan.desc = Documentos separados por comas (*.csv)
+ SimExpPan.border.Vartoexport = Variables para exportar
+ SimExpPan.but.Selectall = Seleccione todo
+ SimExpPan.but.Selectnone = No seleccione nada
+ SimExpPan.border.Fieldsep = Separador de campo
+ SimExpPan.lbl.Fieldsepstr = Barra separador de campo
+ SimExpPan.lbl.longA1 = <html>Las barras para separar campos en el documento exportado.<br>
+ SimExpPan.lbl.longA2 = Use ',' Para valores separados por comas (CSV) file.
+ SimExpPan.checkbox.Includesimudesc = Incluye descripción de la simulación
+ SimExpPan.checkbox.ttip.Includesimudesc = Incluye un comentario en el inicio del documento describiendo la simulación.
+ SimExpPan.border.Comments = Comentarios
+ SimExpPan.checkbox.Includefielddesc = Incluye descripciones de campo
+ SimExpPan.checkbox.ttip.Includefielddesc = Incluye una línea de comentario con las descripciones de las variables exportadas.
+ SimExpPan.checkbox.Incflightevents = Incluye los eventos del vuelo
+ SimExpPan.checkbox.ttip.Incflightevents = Incluye una línea de comentario para cada evento del vuelo
+ SimExpPan.lbl.Commentchar = Carácter de comentario
+ SimExpPan.lbl.ttip.Commentchar = La característica(as) que marcan una línea de comentario.
+ SimExpPan.but.Exporttofile = Exportar al documento ...
+ SimExpPan.Fileexists.desc1 = Archivo \"
+ SimExpPan.Fileexists.desc2 = \" existe. Sobrescribir?
+ SimExpPan.Fileexists.title = El archivo existe
+ SimExpPan.ExportingVar.desc1 = Exportando una variable fuera de
+ SimExpPan.ExportingVar.desc2 = Exportando
+ SimExpPan.ExportingVar.desc3 = variables fuera de
+ SimExpPan.Col.Variable = Variable
+ SimExpPan.Col.Unit = Unidad
+
+ ! MotorPlot
+ MotorPlot.title.Motorplot = Curva del motor
+ MotorPlot.but.Select = Seleccionar la configuración del motor a usar
+ MotorPlot.Chart.Motorthrustcurve = Curva de empuje del motor
+ MotorPlot.Chart.Time = Tiempo / s
+ MotorPlot.Chart.Thrust = Empuje / N
+ MotorPlot.txt.Designation = Designación:
+ MotorPlot.txt.Manufacturer = Fabricante:
+ MotorPlot.txt.Type = Tipo:
+ MotorPlot.txt.Delays = Retardos:
+ MotorPlot.txt.Comment = Comentario:\n
+
+
+
+ ! Simulation plot panel
+ simplotpanel.lbl.Presetplotconf = Pre configuración del Plot:
+ simplotpanel.lbl.Xaxistype = Tipo de eje X:
+ simplotpanel.lbl.Unit = Unidad:
+ simplotpanel.lbl.Yaxistypes = Tipo de eje Y:
+ simplotpanel.lbl.Flightevents = Eventos del vuelo:
+ simplotpanel.but.All = Todo
+ simplotpanel.but.None = Ninguno
+ simplotpanel.but.NewYaxisplottype = Nuevo tipo de Eje Y del Plot
+ simplotpanel.but.Plotflight = Curva del vuelo
+ simplotpanel.lbl.Axis = Ejes:
+ simplotpanel.but.ttip.Removethisplot = Borrar esta curva
+ simplotpanel.Desc = Los datos según orden de tiempo serán impresos en el eje X si no hay tiempo
+ simplotpanel.OptionPane.lbl1 = Se permiten un máximo de 15 impresiones
+ simplotpanel.OptionPane.lbl2 = No puede añadirse la curva
+ simplotpanel.AUTO_NAME = Auto
+ simplotpanel.LEFT_NAME = Izquierda
+ simplotpanel.RIGHT_NAME = Derecha
+ simplotpanel.CUSTOM = Casero
+
+ ! Component add buttons
+ compaddbuttons.Bodycompandfinsets = Componentes del fuselaje y aletas
+ compaddbuttons.Nosecone = Ojiva
-compaddbuttons.Launchlug = Guía en el fuselaje
++compaddbuttons.Bodytube = Tubo del\nfuselaje
+ compaddbuttons.Transition = Transición
+ compaddbuttons.Trapezoidal = Trapezoidal
+ compaddbuttons.Elliptical = Elíptico
+ compaddbuttons.Freeform = Forma libre
-compaddbuttons.Innertube = Tubo interior
++compaddbuttons.Launchlug = Guía en el\nfuselaje
+ compaddbuttons.Innercomponent = Componente interior
-compaddbuttons.Shockcord = Tirante de suspensión
++compaddbuttons.Innertube = Tubo\ninterior
+ compaddbuttons.Coupler = Acoplador
+ compaddbuttons.Centeringring = Arandela\nde centraje
+ compaddbuttons.Bulkhead = Cámara
+ compaddbuttons.Engineblock = Retén\nde motor
+ compaddbuttons.Massobjects = Objeto masa
+ compaddbuttons.Parachute = Paracaídas
+ compaddbuttons.Streamer = Banderola
-Databases.materials.Creape paper = Cr\u00eape Papel
++compaddbuttons.Shockcord = Tirante de\nsuspensión
+ compaddbuttons.Masscomponent = Componente\nmasa
+ compaddbuttons.Donotaskmeagain = No me pregunte de nuevo
+ compaddbuttons.Selectcomppos = Seleccionar la posición del componente
+ compaddbuttons.lbl.Youcanchange = Puede cambiar la operación con las preferencias por defecto
+ compaddbuttons.lbl.insertcomp = ¿Inserta el componente despues del actual o como último?
+ compaddbuttons.askPosition.Inserthere = Inserte aquí
+ compaddbuttons.askPosition.Addtotheend = Añadir al final
+ compaddbuttons.askPosition.Cancel = Borrar
+
+ ! Component Analysis Dialog
+ componentanalysisdlg.componentanalysis = Análisis del componente
+ componentanalysisdlg.lbl.winddir = Dirección del viento:
+ componentanalysisdlg.TitledBorder.warnings = Advertencias:
+ componentanalysisdlg.ToggleBut.worst = Peor
+ componentanalysisdlg.lbl.angleofattack = Ángulo de ataque:
+ componentanalysisdlg.lbl.machnumber = Número Mach:
+ componentanalysisdlg.lbl.rollrate = Valor de giro:
+ componentanalysisdlg.lbl.activestages = Etapas activas:
+ componentanalysisdlg.lbl.motorconf = Configuración del Motor:
+ componentanalysisdlg.TabStability.Col = Componente
+ componentanalysisdlg.TabStability = Estabilidad
+ componentanalysisdlg.TabStability.ttip = Información de Estabilidad
+ componentanalysisdlg.dragTableModel.Col.Component = Componente
+ componentanalysisdlg.dragTableModel.Col.Pressure = <html>Presión C<sub>D</sub>
+ componentanalysisdlg.dragTableModel.Col.Base = <html>Base C<sub>D</sub>
+ componentanalysisdlg.dragTableModel.Col.friction = <html>Rozamiento C<sub>D</sub>
+ componentanalysisdlg.dragTableModel.Col.total = <html>Total C<sub>D</sub>
+ componentanalysisdlg.dragTabchar = Características de rozamiento
+ componentanalysisdlg.dragTabchar.ttip = Características de rozamiento
+ componentanalysisdlg.rollTableModel.Col.component = Componente
+ componentanalysisdlg.rollTableModel.Col.rollforc = Coeficiente de giro
+ componentanalysisdlg.rollTableModel.Col.rolldamp = Coeficiente de corrección de giro
+ componentanalysisdlg.rollTableModel.Col.total = <html>Total C<sub>l</sub>
+ componentanalysisdlg.rollTableModel = Dinámica de giro
+ componentanalysisdlg.rollTableModel.ttip = Dinámica de giro
+ componentanalysisdlg.println.closingmethod = Llamado método de cierre:
+ componentanalysisdlg.println.settingnam = CONFIGURANDO VALORES NAN
+ componentanalysisdlg.lbl.reflenght = Longitud de referencia:
+ componentanalysisdlg.lbl.refarea = Área de referencia:
+ !componentanalysisdlg.But.close =Close
+
+ ! Custom Material dialog
+ custmatdlg.title.Custommaterial = Material hecho en casa
+ custmatdlg.lbl.Materialname = Nombre del material:
+ custmatdlg.lbl.Materialtype = Tipo de material:
+ custmatdlg.lbl.Materialdensity = Densidad del material:
+ custmatdlg.checkbox.Addmaterial = Agregar este material a la base de datos
+
+
+ ! Ring Component Config
+ ringcompcfg.OuterRadius = Radio exterior
+ ringcompcfg.Automatic = Automático
+ ringcompcfg.InnerRadius = Radio interior
+ ringcompcfg.Thickness = Espesor
+ ringcompcfg.Length = Longitud
+ ringcompcfg.Positionrelativeto = Posición relativa a:
+ ringcompcfg.plus = plus
+ ringcompcfg.PositionValue = Valor de posición
+ ringcompcfg.Radialdistance = Distancia radial:
+ ringcompcfg.Distancefrom = Distancia desde la línea central del cohete
+ ringcompcfg.Radialdirection = Dirección radial:
+ ringcompcfg.radialdirectionfrom = En dirección radial desde la línea central del cohete
+ ringcompcfg.but.Reset = Reiniciar
+ ringcompcfg.but.Resetcomponant = Resituar el componente a la línea central del cohete
+ ringcompcfg.EngineBlock.desc = <html>Un <b>retén motor</b> Impide que el motor se desplace hacia delante dentro del tubo porta motor.<br><br>Para añadir un motor, cree un <b>tubo de fuselaje</b> o <b>dentro del tubo</b> y desígnelo como portamotor en el <em>Motor</em> tab.
+ ringcompcfg.note.desc = Nota: Un tubo interior no afectará la aerodinámica del cohete salvo que esté situado fuera del fuselaje.
+
+
+ ! Body Tube Config
+ BodyTubecfg.lbl.Bodytubelength = Longitud del tubo del fuselaje:
+ BodyTubecfg.lbl.Outerdiameter = Diámetro exterior:
+ BodyTubecfg.lbl.Innerdiameter = Diámetro interior:
+ BodyTubecfg.lbl.Wallthickness = Espesor de la pared:
+ BodyTubecfg.tab.General = General
+ BodyTubecfg.tab.Generalproperties = Propiedades generales
+ BodyTubecfg.tab.Motor = Motor
+ BodyTubecfg.tab.Motormountconf = Configuración del porta motor
+ BodyTubecfg.checkbox.Automatic = Automático
+ BodyTubecfg.checkbox.Filled = Archivado
+
+ ! FinSetConfig
+ FinSetConfig.tab.Fintabs = Raíz de aleta
+ FinSetConfig.tab.Through-the-wall = Raíces de aleta a través de la pared
+ FinSetConfig.but.Converttofreeform = Convertir a forma libre
+ FinSetConfig.but.Converttofreeform.ttip = Convertir esta forma de aleta a una forma libre
+ FinSetConfig.Convertfinset = Convertir la configuración de aleta
+ FinSetConfig.but.Splitfins = Separar las aletas
+ FinSetConfig.but.Splitfins.ttip = Dividir la configuración de aleta en varias separadas
+ FinSetConfig.lbl.Through-the-wall = Raíces de aleta a través de la pared:
+ FinSetConfig.lbl.Tablength = Longitud de la raíz:
+ FinSetConfig.ttip.Tablength = La longitud de la raíz de aleta.
+ FinSetConfig.lbl.Tabheight = Altura de la raíz:
+ FinSetConfig.ttip.Tabheight = Envergadura en altura de la raíz de aleta.
+ FinSetConfig.lbl.Tabposition = Posición de la raíz:
+ FinSetConfig.ttip.Tabposition = Posición de la raíz de aleta.
+ FinSetConfig.lbl.relativeto = Relativo a
+
+ ! MotorDatabaseLoadingDialog
+ MotorDbLoadDlg.title = Cargando motores
+ MotorDbLoadDlg.Loadingmotors = Cargando motores...
+
+ ! RocketConfig
+ RocketCfg.lbl.Designname = Nombre del proyecto:
+ RocketCfg.lbl.Designer = Proyectista:
+ RocketCfg.lbl.Comments = Comentarios:
+ RocketCfg.lbl.Revisionhistory = Histórico de la revisión:
+ RocketCfg.lbl.Material = Material:
+
+ ! ShockCordConfig
+ ShockCordCfg.lbl.Shockcordlength = Longitud del tirante de suspensión
+
+ ! RocketComponentConfig
+ RocketCompCfg.lbl.Componentname = Nombre del componente:
+ RocketCompCfg.ttip.Thecomponentname = El nombre del componente.
+ RocketCompCfg.tab.Override = Elegir
+ RocketCompCfg.tab.MassandCGoverride = Elección de estimación de Masa y CG
+ RocketCompCfg.tab.Figure = Figura
+ RocketCompCfg.tab.Figstyleopt = Opciones de estilo de la figura
+ RocketCompCfg.tab.Comment = Comentarios
+ RocketCompCfg.tab.Specifyacomment = Especifique un comentario para el componente
+ RocketCompCfg.lbl.Mass = Masa:
+ RocketCompCfg.lbl.Componentmass = Masa del componente:
+ RocketCompCfg.lbl.overriddento = (Elegido para
+ RocketCompCfg.lbl.overriddenby = (Elegido por
+ RocketCompCfg.lbl.Componentmaterial = Material del componente:
+ RocketCompCfg.lbl.Componentfinish = Acabado:
+ RocketCompCfg.lbl.ttip.componentmaterialaffects = El material del componente afecta su peso.
+ RocketCompCfg.combo.ttip.componentmaterialaffects = El material del componente afecta su peso.
+ RocketCompCfg.lbl.longA1 = <html>El acabado del componente afecta su coeficiente de rozamiento.<br>
+ RocketCompCfg.lbl.longA2 = El valor indicado es el promedio de la rugosidad en altura de la superficie.
+ RocketCompCfg.but.Setforall = Aplicar a todos
+ RocketCompCfg.but.ttip.Setforall = Aplicar este acabado a todos los componentes del cohete.
+ RocketCompCfg.lbl.Overridemassorcenter = Elegir la masa o el CG del
+ RocketCompCfg.checkbox.Overridemass = Elegir la masa:
+ RocketCompCfg.checkbox.Overridecenterofgrav = Elegir el CG:
+ RocketCompCfg.checkbox.OverridemassandCG = Elegir la masa y el CG de todos los subcomponentes
+ RocketCompCfg.lbl.longB1 = <html>La masa elegida no incluye los motores.<br>
+ RocketCompCfg.lbl.longB2 = El CG se mide desde el extremo frontal del
+ RocketCompCfg.lbl.Commentsonthe = Comentarios sobre
+ RocketCompCfg.lbl.Figurestyle = Estilo de figura:
+ RocketCompCfg.lbl.Componentcolor = Color del componente:
+ RocketCompCfg.lbl.Choosecolor = Elija color
+ RocketCompCfg.checkbox.Usedefaultcolor = Use color por defecto
+ RocketCompCfg.lbl.Complinestyle = Estilo de línea del componente:
+ RocketCompCfg.but.Saveasdefstyle = Guarde como estilo por defecto
+ RocketCompCfg.lbl.Diameter = Diámetro:
+ RocketCompCfg.lbl.Length = Longitud:
+ RocketCompCfg.lbl.Thickness = Espesor:
+ RocketCompCfg.checkbox.Endcapped = Extremo troncado
+ RocketCompCfg.ttip.Endcapped = Si el extremo del hombro está troncado.
+ RocketCompCfg.title.Noseconeshoulder = Hombro de la ojiva
+ RocketCompCfg.title.Aftshoulder = Trasera del hombro
+ RocketCompCfg.border.Foreshoulder = Hombro visible
+ !RocketCompCfg.lbl.Length = Length:
+
+ ! BulkheadConfig
+ BulkheadCfg.tab.Radius = Radio:
+ BulkheadCfg.tab.Thickness = Espesor:
+ BulkheadCfg.tab.General = General
+ BulkheadCfg.tab.Generalproperties = Propiedades generales
+
+ !CenteringRingConfig
+ CenteringRingCfg.tab.Outerdiam = Diámetro exterior:
+ CenteringRingCfg.tab.Innerdiam = Diámetro interior:
+ CenteringRingCfg.tab.Thickness = Espesor:
+ CenteringRingCfg.tab.General = General
+ CenteringRingCfg.tab.Generalproperties = Propiedades generales
+
+ !ComponentConfigDialog
+ ComponentCfgDlg.configuration = configuración
+ ComponentCfgDlg.Modify = Modificar
+
+ !EllipticalFinSetConfig
+ EllipticalFinSetCfg.Nbroffins = Número de aletas:
+ EllipticalFinSetCfg.Rotation = Rotación:
+ EllipticalFinSetCfg.Fincant = Canto de aleta:
+ EllipticalFinSetCfg.Rootchord = Anclaje de la raíz:
+ EllipticalFinSetCfg.Height = Altura:
+ EllipticalFinSetCfg.Positionrelativeto = Posición relativa a:
+ EllipticalFinSetCfg.plus = plus
+ EllipticalFinSetCfg.FincrossSection = Sección de corte de la aleta:
+ EllipticalFinSetCfg.Thickness = Espesor:
+ EllipticalFinSetCfg.General = General
+ EllipticalFinSetCfg.Generalproperties = Propiedades generales
+ EllipticalFinSetCfg.ttip.Fincant = Ángulo que forma el canto de la aleta con respecto al fuselaje.
+
+ !FreeformFinSetConfig
+ FreeformFinSetCfg.tab.General = General
+ FreeformFinSetCfg.tab.ttip.General = Propiedades generales
+ FreeformFinSetCfg.tab.Shape = Forma
+ FreeformFinSetCfg.tab.ttip.Finshape = Forma de la aleta
+ FreeformFinSetCfg.lbl.Numberoffins = Número de aletas:
+ FreeformFinSetCfg.lbl.Finrotation = Rotación de la aleta:
+ FreeformFinSetCfg.lbl.Fincant = Canto de la aleta:
+ FreeformFinSetCfg.lbl.ttip.Fincant = Angulo que el canto de las aletas forman con respecto al fuselaje.
+ FreeformFinSetCfg.lbl.Posrelativeto = Posición relativa a:
+ FreeformFinSetCfg.lbl.plus = plus
+ FreeformFinSetCfg.lbl.FincrossSection = Sección de la aleta:
+ FreeformFinSetCfg.lbl.Thickness = Espesor:
+
+ !InnerTubeConfig
+ InnerTubeCfg.tab.Motor = Motor
+ InnerTubeCfg.tab.ttip.Motor = Configuración del porta motor
+ InnerTubeCfg.tab.Cluster = Cluster
+ InnerTubeCfg.tab.ttip.Cluster = Configuración del cluster
+ InnerTubeCfg.tab.Radialpos = Posición radial
+ InnerTubeCfg.tab.ttip.Radialpos = Posición radial
+ InnerTubeCfg.lbl.Selectclustercfg = Elija la configuración del cluster:
+ InnerTubeCfg.lbl.TubeSep = Separación del tubo:
+ InnerTubeCfg.lbl.ttip.TubeSep = La separación de los tubos, 1.0 = tocándose uno a otro
+ InnerTubeCfg.lbl.Rotation = Rotación:
+ InnerTubeCfg.lbl.ttip.Rotation = Configuración del ángulo de rotación del cluster
+ InnerTubeCfg.lbl.Rotangle = Angulo de rotación de la configuración del cluster
+ InnerTubeCfg.but.Splitcluster = Split cluster
+ InnerTubeCfg.lbl.longA1 = <html>Split del cluster dentro de componentes separados.<br>
+ InnerTubeCfg.lbl.longA2 = Esto también duplica todos los componentes unidos a este tubo interior.
+ InnerTubeCfg.but.Resetsettings = Reiniciar configuración
+ InnerTubeCfg.but.ttip.Resetsettings = Reiniciar la separación y la rotación a valores predeterminados
+
+ ! LaunchLugConfig
+ LaunchLugCfg.lbl.Length = Longitud:
+ LaunchLugCfg.lbl.Outerdiam = Diámetro exterior:
+ LaunchLugCfg.lbl.Innerdiam = Diámetro interior:
+ LaunchLugCfg.lbl.Thickness = Espesor:
+ LaunchLugCfg.lbl.Radialpos = Posición radial:
+ LaunchLugCfg.lbl.Posrelativeto = Posición relativa a:
+ LaunchLugCfg.lbl.plus = plus
+ LaunchLugCfg.tab.General = General
+ LaunchLugCfg.tab.Generalprop = Propiedades generales
+
+ ! MassComponentConfig
+ MassComponentCfg.lbl.Mass = Masa
+ MassComponentCfg.lbl.Length = Longitud
+ MassComponentCfg.lbl.Diameter = Diámetro
+ MassComponentCfg.lbl.PosRelativeto = Posición relativa a:
+ MassComponentCfg.lbl.plus = plus
+ MassComponentCfg.tab.General = General
+ MassComponentCfg.tab.ttip.General = Propiedades generales
+ MassComponentCfg.tab.Radialpos = Posición radial
+ MassComponentCfg.tab.ttip.Radialpos = Configuración de la posición radial
+ MassComponentCfg.lbl.Radialdistance = Distancia radial:
+ MassComponentCfg.lbl.Radialdirection = Dirección radial:
+ MassComponentCfg.but.Reset = Reiniciar
+
+ ! MotorConfig
+ MotorCfg.checkbox.compmotormount = Este componente es un porta motor
+ MotorCfg.lbl.Motorcfg = Configuración del motor:
+ MotorCfg.but.New = Nuevo
+ MotorCfg.lbl.Currentmotor = Motor actual:
+ MotorCfg.lbl.Motoroverhang = Sobresalida del motor:
+ MotorCfg.lbl.Ignitionat = Encendido en:
+ MotorCfg.lbl.plus = plus
+ MotorCfg.lbl.seconds = segundos
+ MotorCfg.lbl.longA1 = El diseño actual tiene solo una etapa.
+ MotorCfg.lbl.longA2 = Pueden agregarse etapas haciendo clic \"Nueva etapa\".
+ MotorCfg.lbl.longB1 = El diseño actual tiene
+ MotorCfg.lbl.longB2 = etapas.
+ MotorCfg.but.Selectmotor = Seleccionar motor
+ MotorCfg.but.Removemotor = Quitar motor
+ MotorCfg.lbl.motorLabel = Ninguno
+
+ ! NoseConeConfig
+ NoseConeCfg.lbl.Noseconeshape = Forma de la ojiva:
+ NoseConeCfg.lbl.Shapeparam = Parámetros de la forma:
+ NoseConeCfg.lbl.Noseconelength = Longitud de la ojiva:
+ NoseConeCfg.lbl.Basediam = Diámetro de la base:
+ NoseConeCfg.checkbox.Automatic = Automático
+ NoseConeCfg.lbl.Wallthickness = Espesor de la pared:
+ NoseConeCfg.checkbox.Filled = Archivado
+ NoseConeCfg.tab.General = General
+ NoseConeCfg.tab.ttip.General = Propiedades generales
+ NoseConeCfg.tab.Shoulder = Hombro
+ NoseConeCfg.tab.ttip.Shoulder = Propiedades del hombro
+
+ ! ParachuteConfig
+ ParachuteCfg.lbl.Canopy = Campana:
+ ParachuteCfg.lbl.Diameter = Diámetro:
+ ParachuteCfg.lbl.Material = Material:
+ ParachuteCfg.combo.MaterialModel = El material del componente afecta su peso.
+ ParachuteCfg.lbl.longA1 = <html>Drag coeficiente C<sub>D</sub>:
+ ParachuteCfg.lbl.longB1 = <html>Coeficiente de rozamiento relativo al área total del paracaídas.<br>
+ ParachuteCfg.lbl.longB2 = Un mas alto coeficiente de rozamiento genera un valor de descenso mas lento.
+ ParachuteCfg.lbl.longB3 = Un valor típico para los paracaídas es 0,8.
+ ParachuteCfg.but.Reset = Reiniciar
+ ParachuteCfg.lbl.Shroudlines = Cuerdas:
+ ParachuteCfg.lbl.Numberoflines = Número de cuerdas:
+ ParachuteCfg.lbl.Linelength = Longitud de cuerda:
+ ParachuteCfg.lbl.Material = Material:
+ ParachuteCfg.lbl.Posrelativeto = Posición relativa a:
+ ParachuteCfg.lbl.plus = plus
+ ParachuteCfg.lbl.Packedlength = Longitud empaquetado:
+ ParachuteCfg.lbl.Packeddiam = Diámetro del empaquetado:
+ ParachuteCfg.lbl.Deploysat = Despliegue en:
+ ParachuteCfg.lbl.seconds = segundos
+ ParachuteCfg.lbl.Altitude = Altitud:
+ ParachuteCfg.tab.General = General
+ ParachuteCfg.tab.ttip.General = Propiedades generales
+ ParachuteCfg.tab.Radialpos = Posición radial
+ ParachuteCfg.tab.ttip.Radialpos = Configuración de la posición radial
+ ParachuteCfg.lbl.Radialdistance = Distancia radial:
+ ParachuteCfg.lbl.Radialdirection = Dirección radial:
+ ParachuteCfg.but.Reset = Reiniciar
+
+ ! ShockCordConfig
+ ShockCordCfg.lbl.Shockcordlength = Longitud del tirante de suspensión
+ ShockCordCfg.lbl.Shockcordmaterial = Material del tirante de suspensión:
+ ShockCordCfg.lbl.Posrelativeto = Posición relativa a:
+ ShockCordCfg.lbl.plus = plus
+ ShockCordCfg.lbl.Packedlength = Longitud del empaquetado:
+ ShockCordCfg.lbl.Packeddiam = Diámetro del empaquetado:
+ ShockCordCfg.tab.General = General
+ ShockCordCfg.tab.ttip.General = Propiedades generales
+
+ !SleeveConfig
+ SleeveCfg.tab.Outerdiam = Diámetro exterior:
+ SleeveCfg.tab.Innerdiam = Diámetro interior:
+ SleeveCfg.tab.Wallthickness = Espesor de la pared:
+ SleeveCfg.tab.Length = Longitud:
+ SleeveCfg.tab.General = General
+ SleeveCfg.tab.Generalproperties = Propiedades generales
+
+ ! StreamerConfig
+ StreamerCfg.lbl.Striplength = Longitud de la cinta:
+ StreamerCfg.lbl.Stripwidth = Ancho de la cinta:
+ StreamerCfg.lbl.Striparea = Área de la cinta:
+ StreamerCfg.lbl.Aspectratio = Relación de aspecto:
+ StreamerCfg.lbl.Material = Material:
+ StreamerCfg.combo.ttip.MaterialModel = El material del componente afecta su peso.
+ StreamerCfg.lbl.longA1 = <html>Coeficiente de fricción C<sub>D</sub>:
+ StreamerCfg.lbl.longB1 = <html>Coeficiente de fricción relativo al área total de la banderola.<br>
+ StreamerCfg.lbl.longB2 = Un mayor coeficiente de fricción genera un valor de descenso mas lento.
+ StreamerCfg.lbl.Automatic = Automático
+ StreamerCfg.lbl.longC1 = El coeficiente de Fricción es relativo al área de la banderola.
+ StreamerCfg.lbl.Posrelativeto = Posición relativa a:
+ StreamerCfg.lbl.plus = plus
+ StreamerCfg.lbl.Packedlength = Longitud de empaquetado:
+ StreamerCfg.lbl.Packeddiam = Diámetro de empaquetado:
+ StreamerCfg.lbl.Deploysat = Despliegue a:
+ StreamerCfg.lbl.seconds = segundos
+ StreamerCfg.lbl.Altitude = Altitud:
+ StreamerCfg.tab.General = General
+ StreamerCfg.tab.ttip.General = Propiedades generales
+ StreamerCfg.tab.Radialpos = Posición radial
+ StreamerCfg.tab.ttip.Radialpos = Configuración de posición radial
+ StreamerCfg.lbl.Radialdistance = Distancia radial:
+ StreamerCfg.lbl.Radialdirection = Dirección radial:
+ StreamerCfg.but.Reset = Reiniciar
+
+ ! ThicknessRingComponentConfig
+ ThicknessRingCompCfg.tab.Outerdiam = Diámetro exterior:
+ ThicknessRingCompCfg.tab.Innerdiam = Diámetro Interior:
+ ThicknessRingCompCfg.tab.Wallthickness = Espesor de la pared:
+ ThicknessRingCompCfg.tab.Length = Longitud:
+ ThicknessRingCompCfg.tab.General = General
+ ThicknessRingCompCfg.tab.Generalprop = Propiedades generales
+
+ ! TransitionConfig
+ TransitionCfg.lbl.Transitionshape = Forma de la transición:
+ TransitionCfg.checkbox.Clipped = Acortado
+ TransitionCfg.lbl.Shapeparam = Parámetro de forma:
+ TransitionCfg.lbl.Transitionlength = Longitud de la transición:
+ TransitionCfg.lbl.Forediam = Diámetro delantero:
+ TransitionCfg.checkbox.Automatic = Automático
+ TransitionCfg.lbl.Aftdiam = Diámetro trasero:
+ TransitionCfg.lbl.Wallthickness = Espesor de la pared:
+ TransitionCfg.checkbox.Filled = Archivado
+ TransitionCfg.tab.General = General
+ TransitionCfg.tab.Generalproperties = Propiedades generales
+ TransitionCfg.tab.Shoulder = Hombro
+ TransitionCfg.tab.Shoulderproperties = Propiedades del hombro
+
+ ! TrapezoidFinSetConfig
+ TrapezoidFinSetCfg.lbl.Nbroffins = Número de aletas:
+ TrapezoidFinSetCfg.lbl.ttip.Nbroffins = Número de aletas en la base de aletas.
+ TrapezoidFinSetCfg.lbl.Finrotation = Rotación de las aletas:
+ TrapezoidFinSetCfg.lbl.ttip.Finrotation = Ángulo de la primera aleta en la base de aletas.
+ TrapezoidFinSetCfg.lbl.Fincant = Canto de aleta:
+ TrapezoidFinSetCfg.lbl.ttip.Fincant = El ángulo del canto de las aletas respecto al fuselaje.
+ TrapezoidFinSetCfg.lbl.Rootchord = Anclaje de la raíz:
+ TrapezoidFinSetCfg.lbl.Tipchord = Forma de la extremidad:
+ TrapezoidFinSetCfg.lbl.Height = Altura:
+ TrapezoidFinSetCfg.lbl.Sweeplength = Longitud del barrido:
+ TrapezoidFinSetCfg.lbl.Sweepangle = Ángulo de barrido:
+ TrapezoidFinSetCfg.lbl.FincrossSection = Sección de la aleta:
+ TrapezoidFinSetCfg.lbl.Thickness = Espesor:
+ TrapezoidFinSetCfg.lbl.Posrelativeto = Posición relativa a:
+ TrapezoidFinSetCfg.lbl.plus = plus
+ TrapezoidFinSetCfg.tab.General = General
+ TrapezoidFinSetCfg.tab.Generalproperties = Propiedades generales
+
+ !MotorConfigurationModel
+ MotorCfgModel.Editcfg = Editar configuraciones
+
+ ! StorageOptionChooser
+ StorageOptChooser.lbl.Simdatatostore = Almacenar datos simulados
+ StorageOptChooser.rdbut.Allsimdata = Todos los datos simulados
+ StorageOptChooser.lbl.longA1 = <html>Almacenar todos los datos simulados.<br>
+ StorageOptChooser.lbl.longA2 = Puede significar archivos muy grandes
+ StorageOptChooser.rdbut.Every = Cada
+ StorageOptChooser.lbl.longB1 = <html>Almacenar valores de impresión aproximadamente este lejano apartado.<br>
+ StorageOptChooser.lbl.longB2 = Resultados de valores grandes en archivos mas pequeños.
+ StorageOptChooser.lbl.seconds = Segundos
+ StorageOptChooser.rdbut.Onlyprimfig = Solamente figuras primarios
+ StorageOptChooser.lbl.longC1 = <html>Almacenas sólo los valores en la tabla sumario.<br>
+ StorageOptChooser.lbl.longC2 = Estos resultados en los archivos mas pequeños.
+ StorageOptChooser.checkbox.Compfile = Archivo comprimido
+ StorageOptChooser.lbl.UsingComp = Usando la compresión reducimos el tamaño de los archivos.
+ StorageOptChooser.lbl.longD1 = Una estimación de cuan grande será un archivo podría tenerse con las presentes opciones.
+ StorageOptChooser.ttip.Saveopt = Guardar opciones
+ StorageOptChooser.lbl.Estfilesize = Estimación del tamaño del archivo:
+ StorageOptChooser.lbl.Saveopt = Guardar opciones
+
+ ! ThrustCurveMotorSelectionPanel
+ TCMotorSelPan.lbl.Selrocketmotor = Selecciones el motor del cohete:
+ TCMotorSelPan.checkbox.hideSimilar = Borrar las curvas muy similares
+ TCMotorSelPan.SHOW_DESCRIPTIONS.desc1 = Mostrar todos los motores
+ TCMotorSelPan.SHOW_DESCRIPTIONS.desc2 = Mostrar motores con diámetro inferior al del tubo portamotor
+ TCMotorSelPan.SHOW_DESCRIPTIONS.desc3 = Mostrar motores con diámetro igual al del tubo portamotor
+ TCMotorSelPan.lbl.Motormountdia = Diámetro del portamotor:
+ TCMotorSelPan.lbl.Search = Buscar:
+ TCMotorSelPan.lbl.Selectthrustcurve = Seleccione curva de empuje:
+ TCMotorSelPan.lbl.Ejectionchargedelay = Retardo de la carga de eyección:
+ TCMotorSelPan.equalsIgnoreCase.None = Ninguno
+ TCMotorSelPan.lbl.NumberofsecondsorNone = (Número de segundos o \"Ninguno\")
+ TCMotorSelPan.lbl.Totalimpulse = Impulso total:
+ TCMotorSelPan.lbl.Avgthrust = Empuje medio:
+ TCMotorSelPan.lbl.Maxthrust = Empuje máximo:
+ TCMotorSelPan.lbl.Burntime = Tiempo de quemado:
+ TCMotorSelPan.lbl.Launchmass = Masa a lanzar:
+ TCMotorSelPan.lbl.Emptymass = Masa vacía:
+ TCMotorSelPan.lbl.Datapoints = Puntos dato:
+ TCMotorSelPan.lbl.Digest = Resumen:
+ TCMotorSelPan.title.Thrustcurve = Curva de empuje:
+ TCMotorSelPan.title.Thrust = Empuje
+ TCMotorSelPan.delayBox.None = Ninguno
+
+
+ ! PlotDialog
+ PlotDialog.title.Flightdataplot = Representar los datos de vuelo
+ PlotDialog.Chart.Simulatedflight = Vuelo simulado
+ PlotDialog.CheckBox.Showdatapoints = Mostrar los puntos datos
+ PlotDialog.lbl.Chart = Click+bajar el rozamiento+derecha ampliar, arriba+izquierda disminuir
+
+
+ ! "main" prefix is used for the main application dialog
+
+ main.menu.file = Archivo
+ main.menu.file.new = Nuevo
+ main.menu.file.open = Abrir ...
+ main.menu.file.openExample = Abrir ejemplo ...
+ main.menu.file.save = Guardar
+ main.menu.file.saveAs = Guardar como ...
+ main.menu.file.print = Imprimir ...
+ main.menu.file.close = Cerrar
+ main.menu.file.quit = Silenciar
+
+ main.menu.edit = Representar
+ main.menu.edit.undo = Invertir
+ main.menu.edit.redo = Rehacer
+ main.menu.edit.cut = Cortar
+ main.menu.edit.copy = Copiar
+ main.menu.edit.paste = Pegar
+ main.menu.edit.delete = Borrar
+ main.menu.edit.preferences = Preferencias
+
+ main.menu.analyze = Analizar
+ main.menu.analyze.componentAnalysis = Análisis de componentes
+
+ main.menu.help = Ayuda
+ main.menu.help.license = Licencia
+ main.menu.help.bugReport = Report de supresiones
+ main.menu.help.debugLog = Registro de recuperaciones
+ main.menu.help.about = Acerca de
+
+ main.menu.debug = Recuperación
+ main.menu.debug.whatisthismenu = ¿Que es este menú?
+ main.menu.debug.createtestrocket = Crear prueba de modelo
+
+ ! database
+ ! Translate here all material database
+ !
+
+ ! Material database
+ ! BULK_MATERIAL
+ Databases.materials.Acrylic = Acrílico
+ Databases.materials.Balsa = Balsa
+ Databases.materials.Birch = Abedul
+ Databases.materials.Cardboard = Cartón
+ Databases.materials.Carbonfiber = Fibra de Carbono
+ Databases.materials.Cork = Corcho
+ Databases.materials.DepronXPS = Depron (XPS)
+ Databases.materials.Fiberglass = Fibra de vidrio
+ Databases.materials.Kraftphenolic = Cartón fenólico
+ Databases.materials.Maple = Arce
+ Databases.materials.Paperoffice = Papel (oficina)
+ Databases.materials.Pine = Pino
+ Databases.materials.Plywoodbirch = Contrachapado (birch)
+ Databases.materials.PolycarbonateLexan = Policarbonato (Lexan)
+ Databases.materials.Polystyrene = Poliestireno
+ Databases.materials.PVC = PVC
+ Databases.materials.Spruce = Pulido
+ Databases.materials.StyrofoamgenericEPS = Porex (generico EPS)
+ Databases.materials.StyrofoamBluefoamXPS = Porex \"Foam azul\" (XPS)
+ Databases.materials.Quantumtubing = Quantum tubing
+ !SURFACE_MATERIAL
+ Databases.materials.Ripstopnylon = Ripstop nylon
+ Databases.materials.Mylar = Mylar
+ Databases.materials.Polyethylenethin = Polietileno (delgado)
+ Databases.materials.Polyethyleneheavy = Polietileno (grueso)
+ Databases.materials.Silk = Seda
+ Databases.materials.Paperoffice = Papel (oficina)
+ Databases.materials.Cellophane = Celofán
++Databases.materials.Crepepaper = Cr\u00eape Papel
+ ! LINE_MATERIAL
+ Databases.materials.Threadheavy-duty = Trenzado (Alta resistencia)
+ Databases.materials.Elasticcordround2mm = Cordón elástico (aprox. 2mm, 1/16 in)
+ Databases.materials.Elasticcordflat6mm = Cordón elástico (Plano 6mm, 1/4 in)
+ Databases.materials.Elasticcordflat12mm = Cordón elástico (Plano 12mm, 1/2 in)
+ Databases.materials.Elasticcordflat19mm = Cordón elástico (Plano 19mm, 3/4 in)
+ Databases.materials.Elasticcordflat25mm = Cordón elástico (Plano 25mm, 1 in)
+ Databases.materials.Braidednylon2mm = Nylon trenzado (2 mm, 1/16 in)
+ Databases.materials.Braidednylon3mm = Nylon trenzado (3 mm, 1/8 in)
+ Databases.materials.Tubularnylon11mm = Nylon tubular (11 mm, 7/16 in)
+ Databases.materials.Tubularnylon14mm = Nylon tubular (14 mm, 9/16 in)
+ Databases.materials.Tubularnylon25mm = Nylon tubular (25 mm, 1 in)
+
+ ! ExternalComponent
+ ExternalComponent.Rough = Rugoso
+ ExternalComponent.Unfinished = Inacabado
+ ExternalComponent.Regularpaint = Pintura normal
+ ExternalComponent.Smoothpaint = Pintura fina
+ ExternalComponent.Polished = Pulido
+
+ ! LineStyle
+ LineStyle.Solid = Sólido
+ LineStyle.Dashed = Pulverizado
+ LineStyle.Dotted = Punteado
+ LineStyle.Dash-dotted = Pulverizado con puntos
+ LineStyle.Defaultstyle = Estilo por defecto
+
+ ! Shape
+ Shape.Conical = Cónico
+ Shape.Conical.desc1 = Una ojiva cónica de perfil triangular
+ Shape.Conical.desc2 = Transición cónica de lados rectos
+ Shape.Ogive = Ojiva
+ Shape.Ogive.desc1 = Una ojiva con perfil de segmento circular. El parámetro de forma de valor 1 produce una <b>Tangente a la ojiva</b>, Que tiene una transición suave al fuselaje, produce un valor menor que 1 <b>Secante a la ojiva</b>.
+ Shape.Ogive.desc2 = Una ojiva con perfil de segmento circular. El parámetro de forma de valor 1 produce una <b>Tangente a la ojiva</b>, Que tiene una transición suave al fuselaje, produce un valor menor que 1 <b>Secante a la ojiva</b>.
+ Shape.Ellipsoid = Elipsoide
+ Shape.Ellipsoid.desc1 = Una ojiva elipsoidal tiene un perfil de media elipse con el eje mayor de longitud 2&veces;<i>Longitud</i> y <i>Diámetro</i>.
+ Shape.Ellipsoid.desc2 = Una ojiva elipsoidal tiene un perfil de media elipse con el eje mayor de longitud 2&veces;<i>Longitud</i> y <i>Diámetro</i>. Si la transición no se interrumpe, entonces el perfil se extiende al centro con el correspondiente radio.
+ Shape.Powerseries = Series potentes
+ Shape.Powerseries.descA1 = Una serie de ojivas potentes tiene un perfil de<i>Radio</i> &veces; (<i>x</i> / <i>Longitud</i>)<sup><i>k</i></sup> donde <i>k</i> es el parámetro de forma. Para <i>k</i>=0.5 este es un <b>
+ Shape.Powerseries.descA2 = -potencia</b> o <b>parabólico</b> ojiva, para <i>k</i>=0.75 un <b>
+ Shape.Powerseries.descA3 = -potencia</b>, y para <i>k</i>=1 a <b>cónica</b> ojiva.
+ Shape.Powerseries.descB1 = Una serie de transiciones potentes tiene un perfil de <i>Radio</i> &veces; (<i>x</i> / <i>Longitud</i>)<sup><i>k</i></sup> donde <i>k</i> es el parámetro de forma. Para <i>k</i>=0.5 la transición es <b>
+ Shape.Powerseries.descB2 = -potencia</b> o <b>parabólica</b>, para <i>k</i>=0.75 a <b>
+ Shape.Powerseries.descB3 = -potencia</b>, y para <i>k</i>=1 <b>cónica</b>.
+ Shape.Parabolicseries = Serie parabólica
+ Shape.Parabolicseries.desc1 = A parabólica series ojiva Cone has a perfil de a parábola. The forma parámetro defines el segmento de el parábola a utilice. The forma parámetro 1.0 produces a <b>full parábola</b> que es tangente a el body tubo, 0.75 produces a <b>3/4 parábola</b>, 0.5 procudes a <b>1/2 parábola</b> y 0 produces a <b>cónico</b> ojiva .
+ Shape.Parabolicseries.desc2 = A parabólica series transición has a perfil de a parábola. The forma parámetro defines el segmento de el parábola a utilice. The forma parámetro 1.0 produces a <b>full parábola</b> que es tangente a el body tubo at el aft extremo, 0.75 produces a <b>3/4 parábola</b>, 0.5 procudes a <b>1/2 parábola</b> y 0 produces a <b>cónico</b> transición.
+ Shape.Haackseries = Haack series
+ Shape.Haackseries.desc1 = The Haack series ojiva are designado a minimizar drag. The forma parámetro 0 produces un <b>LD-Haack</b> o <b>Von Karman</b> ojiva , que minimizas drag para fijado longitud y diámetro, mientras a valor de 0.333 produces un <b>LV-Haack</b> ojiva , que minimizas drag para fijado longitud y volumen.
+ Shape.Haackseries.desc2 = The Haack series <i>ojiva </i> are designado a minimizar drag. estas transición formas are sus equivalentes, pero do no necesariamente produce optima drag para transiciones. The forma parámetro 0 produces un <b>LD-Haack</b> o <b>Von Karman</b> forma, mientras a valor de 0.333 produces un <b>LV-Haack</b> shape.
+
+
+ ! RocketComponent
+ RocketComponent.Position.TOP = Parte alta del componente
+ RocketComponent.Position.MIDDLE = Parte media del componente
+ RocketComponent.Position.BOTTOM = Extremo inferior del componente
+ RocketComponent.Position.AFTER = Despues del componente
+ RocketComponent.Position.ABSOLUTE = Punta de la ojiva
+
+ ! LaunchLug
+ LaunchLug.Launchlug = Guía
+ ! NoseCone
+ NoseCone.NoseCone = Ojiva
+ ! Transition
+ Transition.Transition = Transición cónica de lados rectos
+ !Stage
+ Stage.Stage = Etapa
+ ! BodyTube
+ BodyTube.BodyTube = Tubo del fuselaje
+ ! TubeCoupler
+ TubeCoupler.TubeCoupler = Acoplador
+ !InnerTube
+ InnerTube.InnerTube = Tubo interior
+ ! TrapezoidFinSet
+ TrapezoidFinSet.TrapezoidFinSet = Aleta en configuración trapezoidal
+ ! FreeformFinSet
+ FreeformFinSet.FreeformFinSet = Forma libre de aleta
+ !MassComponent
+ MassComponent.MassComponent = Componente masa
+ ! Parachute
+ Parachute.Parachute = Paracaídas
+ ! ShockCord
+ ShockCord.ShockCord = Tirante de suspensión
+ ! Bulkhead
+ Bulkhead.Bulkhead = Media cámara
+
+ !Rocket
+ Rocket.motorCount.Nomotor = [Sin motores]
+ Rocket.compname.Rocket = Cohete
+
+ !MotorMount
+ MotorMount.IgnitionEvent.AUTOMATIC = Automático (Lanzamiento o carga de eyección)
+ MotorMount.IgnitionEvent.LAUNCH = Lanzamiento
+ MotorMount.IgnitionEvent.EJECTION_CHARGE = Primera carga de eyección de la etapa previa
+ MotorMount.IgnitionEvent.BURNOUT = Primer encendido de la etapa previa
+ MotorMount.IgnitionEvent.NEVER = Nunca
+
+ !ComponentIcons
+ ComponentIcons.Nosecone = Ojiva
+ ComponentIcons.Bodytube = Tubo del fuselaje
+ ComponentIcons.Transition = Transición
+ ComponentIcons.Trapezoidalfinset = Aleta en configuración trapezoidal
+ ComponentIcons.Ellipticalfinset = Aleta en configuración elíptica
+ ComponentIcons.Freeformfinset = Forma libre de aleta
+ ComponentIcons.Launchlug = Guía de lanzamiento
+ ComponentIcons.Innertube = Tubo interior
+ ComponentIcons.Tubecoupler = Tubo de acoplamiento
+ ComponentIcons.Centeringring = Arandela de centraje
+ ComponentIcons.Bulkhead = Media cámara
+ ComponentIcons.Engineblock = Tope motor
+ ComponentIcons.Parachute = Paracaídas
+ ComponentIcons.Streamer = Banderola
+ ComponentIcons.Shockcord = Tirante de suspensión
+ ComponentIcons.Masscomponent = Componente masa
+ ComponentIcons.disabled = (Desconectado)
+
+ ! StageAction
+ StageAction.Stage = Etapa
+
+ ! RecoveryDevice
+ RecoveryDevice.DeployEvent.LAUNCH = Lanzamiento (mas NN segundos)
+ RecoveryDevice.DeployEvent.EJECTION = Primera carga de eyección de esta etapa
+ RecoveryDevice.DeployEvent.APOGEE = Apogeo
+ RecoveryDevice.DeployEvent.ALTITUDE = Altura específica durante el descenso
+ RecoveryDevice.DeployEvent.NEVER = Nunca
+
+ ! FlightEvent
+ FlightEvent.Type.LAUNCH = Lanzamiento
+ FlightEvent.Type.IGNITION = Encendido del motor
+ FlightEvent.Type.LIFTOFF = Despegue
+ FlightEvent.Type.LAUNCHROD = Despeje de la varilla de lanzamiento
+ FlightEvent.Type.BURNOUT = Apagado del motor
+ FlightEvent.Type.EJECTION_CHARGE = Carga de eyección
+ FlightEvent.Type.STAGE_SEPARATION = Separación de etapa
+ FlightEvent.Type.APOGEE = Apogeo
+ FlightEvent.Type.RECOVERY_DEVICE_DEPLOYMENT = Sistema de despliegue del sistema de recuperación
+ FlightEvent.Type.GROUND_HIT = Contacto con el suelo
+ FlightEvent.Type.SIMULATION_END = Fin de la simulación
+ FlightEvent.Type.ALTITUDE = Cambio de altura
+
+ ! ThrustCurveMotorColumns
+ TCurveMotorCol.MANUFACTURER = Fabricante
+ TCurveMotorCol.DESIGNATION = Designación
+ TCurveMotorCol.TYPE = Tipo
+ TCurveMotorCol.DIAMETER = Diámetro
+ TCurveMotorCol.LENGTH = Longitud
+
+ ! RocketInfo
+ RocketInfo.lengthLine.Length = Longitud
+ RocketInfo.lengthLine.maxdiameter = , max. Diámetro
+ RocketInfo.massText1 = Masa con motores
+ RocketInfo.massText2 = Masa sin motores
+ RocketInfo.at = a M=
+ RocketInfo.cgText = CG:
+ RocketInfo.cpText = CP:
+ RocketInfo.stabText = Estabilidad:
+ RocketInfo.Warning = Peligro:
+ RocketInfo.Calculating = Calculando...
+ RocketInfo.Apogee = Apogeo:
+ RocketInfo.Maxvelocity = Max. velocidad:
+ RocketInfo.Maxacceleration = Max. aceleración:
+ RocketInfo.apogeeValue = N/A
+ RocketInfo.Mach = (Mach
+ RocketInfo.velocityValue = N/A
+ RocketInfo.accelerationValue = N/A
+
+ ! FinSet
+ FinSet.CrossSection.SQUARE = Cuadrado
+ FinSet.CrossSection.ROUNDED = Redondo
+ FinSet.CrossSection.AIRFOIL = Superficie de sustentación
+ FinSet.TabRelativePosition.FRONT = Borde principal del extremo de anclaje
+ FinSet.TabRelativePosition.CENTER = Borde principal del anclaje
+ FinSet.TabRelativePosition.END = Borde principal de tracción
+
+ ! FlightDataType
+ FlightDataType.TYPE_TIME = Tiempo de quemado:
+ FlightDataType.TYPE_ALTITUDE = Altura específica durante el descenso
+ FlightDataType.TYPE_VELOCITY_Z = Velocidad vertical
+ FlightDataType.TYPE_ACCELERATION_Z = Aceleración vertical
+ FlightDataType.TYPE_VELOCITY_TOTAL = Velocidad total
+ FlightDataType.TYPE_ACCELERATION_TOTAL = Aceleración total
+ FlightDataType.TYPE_POSITION_X = Posición contra viento
+ FlightDataType.TYPE_POSITION_Y = Posición paralela al viento
+ FlightDataType.TYPE_POSITION_XY = Distancia lateral
+ FlightDataType.TYPE_POSITION_DIRECTION = Dirección lateral
+ FlightDataType.TYPE_VELOCITY_XY = Velocidad lateral
+ FlightDataType.TYPE_ACCELERATION_XY = Aceleración lateral
+ FlightDataType.TYPE_AOA = Ángulo de ataque:
+ FlightDataType.TYPE_ROLL_RATE = Relación de rotación
+ FlightDataType.TYPE_PITCH_RATE = Relación de pico
+ FlightDataType.TYPE_YAW_RATE = Relación de desvío
+ FlightDataType.TYPE_MASS = Masa
+ FlightDataType.TYPE_LONGITUDINAL_INERTIA = Momento de inercia longitudinal
+ FlightDataType.TYPE_ROTATIONAL_INERTIA = Momento de inercia rotacional
+ FlightDataType.TYPE_CP_LOCATION = CP situación
+ FlightDataType.TYPE_CG_LOCATION = CG situación
+ FlightDataType.TYPE_STABILITY = Calibración del margen de estabilidad
+ FlightDataType.TYPE_MACH_NUMBER = Número Mach
+ FlightDataType.TYPE_REYNOLDS_NUMBER = Número de Reynolds
+ FlightDataType.TYPE_THRUST_FORCE = Empuje
+ FlightDataType.TYPE_DRAG_FORCE = Fuerza de rozamiento
+ FlightDataType.TYPE_DRAG_COEFF = Coeficiente de rozamiento
+ FlightDataType.TYPE_AXIAL_DRAG_COEFF = Coeficiente de rozamiento axial
+ FlightDataType.TYPE_FRICTION_DRAG_COEFF = Coeficiente de rozamiento por fricción
+ FlightDataType.TYPE_PRESSURE_DRAG_COEFF = Presión del coeficiente de rozamiento
+ FlightDataType.TYPE_BASE_DRAG_COEFF = Coeficiente de rozamiento base
+ FlightDataType.TYPE_NORMAL_FORCE_COEFF = Coeficiente de rozamiento normal
+ FlightDataType.TYPE_PITCH_MOMENT_COEFF = Pico del coeficiente de rozamiento
+ FlightDataType.TYPE_YAW_MOMENT_COEFF = Coeficiente de rozamiento de desviación
+ FlightDataType.TYPE_SIDE_FORCE_COEFF = Coeficiente de fuerza lateral
+ FlightDataType.TYPE_ROLL_MOMENT_COEFF = Coeficiente del momento de rotación
+ FlightDataType.TYPE_ROLL_FORCING_COEFF = Fuerza del coeficiente de rotación
+ FlightDataType.TYPE_ROLL_DAMPING_COEFF = Disminución del coeficiente de rotación
+ FlightDataType.TYPE_PITCH_DAMPING_MOMENT_COEFF = Disminución del coeficiente de pico
+ FlightDataType.TYPE_YAW_DAMPING_MOMENT_COEFF = Disminución del coeficiente de desviación
+ FlightDataType.TYPE_REFERENCE_LENGTH = Longitud de referencia:
+ FlightDataType.TYPE_REFERENCE_AREA = Área de referencia
+ FlightDataType.TYPE_ORIENTATION_THETA = Orientación vertical (zenit)
+ FlightDataType.TYPE_ORIENTATION_PHI = Orientación lateral (azimut)
+ FlightDataType.TYPE_WIND_VELOCITY = Velocidad del viento
+ FlightDataType.TYPE_AIR_TEMPERATURE = Temperatura del aire
+ FlightDataType.TYPE_AIR_PRESSURE = Presión del aire
+ FlightDataType.TYPE_SPEED_OF_SOUND = Velocidad del sonido
+ FlightDataType.TYPE_TIME_STEP = Simulación del tiempo de etapa
+ FlightDataType.TYPE_COMPUTATION_TIME = Cálculo del tiempo
+
+ ! PlotConfiguration
+ PlotConfiguration.Verticalmotion = Movimiento vertical vs. Tiempo
+ PlotConfiguration.Totalmotion = Movimiento total vs. Tiempo
+ PlotConfiguration.Flightside = Perfil lateral de vuelo
+ PlotConfiguration.Stability = Estabilidad vs. Tiempo
+ PlotConfiguration.Dragcoef = Coeficiente de rozamiento vs. Número Mach
+ PlotConfiguration.Rollcharacteristics = Características de rotación
+ PlotConfiguration.Angleofattack = Ángulo de orientación y ataque vs. Tiempo
+ PlotConfiguration.Simulationtime = Simulación del tiempo de etapa y cálculo del tiempo
+
+ ! Warning
+ Warning.LargeAOA.str1 = Evaluación de la amplitud del ángulo de ataque.
+ Warning.LargeAOA.str2 = Evaluación de la amplitud del ángulo de ataque (
+ Warning.DISCONTINUITY = Discontinuidad en el diámetro del fuselaje.
+ Warning.THICK_FIN = Las aletas gruesas no están correctamente modeladas.
+ Warning.JAGGED_EDGED_FIN = las predicciones afiladas de la aleta pueden ser inexactas.
+ Warning.LISTENERS_AFFECTED = Los oyentes modificaron la simulación del vuelo
+ Warning.RECOVERY_DEPLOYMENT_WHILE_BURNING = Sistema de recuperación abierto mientras el motor todavía empujaba
+ Warning.FILE_INVALID_PARAMETER = Parámetro no válido encontrado. Ignorarlo.
--- /dev/null
-about.dlg.but.close = Fermer\r
-about.dlg.lbl.translation = Traduit en français par Tripoli France\r
-about.dlg.lbl.transwebsite = http://tripoli.france.free.fr/\r
+ \r
+ #\r
+ # French base translation file\r
+ # Translated by Tripoli France\r
+ \r
+ \r
+ ! Set to the name of the current translation file (used for debugging purposes)\r
+ debug.currentFile = messages_fr.properties\r
+ \r
+ ! RocketActions\r
+ RocketActions.checkbox.Donotaskmeagain = Ne plus me demander\r
+ RocketActions.lbl.Youcanchangedefop = Vous pouvez changer le mode opératoire par defaut dans les préferences.\r
+ RocketActions.showConfirmDialog.lbl1 = Supprimer les simulations sélectionnées?\r
+ RocketActions.showConfirmDialog.lbl2 = <html><i>Cette opération n'est pas réversible.</i>\r
+ RocketActions.showConfirmDialog.title = Effacer les simulations\r
+ RocketActions.DelCompAct.Delete = Effacer\r
+ RocketActions.DelCompAct.ttip.Delete = Effacer la pièce sélectionnée.\r
+ RocketActions.DelSimuAct.Delete = Effacer\r
+ RocketActions.DelSimuAct.ttip.Delete = Effacer la simulation sélectionnée.\r
+ RocketActions.DelAct.Delete = Effacer \r
+ RocketActions.DelAct.ttip.Delete = Effacer la pièce ou la simulation sélectionnée.\r
+ RocketActions.CutAction.Cut = Couper\r
+ RocketActions.CutAction.ttip.Cut = Couper cette pièce ou simulation, l'ajouter au presse papier et l'enlever du projet\r
+ RocketActions.CopyAct.Copy = Copier\r
+ RocketActions.CopyAct.ttip.Copy = Copier les pièces (et les pièces liées) dans le presse papier.\r
+ RocketActions.PasteAct.Paste = Coller\r
+ RocketActions.PasteAct.ttip.Paste = Coller la pièce ou simulation présente dans le presse papier dans le projet.\r
+ RocketActions.EditAct.Edit = Modifier\r
+ RocketActions.EditAct.ttip.Edit = Modifier la pièce sélectionnée.\r
+ RocketActions.NewStageAct.Newstage = Nouvel étage\r
+ RocketActions.NewStageAct.ttip.Newstage = Ajouter un nouvel étage au projet.\r
+ RocketActions.ActBoosterstage = Etage Booster\r
+ RocketActions.MoveUpAct.Moveup = Monter\r
+ RocketActions.MoveUpAct.ttip.Moveup = Monter la pièce.\r
+ RocketActions.MoveDownAct.Movedown = Descendre\r
+ RocketActions.MoveDownAct.ttip.Movedown = Descendre la pièce.\r
+ \r
+ ! RocketPanel\r
+ RocketPanel.FigTypeAct.Sideview = Vue de coté\r
+ RocketPanel.FigTypeAct.ttip.Sideview = Vue de coté\r
+ RocketPanel.FigTypeAct.Backview = Vue arrière\r
+ RocketPanel.FigTypeAct.ttip.Backview = Vue arrière \r
+ RocketPanel.lbl.Motorcfg = Configuration Moteur:\r
+ RocketPanel.lbl.infoMessage = <html>Cliquer pour sélectionner Shift+cliquer pour sélectionner plusieurs Double-cliquer pour modifier Click+déplacer pour déplacer\r
+ \r
+ \r
+ ! BasicFrame\r
+ BasicFrame.SimpleFileFilter1 = Tous les fichiers fusée (*.ork; *.rkt)\r
+ BasicFrame.SimpleFileFilter2 = Fichiers OpenRocket (*.ork)\r
+ BasicFrame.SimpleFileFilter3 = Fichiers RockSim (*.rkt)\r
+ BasicFrame.tab.Rocketdesign = Projet fusée\r
+ BasicFrame.tab.Flightsim = Simulations de vol\r
+ BasicFrame.title.Addnewcomp = Ajouter une nouvelle pièce\r
+ BasicFrame.item.Openrocketdesign = Ouvrir un projet fusée\r
+ BasicFrame.item.Openexamplerocketdesign = Ouvrir un exemple de projet fusée\r
+ BasicFrame.item.SavecurRocketdesign = Sauvegarder le projet fusée courant\r
+ BasicFrame.item.SavecurRocketdesnewfile = Sauvegarder le projet fusée courant dans un nouveau fichier\r
+ BasicFrame.item.Printpart = Imprimer la liste des pièces et les modèles d'ailerons\r
+ BasicFrame.item.Closedesign = Fermer le projet fusée courant\r
+ BasicFrame.item.Quitprogram = Quitter le programme\r
+ BasicFrame.menu.Rocketedt = Modification de la fusée\r
+ BasicFrame.dlg.lbl1 = Le projet '\r
+ BasicFrame.dlg.lbl2 = ' N'a pas été sauvegardé.\r
+ BasicFrame.dlg.lbl3 = Voulez vous le sauvegarder?\r
+ BasicFrame.dlg.title = Projet non sauvegardé\r
+ BasicFrame.StageName.Sustainer = Sustainer\r
+ BasicFrame.WarningDialog.txt1 = Les problemes suivant sont survenus lors de l'ouverture de\r
+ BasicFrame.WarningDialog.txt2 = Certains elements du projet n'ont peut etre pas été chargé correctement.\r
+ BasicFrame.WarningDialog.title = Avertissement lors de l'ouverture du fichier\r
+ \r
+ ! Labels used in buttons of dialog windows\r
+ button.ok = OK\r
+ button.cancel = Annuler\r
+ button.close = Fermer\r
+ \r
+ ! Common labels used in buttons of dialog windows\r
+ dlg.but.ok = Accepter\r
+ dlg.but.cancel = Annuler\r
+ dlg.but.close = Fermer\r
+ \r
+ ! About Dialog\r
-compaddbuttons.Bodytube = Tube du corps\r
++AboutDialog.lbl.translation = Traduit en français par\r
++AboutDialog.lbl.translator = Tripoli France\r
++AboutDialog.lbl.translatorWebsite = http://tripoli.france.free.fr/\r
+ \r
+ ! Bug Report dialog\r
+ bugreport.dlg.title = Rapport d'erreurs\r
+ bugreport.dlg.but.Sendbugreport = Envoyer un rapport d'erreurs\r
+ bugreport.dlg.but.Sendbugreport.Ttip = Envoyer automatiquement un rapport d'erreurs aux developpeurs d'OpenRocket\r
+ bugreport.dlg.successmsg1 = Rapport d'erreurs envoyé avec succès.\r
+ bugreport.dlg.successmsg2 = Merci d'avoir contribué à l'amélioration d'OpenRocket!\r
+ bugreport.dlg.successmsg3 = Rapport d'erreurs envoyé\r
+ bugreport.dlg.connectedInternet = <html>Si vous etes connecté sur Internet, vous pouvez tout simplement cliquer sur <em>Envoyer un rapport d'erreurs</em>.\r
+ bugreport.dlg.otherwise = Sinon envoyez le texte ci-dessous à l'adresse:\r
+ bugreport.lbl.Theinformation = Les informations ci-dessus sont succeptibles d'etre incluse dans un rapport d'erreur publique. Assurez vous qu'il ne contienne pas d'informations sensibles que vous ne voulez pas rendre publique.\r
+ bugreport.dlg.failedmsg1 = OpenRocket n'a pas réussi à envoyer le rapport d'erreur:\r
+ bugreport.dlg.failedmsg2 = S'il vous plait envoyez le rapport manuellement à\r
+ bugreport.dlg.failedmsg3 = Erreur d'envoi du rapport\r
+ bugreport.reportDialog.txt = <html><b>Vous pouvez signaler une erreur avec OpenRocket en remplissant et en envoyant le message ci-dessous.</b><br>Vous pouvez egalement signaler des erreurs et inclure des pieces jointes sur le site web du projet.\r
+ bugreport.reportDialog.txt2 = <html><b>S'il vous plait ajoutez une courte description de ce que vous faisiez lorsque l'erreur s'est produite.</b>\r
+ \r
+ \r
+ ! Debug log dialog\r
+ debuglogdlg.but.clear = Effacer\r
+ debuglogdlg.OpenRocketdebuglog = Fichier debug d'OpenRocket\r
+ debuglogdlg.Displayloglines = Afficher les numéros des lignes:\r
+ debuglogdlg.Follow = Suivre\r
+ debuglogdlg.col.Time = Heure\r
+ debuglogdlg.col.Level = Niveau\r
+ debuglogdlg.col.Location = Emplacement\r
+ debuglogdlg.col.Message = Message\r
+ debuglogdlg.lbl.Loglinenbr = Numéro de la ligne:\r
+ debuglogdlg.lbl.Time = Heure:\r
+ debuglogdlg.lbl.Level = Niveau:\r
+ \r
+ \r
+ ! Edit Motor configuration dialog\r
+ edtmotorconfdlg.but.removemotor = Enlever le moteur\r
+ edtmotorconfdlg.but.Selectmotor = Choisir le moteur\r
+ edtmotorconfdlg.but.Removeconfiguration = Supprimer la configuration\r
+ edtmotorconfdlg.but.Newconfiguration = Nouvelle configuration\r
+ edtmotorconfdlg.lbl.Motormounts = <html><b>Portes moteur:</b>\r
+ edtmotorconfdlg.title.Editmotorconf = Changer la configuration moteur\r
+ edtmotorconfdlg.selectcomp = <html>Choisir les pièces utilisées par le porte moteur:\r
+ edtmotorconfdlg.lbl.Motorconfig = <html><b>Configurations moteur:</b>\r
+ edtmotorconfdlg.lbl.Configname = Nom de la configuration:\r
+ edtmotorconfdlg.lbl.Leavenamedefault = Laisser le champ vide par défaut.\r
+ \r
+ ! Example design dialog\r
+ exdesigndlg.but.open = Ouvrir\r
+ exdesigndlg.lbl.Selectexample = Chosir l'exemple de projet à ouvrir:\r
+ exdesigndlg.lbl.Openexampledesign = Ouvrir un exemple de projet\r
+ exdesigndlg.lbl.Exampledesignsnotfound = Impossible de trouver les exemples de projets.\r
+ exdesigndlg.lbl.Examplesnotfound = Exemples non trouvés\r
+ \r
+ ! Print panel dialog\r
+ printdlg.but.saveaspdf = Sauvegarder en PDF\r
+ printdlg.but.preview = Prévisualisation\r
+ printdlg.but.settings = Configuration\r
+ \r
+ ! Material edit panel\r
+ matedtpan.but.new = Nouveau\r
+ matedtpan.but.edit = Editer\r
+ matedtpan.but.delete = Effacer\r
+ matedtpan.but.revertall = Revenir aux valeurs précédente\r
+ matedtpan.col.Material = Matériaux\r
+ matedtpan.col.Type = Type\r
+ matedtpan.col.Density = Densité\r
+ matedtpan.col.but.ttip.New = Ajouter un nouveau matériau\r
+ matedtpan.title.Addcustmaterial = Ajouter un matériau personnalisé\r
+ matedtpan.but.ttip.edit = Modifier un matériau existant\r
+ matedtpan.title.Editmaterial = Modifier un matériau\r
+ matedtpan.title2.Editmaterial = Les matériaux prédéfinis ne peuvent pas être modifiés.\r
+ matedtpan.but.ttip.delete = Supprimer un matériau personnalisé\r
+ matedtpan.but.ttip.revertall = Supprimer tous les matériaux personnalisés\r
+ matedtpan.title.Deletealluser-defined = Effacer tous les matériaux personalisés?\r
+ matedtpan.title.Revertall = Revenir aux valeurs précédentes?\r
+ matedtpan.lbl.edtmaterials = <html><i>Modifier les matériaux n'affectera pas les projets fusée existants.</i>\r
+ \r
+ !MaterialModel\r
+ MaterialModel.title.Material = Matériau\r
+ MaterialModel.title.Defcustmat = Définir un matériau personnalisé\r
+ \r
+ \r
+ ! Preference dialog\r
+ pref.dlg.but.add = Ajouter\r
+ pref.dlg.but.reset = Réinitialiser\r
+ pref.dlg.but.checknow = Vérifier maintenant\r
+ pref.dlg.but.defaultmetric = Système métrique\r
+ pref.dlg.but.defaultimperial = Système imperial\r
+ pref.dlg.title.Preferences = Préférences \r
+ pref.dlg.tab.Units = Unités\r
+ pref.dlg.tab.Defaultunits = Unités par défaut\r
+ pref.dlg.tab.Materials = Matériaux\r
+ pref.dlg.tab.Custommaterials = Matériaux personnalisés\r
+ pref.dlg.tab.Options = Options\r
+ pref.dlg.tab.Miscellaneousoptions = Autres options\r
+ pref.dlg.lbl.Positiontoinsert = Position pour insérer des composants internes:\r
+ pref.dlg.lbl.Confirmdeletion = Confirmer l'effacement des simulations:\r
+ pref.dlg.lbl.User-definedthrust = Courbes de poussée personnalisées:\r
+ pref.dlg.Allthrustcurvefiles = Tous les fichiers de courbes de poussée (*.eng; *.rse; *.zip; répertoires)\r
+ pref.dlg.RASPfiles = Fichiers moteur RASP (*.eng)\r
+ pref.dlg.RockSimfiles = Fichiers moteur RockSim (*.rse)\r
+ pref.dlg.ZIParchives = Archives ZIP (*.zip)\r
+ pref.dlg.checkbox.Checkupdates = Rechercher les mises à jour au démarrage\r
+ pref.dlg.ttip.Checkupdatesnow = Recherchez les mises à jour maintenant\r
+ pref.dlg.lbl.Selectprefunits = Choisissez vos unités favorites:\r
+ pref.dlg.lbl.Rocketdimensions = Dimensions de la fusée:\r
+ pref.dlg.lbl.Linedensity = Epaisseur des lignes:\r
+ pref.dlg.lbl.Motordimensions = Dimensions du moteur:\r
+ pref.dlg.lbl.Surfacedensity = Densité de la Surface:\r
+ pref.dlg.lbl.Distance = Distance:\r
+ pref.dlg.lbl.Bulkdensity = Densité apparente:\r
+ pref.dlg.lbl.Velocity = Vitesse:\r
+ pref.dlg.lbl.Surfaceroughness = Rugosité de la Surface:\r
+ pref.dlg.lbl.Acceleration = Accélération:\r
+ pref.dlg.lbl.Area = Surface:\r
+ pref.dlg.lbl.Mass = Masse:\r
+ pref.dlg.lbl.Angle = Angle:\r
+ pref.dlg.lbl.Force = Force:\r
+ pref.dlg.lbl.Rollrate = Taux de roulis:\r
+ pref.dlg.lbl.Totalimpulse = Impulsion totale:\r
+ pref.dlg.lbl.Temperature = Température:\r
+ pref.dlg.lbl.Momentofinertia = Moment d'inertie:\r
+ pref.dlg.lbl.Pressure = Pression:\r
+ pref.dlg.lbl.Stability = Stabilité:\r
+ pref.dlg.lbl.effect1 = Les changements prendront effet la prochaine fois que vous ouvrirez une fenêtre.\r
+ pref.dlg.lbl.Checkingupdates = Recherche des mises à jour...\r
+ pref.dlg.lbl.msg1 = Une erreur est survenue durant la communication avec le serveur.\r
+ pref.dlg.lbl.msg2 = Incapable de récupérer les informations de mise à jour\r
+ pref.dlg.lbl.msg3 = Vous utilisez la dernière version d'OpenRocket.\r
+ pref.dlg.lbl.msg4 = Pas de mises à jour disponible\r
+ pref.dlg.PrefChoiseSelector1 = Toujours demander\r
+ pref.dlg.PrefChoiseSelector2 = Insérer au milieu\r
+ pref.dlg.PrefChoiseSelector3 = Ajouter à la fin\r
+ pref.dlg.PrefBooleanSelector1 = Supprimer\r
+ pref.dlg.PrefBooleanSelector2 = Confirmer\r
+ pref.dlg.Add = Ajouter\r
+ pref.dlg.DescriptionArea.Adddirectories = Ajouter des répertoires, des fichiers moteurs RASP (*.eng), des fichiers moteurs RockSim (*.rse) ou des fichiers achives ZIP separés par un point virgule (;) pour charger des courbes de pousées externes. Les changements prendront effet au prochain démarrage d'OpenRocket.\r
+ \r
+ \r
+ ! Simulation edit dialog\r
+ simedtdlg.but.runsimulation = Lancer la simulation\r
+ simedtdlg.but.resettodefault = Restaurer les paramètres par défaut\r
+ simedtdlg.but.add = Ajouter\r
+ simedtdlg.but.remove = Enlever\r
+ simedtdlg.title.Editsim = Modifier la simulation\r
+ simedtdlg.lbl.Simname = Nom de la simulation:\r
+ simedtdlg.tab.Launchcond = Conditions de lancement\r
+ simedtdlg.tab.Simopt = Options de simulation\r
+ simedtdlg.tab.Plotdata = Tracer les données\r
+ simedtdlg.tab.Exportdata = Exporter les données\r
+ simedtdlg.lbl.Motorcfg = Configuration moteur:\r
+ simedtdlg.lbl.ttip.Motorcfg = Choisir la configuration moteur à utiliser.\r
+ simedtdlg.combo.ttip.motorconf = Choisir la configuration moteur à utiliser.\r
+ simedtdlg.lbl.Wind = Vent\r
+ simedtdlg.lbl.Averwindspeed = Vitesse moyenne du vent:\r
+ simedtdlg.lbl.ttip.Averwindspeed = Vitesse moyenne du vent par rapport au sol.\r
+ simedtdlg.lbl.Stddeviation = Dérive standard:\r
+ simedtdlg.lbl.ttip.Stddeviation = <html>La dérive standard de la vitesse du vent.<br>La vitesse du vent est le double de l'écart-type de la moyenne dans 95% des cas.\r
+ simedtdlg.lbl.Turbulenceintensity = Intensité de la turbulence:\r
+ simedtdlg.lbl.ttip.Turbulenceintensity1 = <html>L'intensité de la turbulence résulte de la division de la dérive par la vitesse moyenne de vent.<br>\r
+ simedtdlg.lbl.ttip.Turbulenceintensity2 = Les valeurs typiques vont de \r
+ simedtdlg.lbl.ttip.Turbulenceintensity3 = à\r
+ simedtdlg.border.Atmoscond = Conditions atmosphériques\r
+ simedtdlg.checkbox.InterStdAtmosphere = Utiliser les paramètres de l'Atmosphère Standard\r
+ simedtdlg.checkbox.ttip.InterStdAtmosphere1 = <html>Sélectionner pour utiliser les paramètres de l'Atmosphère Standard.<br>Ce modèle à une température de\r
+ simedtdlg.checkbox.ttip.InterStdAtmosphere2 = et une pression de \r
+ simedtdlg.checkbox.ttip.InterStdAtmosphere3 = au niveau de la mer.\r
+ simedtdlg.lbl.Temperature = Température:\r
+ simedtdlg.lbl.ttip.Temperature = Température du site de lancement.\r
+ simedtdlg.lbl.Pressure = Pression:\r
+ simedtdlg.lbl.ttip.Pressure = Pression atmosphérique du site de lancement.\r
+ simedtdlg.lbl.Launchsite = Site de lancement\r
+ simedtdlg.lbl.Latitude = Latitude:\r
+ simedtdlg.lbl.ttip.Latitude = <html>La latitude du site de lancement affecte l'attraction gravitationnelle de la Terre.<br>> Les valeurs positives sont dans l'hémisphère Nord, les valeurs négatives sur l'hémisphère Sud.\r
+ simedtdlg.lbl.Altitude = Altitude:\r
+ simedtdlg.lbl.ttip.Altitude = <html>Altitude du site de lancement par rapport au niveau de la mer.<br>Cela affecte la position de la fusée dans le modèle atmosphérique.\r
+ simedtdlg.border.Launchrod = Rampe de lancement\r
+ simedtdlg.lbl.Length = Longueur:\r
+ simedtdlg.lbl.ttip.Length = Longueur de la rampe.\r
+ simedtdlg.lbl.Angle = Angle:\r
+ simedtdlg.lbl.ttip.Angle = Angle de la rampe de lancement par rapport à la verticale.\r
+ simedtdlg.lbl.Direction = Direction:\r
+ simedtdlg.lbl.ttip.Direction1 = <html>Direction de la rampe de lance par rapport au vent.<br>\r
+ simedtdlg.lbl.ttip.Direction2 = = Face au vent,\r
+ simedtdlg.lbl.ttip.Direction3 = = vent arrière.\r
+ simedtdlg.border.Simopt = Options de simulation\r
+ simedtdlg.lbl.Calcmethod = Méthode de calcul:\r
+ simedtdlg.lbl.ttip.Calcmethod = <html>La méthode Barrowman étendue calcule les forces aérodynamique selon <br>les équations de Barrowman étendues pour arranger plus de pièces.\r
+ simedtdlg.lbl.ExtBarrowman = Barrowman étendu\r
+ simedtdlg.lbl.Simmethod = Méthode de Simulation:\r
+ simedtdlg.lbl.ttip.Simmethod1 = <html>Le simulateur de six degrés de liberté permet la liberté totale de fusée en vol.<br>\r
+ simedtdlg.lbl.ttip.Simmethod2 = Integration is performed using a 4<sup>th</sup> order Runge-Kutta 4 numerical integration.\r
+ simedtdlg.lbl.Timestep = Règlage du pas de temps:\r
+ simedtdlg.lbl.ttip.Timestep1 = <html>Le temps entre les étapes de la simulation.<br>Avec un pas de temps plus petit la simulation est plus lente mais également plus précise.<br>\r
+ simedtdlg.lbl.ttip.Timestep2 = The 4<sup>th</sup> order simulation method is quite accurate with a time step of\r
+ simedtdlg.but.ttip.resettodefault = Réinitialiser le pas de temps à sa valeur par défaut (\r
+ simedtdlg.border.Simlist = Auditeurs de simulation\r
+ simedtdlg.txt.longA1 = <html><i>Les auditeurs de simulation</i> sont une fonction avancé qui permet à l'utilisateur d'écrire du code pour suivre et interagir avec la simulation. \r
+ simedtdlg.txt.longA2 = Pour plus de détails sur les auditeurs de simulation, reférez vous à la documentation technique d'OpenRocket.\r
+ simedtdlg.lbl.Curlist = Auditeurs de simulation actuel:\r
+ simedtdlg.lbl.Addsimlist = Ajouter un "auditeur de simulation"\r
+ simedtdlg.lbl.Noflightdata = Aucune donnée de vol disponible.\r
+ simedtdlg.lbl.runsimfirst = S'il vous plait faites tourner la simulation d'abord.\r
+ simedtdlg.chart.Simflight = Vol simulé\r
+ simedtdlg.dlg.Simres = Résultats de la simulation\r
+ simedtdlg.IntensityDesc.None = Aucune\r
+ simedtdlg.IntensityDesc.Verylow = Très basse\r
+ simedtdlg.IntensityDesc.Low = Basse\r
+ simedtdlg.IntensityDesc.Medium = Moyenne\r
+ simedtdlg.IntensityDesc.High = Haute\r
+ simedtdlg.IntensityDesc.Veryhigh = Très haute\r
+ simedtdlg.IntensityDesc.Extreme = Extreme\r
+ \r
+ \r
+ \r
+ \r
+ ! Simulation Panel\r
+ simpanel.but.newsimulation = Nouvelle simulation\r
+ simpanel.but.editsimulation = Modifier la simulation\r
+ simpanel.but.runsimulations = Lancer les simulations\r
+ simpanel.but.deletesimulations = Effacer les simulations\r
+ simpanel.but.plotexport = Tracer / exporter\r
+ simpanel.but.ttip.newsimulation = Ajouter une nouvelle simulation\r
+ simpanel.but.ttip.editsim = Modifier la simulation sélectionnée\r
+ simpanel.but.ttip.runsimu = Recommencer la simulation sélectionnée\r
+ simpanel.but.ttip.deletesim = Effacer les simulations sélectionnées\r
+ simpanel.checkbox.donotask = Ne plus me demander\r
+ simpanel.lbl.defpref = Vous pouvez changer le mode opératoire par défaut dans préferences.\r
+ simpanel.dlg.lbl.DeleteSim1 = Effacer les simulations sélectionnées?\r
+ simpanel.dlg.lbl.DeleteSim2 = <html><i>Cette opération n'est pas réversible.</i>\r
+ simpanel.dlg.lbl.DeleteSim3 = Effacer les simulations\r
+ simpanel.col.Name = Nom\r
+ simpanel.col.Motors = Moteurs\r
+ simpanel.col.Apogee = Apogée\r
+ simpanel.col.Maxvelocity = Vélocité Max.\r
+ simpanel.col.Maxacceleration = Accélération Max.\r
+ simpanel.col.Timetoapogee = Temps pour atteindre l'apogée\r
+ simpanel.col.Flighttime = Temps de vol\r
+ simpanel.col.Groundhitvelocity = Vitesse à l'atterrissage\r
+ \r
+ ! SimulationRunDialog\r
+ SimuRunDlg.title.RunSim = Simulations en cour...\r
+ SimuRunDlg.lbl.Running = En cour ...\r
+ SimuRunDlg.lbl.Simutime = Temps de simulation:\r
+ SimuRunDlg.lbl.Altitude = Altitude:\r
+ SimuRunDlg.lbl.Velocity = Vélocité:\r
+ SimuRunDlg.msg.Unabletosim = Simulation impossible:\r
+ SimuRunDlg.msg.errorOccurred = Une erreur s'est produite durant la simulation:\r
+ SimuRunDlg.msg.AnException1 = Une exception s'est produite lors de la simulation:\r
+ SimuRunDlg.msg.AnException2 = S'il vous plaît faites un rapport d'erreurs avec les détails ci-dessous.\r
+ SimuRunDlg.msg.AssertionError1 = Une erreur de calcul s'est produite lors de la simulation.\r
+ SimuRunDlg.msg.AssertionError2 = S'il vous plaît faites un rapport d'erreurs avec les détails ci-dessous.\r
+ SimuRunDlg.msg.unknownerror1 = Une erreur inconnue s'est produite lors de la simulation.\r
+ SimuRunDlg.msg.unknownerror2 = Le programme peut être instable, vous devez enregistrer toutes vos créations et redémarrez OpenRocket maintenant!\r
+ \r
+ \r
+ ! SimulationExportPanel\r
+ SimExpPan.desc = Fichiers dont les données sont séparées par une virgule (*.csv)\r
+ SimExpPan.border.Vartoexport = Variables à exporter\r
+ SimExpPan.but.Selectall = Tout sélectionner\r
+ SimExpPan.but.Selectnone = Ne rien sélectionner\r
+ SimExpPan.border.Fieldsep = Séparateur de champ\r
+ SimExpPan.lbl.Fieldsepstr = Séparateur de champ:\r
+ SimExpPan.lbl.longA1 = <html>La chaîne utilisée pour séparer les champs dans le fichier exporté.<br>\r
+ SimExpPan.lbl.longA2 = Utiliser ',' pour un fichier (CSV).\r
+ SimExpPan.checkbox.Includesimudesc = Inclure la description de la simulation\r
+ SimExpPan.checkbox.ttip.Includesimudesc = Inclure un commentaire au début du fichier pour décrire la simulation.\r
+ SimExpPan.border.Comments = Commentaires\r
+ SimExpPan.checkbox.Includefielddesc = Inclure les descriptions des champs\r
+ SimExpPan.checkbox.ttip.Includefielddesc = Inclure une ligne de commentaire avec la description des variables exportées.\r
+ SimExpPan.checkbox.Incflightevents = Inclure les événements de vol\r
+ SimExpPan.checkbox.ttip.Incflightevents = Inclure une ligne de commentaire pour chaque évènement de vol.\r
+ SimExpPan.lbl.Commentchar = Symbole pour les commentaires:\r
+ SimExpPan.lbl.ttip.Commentchar = Le symbole utilisé pour une ligne de commentaires.\r
+ SimExpPan.but.Exporttofile = Exporter dans un fichier...\r
+ SimExpPan.Fileexists.desc1 = Le fichier \"\r
+ SimExpPan.Fileexists.desc2 = \" existe déjà. Ecraser?\r
+ SimExpPan.Fileexists.title = Le fichier existe\r
+ SimExpPan.ExportingVar.desc1 = Exporter 1 variable sur un total de\r
+ SimExpPan.ExportingVar.desc2 = Exportation\r
+ SimExpPan.ExportingVar.desc3 = variable sur un total de\r
+ SimExpPan.Col.Variable = Variable\r
+ SimExpPan.Col.Unit = Unité\r
+ \r
+ ! MotorPlot\r
+ MotorPlot.title.Motorplot = Courbe du moteur\r
+ MotorPlot.but.Select = Selection\r
+ MotorPlot.Chart.Motorthrustcurve = Courbe de poussée moteur\r
+ MotorPlot.Chart.Time = Temps / s\r
+ MotorPlot.Chart.Thrust = Poussée / N\r
+ MotorPlot.txt.Designation = Désignation:\r
+ MotorPlot.txt.Manufacturer = Manufacturer:\r
+ MotorPlot.txt.Type = Type:\r
+ MotorPlot.txt.Delays = Retards:\r
+ MotorPlot.txt.Comment = Commentaires:\n\r
+ \r
+ \r
+ \r
+ ! Simulation plot panel\r
+ simplotpanel.lbl.Presetplotconf = Prédéfinir les paramètres du tracé:\r
+ simplotpanel.lbl.Xaxistype = Axe des X:\r
+ simplotpanel.lbl.Unit = Unités:\r
+ simplotpanel.lbl.Yaxistypes = Axe des Y:\r
+ simplotpanel.lbl.Flightevents = Evénements du vol:\r
+ simplotpanel.but.All = Tous\r
+ simplotpanel.but.None = Aucun\r
+ simplotpanel.but.NewYaxisplottype = Nouveau type de tracé de l'axe Y\r
+ simplotpanel.but.Plotflight = Tracer le vol\r
+ simplotpanel.lbl.Axis = Axes:\r
+ simplotpanel.but.ttip.Removethisplot = Effacer le tracé\r
+ simplotpanel.Desc = Les données seront tracées en fonction du temps même si le type d'Axe des abscisses n'est pas le temps.\r
+ simplotpanel.OptionPane.lbl1 = Un maximum de 15 tracés est permis. \r
+ simplotpanel.OptionPane.lbl2 = Impossible d'ajouter le tracé\r
+ simplotpanel.AUTO_NAME = Auto\r
+ simplotpanel.LEFT_NAME = Gauche\r
+ simplotpanel.RIGHT_NAME = Droite\r
+ simplotpanel.CUSTOM = Personnalisé\r
+ \r
+ \r
+ \r
+ ! Component add buttons\r
+ compaddbuttons.Bodycompandfinsets = Pièces du corps et ailerons\r
+ compaddbuttons.Nosecone = Cône\r
-compaddbuttons.Launchlug = Tube de guidage\r
++compaddbuttons.Bodytube = Tube du\ncorps\r
+ compaddbuttons.Transition = Transition\r
+ compaddbuttons.Trapezoidal = Trapézoïdale\r
+ compaddbuttons.Elliptical = Elliptique\r
+ compaddbuttons.Freeform = Forme libre\r
-compaddbuttons.Centeringring = Anneau\nde centrage\r
++compaddbuttons.Launchlug = Tube de\nguidage\r
+ compaddbuttons.Innercomponent = Pièces internes\r
+ compaddbuttons.Innertube = Tube interne\r
+ compaddbuttons.Coupler = Coupleur\r
-compaddbuttons.Engineblock = Bague \nde rétention\nmoteur\r
++compaddbuttons.Centeringring = Anneau de\ncentrage\r
+ compaddbuttons.Bulkhead = Cloison\r
-compaddbuttons.Shockcord = Cordon amortisseur\r
++compaddbuttons.Engineblock = Bague de\nrétention\nmoteur\r
+ compaddbuttons.Massobjects = Pièces pleines\r
+ compaddbuttons.Parachute = Parachute\r
+ compaddbuttons.Streamer = Banderole\r
-Databases.materials.Creapepaper = Cr\u00eape paper\r
++compaddbuttons.Shockcord = Cordon\namortisseur\r
+ compaddbuttons.Masscomponent = Poids\r
+ compaddbuttons.Donotaskmeagain = Ne plus me poser la question\r
+ compaddbuttons.Selectcomppos = Position de la pièce\r
+ compaddbuttons.lbl.Youcanchange = Vous pouvez modifier le fonctionnement par défaut dans les préférences.\r
+ compaddbuttons.lbl.insertcomp = Insérez la pièce après l'élément actuel ou en tant que dernier élément?\r
+ compaddbuttons.askPosition.Inserthere = Ajouter ici\r
+ compaddbuttons.askPosition.Addtotheend = Ajouter à la fin\r
+ compaddbuttons.askPosition.Cancel = Annuler\r
+ \r
+ ! Component Analysis Dialog\r
+ componentanalysisdlg.Componentanalysis = Analyse pièce\r
+ componentanalysisdlg.lbl.winddir = Direction du vent:\r
+ componentanalysisdlg.TitledBorder.warnings = Avertissements:\r
+ componentanalysisdlg.ToggleBut.worst = Pire\r
+ componentanalysisdlg.lbl.angleofattack = Angle d'attaque:\r
+ componentanalysisdlg.lbl.machnumber = Mach number:\r
+ componentanalysisdlg.lbl.rollrate = Taux de roulis:\r
+ componentanalysisdlg.lbl.activestages = Etages actifs:\r
+ componentanalysisdlg.lbl.motorconf = Configuration moteur:\r
+ componentanalysisdlg.TabStability.Col.Component = Pièce\r
+ componentanalysisdlg.TabStability = Stabilité\r
+ componentanalysisdlg.TabStability.ttip = Information de stabilité\r
+ componentanalysisdlg.dragTableModel.Col.Component = Pièce\r
+ componentanalysisdlg.dragTableModel.Col.Pressure = <html>Pression C<sub>D</sub>\r
+ componentanalysisdlg.dragTableModel.Col.Base = <html>Base C<sub>D</sub>\r
+ componentanalysisdlg.dragTableModel.Col.friction = <html>Friction C<sub>D</sub>\r
+ componentanalysisdlg.dragTableModel.Col.total = <html>Total C<sub>D</sub>\r
+ componentanalysisdlg.dragTabchar = Caractéristiques de traînée\r
+ componentanalysisdlg.dragTabchar.ttip = Caractéristiques de traînée\r
+ componentanalysisdlg.rollTableModel.Col.component = Pièce\r
+ componentanalysisdlg.rollTableModel.Col.rollforc = Coefficient de forçage de roulis\r
+ componentanalysisdlg.rollTableModel.Col.rolldamp = Coefficient amortisseur de roulis\r
+ componentanalysisdlg.rollTableModel.Col.total = <html>Total C<sub>l</sub>\r
+ componentanalysisdlg.rollTableModel = Dynamique du roulis\r
+ componentanalysisdlg.rollTableModel.ttip = Dynamique du roulis\r
+ componentanalysisdlg.println.closingmethod = Méthode de clôture appelée:\r
+ componentanalysisdlg.println.settingnam = SETTING NAN VALUES\r
+ componentanalysisdlg.lbl.reflenght = Longueur de référence: \r
+ componentanalysisdlg.lbl.refarea = Aire de référence: \r
+ !componentanalysisdlg.but.close =Fermer\r
+ \r
+ ! Custom Material dialog\r
+ custmatdlg.title.Custommaterial = Matériau personnalisé\r
+ custmatdlg.lbl.Materialname = Nom du matériau: \r
+ custmatdlg.lbl.Materialtype = Type de matériau:\r
+ custmatdlg.lbl.Materialdensity = Densité du matériau:\r
+ custmatdlg.checkbox.Addmaterial = Ajouter la pièce dans la base de données\r
+ \r
+ \r
+ ! Ring Component Config\r
+ ringcompcfg.OuterRadius = Diamètre extérieur\r
+ ringcompcfg.Automatic = Automatique\r
+ ringcompcfg.InnerRadius = Diamètre intérieur\r
+ ringcompcfg.Thickness = Epaisseur\r
+ ringcompcfg.Length = Longueur\r
+ ringcompcfg.Positionrelativeto = Position relative à:\r
+ ringcompcfg.plus = plus\r
+ !ringcompcfg.PositionValue = PositionValue\r
+ ringcompcfg.Radialdistance = Rayon:\r
+ ringcompcfg.Distancefrom = Distance de l'axe central de la fusée\r
+ ringcompcfg.Radialdirection = Azimut\r
+ ringcompcfg.radialdirectionfrom = Sens par rapport à l'axe central de la fusée\r
+ ringcompcfg.but.Reset = Réinitialisation\r
+ ringcompcfg.but.Resetcomponant = Réinitialiser la pièce à l'axe de la fusée\r
+ ringcompcfg.EngineBlock.desc = <html>Un <b>bloc moteur </b> empêche le moteur de se déplacer vers l'avant dans le tube porte moteur.<br><br>Pour ajouter un moteur, créer un <b>tube</b> ou un <b>tube interne</b> et marquer le comme porte moteur dans l'onglet <em>Moteur</em>.\r
+ ringcompcfg.note.desc = A noter: Un tube interne n'affectera pas l'aerodynamisme de la fusée meme si il est situé en dehors du tube.\r
+ \r
+ \r
+ \r
+ ! Body Tube Config\r
+ BodyTubecfg.lbl.Bodytubelength = Longueur du tube:\r
+ BodyTubecfg.lbl.Outerdiameter = Diamètre externe:\r
+ BodyTubecfg.lbl.Innerdiameter = Diamètre interne:\r
+ BodyTubecfg.lbl.Wallthickness = Epaisseur des parois:\r
+ BodyTubecfg.tab.General = Général\r
+ BodyTubecfg.tab.Generalproperties = Propriétés générales\r
+ BodyTubecfg.tab.Motor = Moteur\r
+ BodyTubecfg.tab.Motormountconf = Configuration porte moteur\r
+ BodyTubecfg.checkbox.Automatic = Automatique\r
+ BodyTubecfg.checkbox.Filled = Aspérités bouchées\r
+ \r
+ ! FinSetConfig\r
+ FinSetConfig.tab.Fintabs = Pattes des ailerons\r
+ FinSetConfig.tab.Through-the-wall = Ailerons traversant le fuselage\r
+ FinSetConfig.but.Converttofreeform = Convertir en forme libre\r
+ FinSetConfig.but.Converttofreeform.ttip = Convertir ce jeu d'ailerons en forme libre\r
+ FinSetConfig.Convertfinset = Convertir le jeu d'ailerons\r
+ FinSetConfig.but.Splitfins = Séparer les ailerons\r
+ FinSetConfig.but.Splitfins.ttip = Diviser le jeu d'ailerons en aileron indépendant\r
+ FinSetConfig.lbl.Through-the-wall = Ailerons traversant le fuselage:\r
+ FinSetConfig.lbl.Tablength = Longueur de la patte:\r
+ FinSetConfig.ttip.Tablength = La longueur de la patte de l'aileron.\r
+ FinSetConfig.lbl.Tabheight = Hauteur de la patte:\r
+ FinSetConfig.ttip.Tabheight = La hauteur de l'envergure de la patte de l'aileron.\r
+ FinSetConfig.lbl.Tabposition = Position de la patte:\r
+ FinSetConfig.ttip.Tabposition = La position de la patte de l'ailerons.\r
+ FinSetConfig.lbl.relativeto = relative à\r
+ \r
+ ! MotorDatabaseLoadingDialog\r
+ MotorDbLoadDlg.title = Chargement des moteurs\r
+ MotorDbLoadDlg.Loadingmotors = Chargement des moteurs...\r
+ \r
+ ! RocketConfig\r
+ RocketCfg.lbl.Designname = Nom du projet:\r
+ RocketCfg.lbl.Designer = Concepteur:\r
+ RocketCfg.lbl.Comments = Commentaires:\r
+ RocketCfg.lbl.Revisionhistory = Historique des modifications:\r
+ RocketCfg.lbl.Material = Matériaux:\r
+ \r
+ ! ShockCordConfig\r
+ ShockCordCfg.lbl.Shockcordlength = Longueur du cordon amortisseur\r
+ \r
+ ! RocketComponentConfig\r
+ RocketCompCfg.lbl.Componentname = Nom de la pièce:\r
+ RocketCompCfg.ttip.Thecomponentname = Le nom de la pièce.\r
+ RocketCompCfg.tab.Override = Forcer la valeur\r
+ RocketCompCfg.tab.MassandCGoverride = Forçage de la Masse et du CG\r
+ RocketCompCfg.tab.Figure = Forme\r
+ RocketCompCfg.tab.Figstyleopt = Options de la forme\r
+ RocketCompCfg.tab.Comment = Commentaires\r
+ RocketCompCfg.tab.Specifyacomment = Commentaires concernant la pièce\r
+ RocketCompCfg.lbl.Mass = Masse:\r
+ RocketCompCfg.lbl.Componentmass = Masse de la pièce:\r
+ RocketCompCfg.lbl.overriddento = (forcé à\r
+ RocketCompCfg.lbl.overriddenby = (forcé par\r
+ RocketCompCfg.lbl.Componentmaterial = Matériaux composant la pièce:\r
+ RocketCompCfg.lbl.Componentfinish = Finition de la pièce:\r
+ RocketCompCfg.lbl.ttip.componentmaterialaffects = Les matériaux utilisés pour la pièce affectent le poids de la pièce.\r
+ RocketCompCfg.combo.ttip.componentmaterialaffects = Les matériaux utilisés pour la pièce affectent le poids de la pièce.\r
+ RocketCompCfg.lbl.longA1 = <html>La finition de la pièce affecte l'aérodynamisme de la pièce.<br>\r
+ RocketCompCfg.lbl.longA2 = La valeur indiquée est la hauteur moyenne de la rugosité de la surface.\r
+ RocketCompCfg.but.Setforall = Appliquer à tous\r
+ RocketCompCfg.but.ttip.Setforall = Régler la finition pour tous les composants de la fusée.\r
+ RocketCompCfg.lbl.Overridemassorcenter = Forcer la masse ou le centre de gravité du \r
+ RocketCompCfg.checkbox.Overridemass = Forcer la masse:\r
+ RocketCompCfg.checkbox.Overridecenterofgrav = Forcer le centre de gravité:\r
+ RocketCompCfg.checkbox.OverridemassandCG = Forcer la masse et le centre de gravité de tous les sous composants\r
+ RocketCompCfg.lbl.longB1 = <html>Le forçage de la masse n'inclus pas le ou les moteurs.<br>\r
+ RocketCompCfg.lbl.longB2 = Le centre de gravité est mesuré à partir de l'extrémité avant de la fusée\r
+ RocketCompCfg.lbl.Commentsonthe = Commentaires à propos du \r
+ RocketCompCfg.lbl.Figurestyle = Modèle de forme:\r
+ RocketCompCfg.lbl.Componentcolor = Couleur de la pièce:\r
+ RocketCompCfg.lbl.Choosecolor = Choisir la couleur\r
+ RocketCompCfg.checkbox.Usedefaultcolor = Utiliser la couleur par défaut\r
+ RocketCompCfg.lbl.Complinestyle = Style de lignes pour les pièces:\r
+ RocketCompCfg.but.Saveasdefstyle = Sauver le modèle par défaut\r
+ RocketCompCfg.lbl.Diameter = Diamètre:\r
+ RocketCompCfg.lbl.Length = Longueur:\r
+ RocketCompCfg.lbl.Thickness = Epaisseur:\r
+ RocketCompCfg.checkbox.Endcapped = Arrière clos \r
+ RocketCompCfg.ttip.Endcapped = Whether the end of the shoulder is capped.\r
+ RocketCompCfg.title.Noseconeshoulder = accotement du cône\r
+ RocketCompCfg.title.Aftshoulder = accotement arrière\r
+ RocketCompCfg.border.Foreshoulder = Fore shoulder \r
+ !RocketCompCfg.lbl.Length = Length:\r
+ \r
+ ! BulkheadConfig\r
+ BulkheadCfg.tab.Radius = Rayon:\r
+ BulkheadCfg.tab.Thickness = Epaisseur:\r
+ BulkheadCfg.tab.General = Général\r
+ BulkheadCfg.tab.Generalproperties = Propriétés générales\r
+ \r
+ !CenteringRingConfig\r
+ CenteringRingCfg.tab.Outerdiam = Diamètre externe:\r
+ CenteringRingCfg.tab.Innerdiam = Diamètre interne:\r
+ CenteringRingCfg.tab.Thickness = Epaisseur:\r
+ CenteringRingCfg.tab.General = Général\r
+ CenteringRingCfg.tab.Generalproperties = Propriétés Générales\r
+ \r
+ !ComponentConfigDialog\r
+ ComponentCfgDlg.configuration = configuration\r
+ ComponentCfgDlg.Modify = Modifier\r
+ \r
+ !EllipticalFinSetConfig\r
+ EllipticalFinSetCfg.Nbroffins = Nombre d'ailerons:\r
+ EllipticalFinSetCfg.Rotation = Rotation:\r
+ EllipticalFinSetCfg.Fincant = Inclinaison de l'aileron:\r
+ EllipticalFinSetCfg.Rootchord = Emplanture:\r
+ EllipticalFinSetCfg.Height = Hauteur:\r
+ EllipticalFinSetCfg.Positionrelativeto = Position relative à:\r
+ EllipticalFinSetCfg.plus = plus\r
+ EllipticalFinSetCfg.FincrossSection = Coupe de l'aileron:\r
+ EllipticalFinSetCfg.Thickness = Epaisseur:\r
+ EllipticalFinSetCfg.General = Général\r
+ EllipticalFinSetCfg.Generalproperties = Propriétés Générales\r
+ EllipticalFinSetCfg.ttip.Fincant = Angle d'inclinaison des ailerons par rapport au corps de la fusée\r
+ \r
+ !FreeformFinSetConfig\r
+ FreeformFinSetCfg.tab.General = Général\r
+ FreeformFinSetCfg.tab.ttip.General = Propriétés générales\r
+ FreeformFinSetCfg.tab.Shape = Forme\r
+ FreeformFinSetCfg.tab.ttip.Finshape = Forme de l'aileron\r
+ FreeformFinSetCfg.lbl.Numberoffins = Nombre d'ailerons:\r
+ FreeformFinSetCfg.lbl.Finrotation = Rotation des ailerons:\r
+ FreeformFinSetCfg.lbl.Fincant = Inclinaison de l'aileron:\r
+ FreeformFinSetCfg.lbl.ttip.Fincant = angle d'inclinaison des ailerons par rapport au corps de la fusée.\r
+ FreeformFinSetCfg.lbl.Posrelativeto = Position par rapport à:\r
+ FreeformFinSetCfg.lbl.plus = plus\r
+ FreeformFinSetCfg.lbl.FincrossSection = Coupe de l'aileron:\r
+ FreeformFinSetCfg.lbl.Thickness = Epaisseur:\r
+ \r
+ !InnerTubeConfig\r
+ InnerTubeCfg.tab.Motor = Moteur\r
+ InnerTubeCfg.tab.ttip.Motor = Configuration du porte moteur\r
+ InnerTubeCfg.tab.Cluster = Cluster\r
+ InnerTubeCfg.tab.ttip.Cluster = Configuration du cluster\r
+ InnerTubeCfg.tab.Radialpos = Position circulaire\r
+ InnerTubeCfg.tab.ttip.Radialpos = Position circulaire\r
+ InnerTubeCfg.lbl.Selectclustercfg = Choisir la configuration du cluster:\r
+ InnerTubeCfg.lbl.TubeSep = Séparation du tube:\r
+ InnerTubeCfg.lbl.ttip.TubeSep = La Séparation des tubes, 1.0 = chacun se touche\r
+ InnerTubeCfg.lbl.Rotation = Rotation:\r
+ InnerTubeCfg.lbl.ttip.Rotation = Angle de rotation du cluster\r
+ InnerTubeCfg.lbl.Rotangle = Angle de rotation de la configuration du cluster\r
+ InnerTubeCfg.but.Splitcluster = Séparer le cluster\r
+ InnerTubeCfg.lbl.longA1 = <html>séparer le cluster en pièces distinctes.<br>\r
+ InnerTubeCfg.lbl.longA2 = Cela duplique également tous les composants rattacher à ce tube interne.\r
+ InnerTubeCfg.but.Resetsettings = Réinitialiser les réglages\r
+ InnerTubeCfg.but.ttip.Resetsettings = Réinitialiser la séparation et la rotation aux valeurs par défauts\r
+ \r
+ ! LaunchLugConfig\r
+ LaunchLugCfg.lbl.Length = Longueur:\r
+ LaunchLugCfg.lbl.Outerdiam = Diamètre externe:\r
+ LaunchLugCfg.lbl.Innerdiam = Diamètre interne:\r
+ LaunchLugCfg.lbl.Thickness = Epaisseur:\r
+ LaunchLugCfg.lbl.Radialpos = Position circulaire:\r
+ LaunchLugCfg.lbl.Posrelativeto = Position relative à:\r
+ LaunchLugCfg.lbl.plus = plus\r
+ LaunchLugCfg.tab.General = Général\r
+ LaunchLugCfg.tab.Generalprop = Propriétés Générales\r
+ \r
+ ! MassComponentConfig\r
+ MassComponentCfg.lbl.Mass = Masse\r
+ MassComponentCfg.lbl.Length = Longueur\r
+ MassComponentCfg.lbl.Diameter = Diamètre\r
+ MassComponentCfg.lbl.PosRelativeto = Position relative à:\r
+ MassComponentCfg.lbl.plus = plus\r
+ MassComponentCfg.tab.General = Général\r
+ MassComponentCfg.tab.ttip.General = Propriétés Générales\r
+ MassComponentCfg.tab.Radialpos = Position sur le périmètre\r
+ MassComponentCfg.tab.ttip.Radialpos = Configuration de la position sur le périmètre\r
+ MassComponentCfg.lbl.Radialdistance = Rayon:\r
+ MassComponentCfg.lbl.Radialdirection = Azimut:\r
+ MassComponentCfg.but.Reset = Réinitialiser\r
+ \r
+ ! MotorConfig\r
+ MotorCfg.checkbox.compmotormount = Cette pièce est un porte moteur\r
+ MotorCfg.lbl.Motorcfg = Configuration du moteur:\r
+ MotorCfg.but.New = Nouveau\r
+ MotorCfg.lbl.Currentmotor = Moteur actuel:\r
+ MotorCfg.lbl.Motoroverhang = Surplomb du moteur:\r
+ MotorCfg.lbl.Ignitionat = Allumage à:\r
+ MotorCfg.lbl.plus = plus\r
+ MotorCfg.lbl.seconds = secondes\r
+ MotorCfg.lbl.longA1 = Le projet actuel n'a qu'un étage.\r
+ MotorCfg.lbl.longA2 = Des étages peuvent-être ajoutés en cliquant \"Nouvel étage\".\r
+ MotorCfg.lbl.longB1 = Le projet actuel a\r
+ MotorCfg.lbl.longB2 = étage(s).\r
+ MotorCfg.but.Selectmotor = Choisir le moteur\r
+ MotorCfg.but.Removemotor = Enlever le moteur\r
+ MotorCfg.lbl.motorLabel = Aucun\r
+ \r
+ ! NoseConeConfig\r
+ NoseConeCfg.lbl.Noseconeshape = Forme du nez de la fusée:\r
+ NoseConeCfg.lbl.Shapeparam = Paramètre de la forme:\r
+ NoseConeCfg.lbl.Noseconelength = Longueur du nez de la fusée:\r
+ NoseConeCfg.lbl.Basediam = Diamètre de la base:\r
+ NoseConeCfg.checkbox.Automatic = Automatique\r
+ NoseConeCfg.lbl.Wallthickness = Epaisseur de la paroi:\r
+ NoseConeCfg.checkbox.Filled = Aspérités bouchées\r
+ NoseConeCfg.tab.General = Général\r
+ NoseConeCfg.tab.ttip.General = Propriétés générales\r
+ NoseConeCfg.tab.Shoulder = Accotement\r
+ NoseConeCfg.tab.ttip.Shoulder = Propriétés de l'accotement\r
+ \r
+ ! ParachuteConfig\r
+ ParachuteCfg.lbl.Canopy = Canopée:\r
+ ParachuteCfg.lbl.Diameter = Diamètre:\r
+ ParachuteCfg.lbl.Material = Matériau:\r
+ ParachuteCfg.combo.MaterialModel = La nature du matériau affecte le poids de la pièce.\r
+ ParachuteCfg.lbl.longA1 = <html>Coefficient de traînée C<sub>D</sub>:\r
+ ParachuteCfg.lbl.longB1 = <html>Le coefficient de traînée dépend de la surface totale du parachute.<br>\r
+ ParachuteCfg.lbl.longB2 = Un plus grand coefficient de trainée produit une descente plus lente. \r
+ ParachuteCfg.lbl.longB3 = Une valeur standard pour le parachute est 0.8.\r
+ ParachuteCfg.but.Reset = Réinitialiser\r
+ ParachuteCfg.lbl.Shroudlines = Suspentes:\r
+ ParachuteCfg.lbl.Numberoflines = Nombre de suspentes:\r
+ ParachuteCfg.lbl.Linelength = Longueur des suspentes:\r
+ ParachuteCfg.lbl.Material = Matériau:\r
+ ParachuteCfg.lbl.Posrelativeto = Position relative à:\r
+ ParachuteCfg.lbl.plus = plus\r
+ ParachuteCfg.lbl.Packedlength = Longueur plié:\r
+ ParachuteCfg.lbl.Packeddiam = Diamètre plié:\r
+ ParachuteCfg.lbl.Deploysat = Déploiement à:\r
+ ParachuteCfg.lbl.seconds = secondes\r
+ ParachuteCfg.lbl.Altitude = Altitude:\r
+ ParachuteCfg.tab.General = Général\r
+ ParachuteCfg.tab.ttip.General = Propriétés générales\r
+ ParachuteCfg.tab.Radialpos = Position sur le périmètre\r
+ ParachuteCfg.tab.ttip.Radialpos = Configuration de la position radial\r
+ ParachuteCfg.lbl.Radialdistance = Rayon:\r
+ ParachuteCfg.lbl.Radialdirection = Azimut:\r
+ ParachuteCfg.but.Reset = Réinitialiser\r
+ \r
+ ! ShockCordConfig \r
+ ShockCordCfg.lbl.Shockcordlength = Longueur du cordon amortisseur\r
+ ShockCordCfg.lbl.Shockcordmaterial = Matériau du cordon amortisseur:\r
+ ShockCordCfg.lbl.Posrelativeto = Position relative à:\r
+ ShockCordCfg.lbl.plus = plus\r
+ ShockCordCfg.lbl.Packedlength = Longueur emballé:\r
+ ShockCordCfg.lbl.Packeddiam = Diamètre emballé:\r
+ ShockCordCfg.tab.General = Général\r
+ ShockCordCfg.tab.ttip.General = Propriétés générales\r
+ \r
+ !SleeveConfig\r
+ SleeveCfg.tab.Outerdiam = Diamètre externe:\r
+ SleeveCfg.tab.Innerdiam = Diamètre interne:\r
+ SleeveCfg.tab.Wallthickness = Epaisseur des parois:\r
+ SleeveCfg.tab.Length = Longueur:\r
+ SleeveCfg.tab.General = Général\r
+ SleeveCfg.tab.Generalproperties = Propriétés générales\r
+ \r
+ ! StreamerConfig\r
+ StreamerCfg.lbl.Striplength = Longueur de la bande:\r
+ StreamerCfg.lbl.Stripwidth = Largeur de la bande:\r
+ StreamerCfg.lbl.Striparea = Surface de la bande:\r
+ StreamerCfg.lbl.Aspectratio = Aspect ratio:\r
+ StreamerCfg.lbl.Material = Matériau:\r
+ StreamerCfg.combo.ttip.MaterialModel = La nature du matériau affecte le poids de la pièce.\r
+ StreamerCfg.lbl.longA1 = <html>Coefficient de traînée C<sub>D</sub>:\r
+ StreamerCfg.lbl.longB1 = <html>Le coefficient de trainée dépend de la surface totale de la banderole.<br>\r
+ StreamerCfg.lbl.longB2 = Un plus grand coefficient de trainée produit une descente plus lente.\r
+ StreamerCfg.lbl.Automatic = Automatique\r
+ StreamerCfg.lbl.longC1 = le coefficient de trainée dépend de la surface totale de la banderole.\r
+ StreamerCfg.lbl.Posrelativeto = Position relative à:\r
+ StreamerCfg.lbl.plus = plus\r
+ StreamerCfg.lbl.Packedlength = Longueur emballé:\r
+ StreamerCfg.lbl.Packeddiam = Diamètre emballé:\r
+ StreamerCfg.lbl.Deploysat = Déploiement à:\r
+ StreamerCfg.lbl.seconds = secondes\r
+ StreamerCfg.lbl.Altitude = Altitude:\r
+ StreamerCfg.tab.General = Général\r
+ StreamerCfg.tab.ttip.General = Propriétés générales\r
+ StreamerCfg.tab.Radialpos = Position sur le périmètre\r
+ StreamerCfg.tab.ttip.Radialpos = Configuration de la position sur le périmètre\r
+ StreamerCfg.lbl.Radialdistance = Rayon:\r
+ StreamerCfg.lbl.Radialdirection = Azimut:\r
+ StreamerCfg.but.Reset = Réinitialiser\r
+ \r
+ ! ThicknessRingComponentConfig\r
+ ThicknessRingCompCfg.tab.Outerdiam = Diamètre externe:\r
+ ThicknessRingCompCfg.tab.Innerdiam = Diamètre interne:\r
+ ThicknessRingCompCfg.tab.Wallthickness = Epaisseur de la paroi:\r
+ ThicknessRingCompCfg.tab.Length = Longueur:\r
+ ThicknessRingCompCfg.tab.General = Général\r
+ ThicknessRingCompCfg.tab.Generalprop = Propriétés générales\r
+ \r
+ ! TransitionConfig\r
+ TransitionCfg.lbl.Transitionshape = Forme de la transition:\r
+ TransitionCfg.checkbox.Clipped = Emboitée\r
+ TransitionCfg.lbl.Shapeparam = Paramètre de la forme:\r
+ TransitionCfg.lbl.Transitionlength = Longueur de la transition:\r
+ TransitionCfg.lbl.Forediam = Diamètre avant:\r
+ TransitionCfg.checkbox.Automatic = Automatique\r
+ TransitionCfg.lbl.Aftdiam = Diamètre arrière:\r
+ TransitionCfg.lbl.Wallthickness = Epaisseur de la paroi:\r
+ TransitionCfg.checkbox.Filled = Aspérités bouchées\r
+ TransitionCfg.tab.General = Général\r
+ TransitionCfg.tab.Generalproperties = Propriétés Générales\r
+ TransitionCfg.tab.Shoulder = Accotement\r
+ TransitionCfg.tab.Shoulderproperties = Propriétés de l'accotement \r
+ \r
+ ! TrapezoidFinSetConfig\r
+ TrapezoidFinSetCfg.lbl.Nbroffins = Nombre d'ailerons:\r
+ TrapezoidFinSetCfg.lbl.ttip.Nbroffins = Le nombre d'ailerons composant le jeu.\r
+ TrapezoidFinSetCfg.lbl.Finrotation = Rotation de l'aileron:\r
+ TrapezoidFinSetCfg.lbl.ttip.Finrotation = Angle du premier aileron dans le jeu.\r
+ TrapezoidFinSetCfg.lbl.Fincant = Inclinaison de l'aileron:\r
+ TrapezoidFinSetCfg.lbl.ttip.Fincant = Angle d'inclinaison des ailerons par rapport au tube du corps de la fusée.\r
+ TrapezoidFinSetCfg.lbl.Rootchord = Longueur de la base de l'aileron:\r
+ TrapezoidFinSetCfg.lbl.Tipchord = Longueur du bout de l'aileron:\r
+ TrapezoidFinSetCfg.lbl.Height = Hauteur:\r
+ TrapezoidFinSetCfg.lbl.Sweeplength = Longueur du bord d'attaque:\r
+ TrapezoidFinSetCfg.lbl.Sweepangle = Angle du bord d'attaque:\r
+ TrapezoidFinSetCfg.lbl.FincrossSection = Coupe de l'aileron:\r
+ TrapezoidFinSetCfg.lbl.Thickness = Epaisseur:\r
+ TrapezoidFinSetCfg.lbl.Posrelativeto = Position relative à:\r
+ TrapezoidFinSetCfg.lbl.plus = plus\r
+ TrapezoidFinSetCfg.tab.General = Général\r
+ TrapezoidFinSetCfg.tab.Generalproperties = Propriétés générales\r
+ \r
+ !MotorConfigurationModel\r
+ MotorCfgModel.Editcfg = Modifier les configurations\r
+ \r
+ ! StorageOptionChooser\r
+ StorageOptChooser.lbl.Simdatatostore = Données simulées à stocker:\r
+ StorageOptChooser.rdbut.Allsimdata = Toutes les données des simulations\r
+ StorageOptChooser.lbl.longA1 = <html>Enregistrer toutes les données des simulations.<br>\r
+ StorageOptChooser.lbl.longA2 = Cela peut entraîner de très gros fichiers!\r
+ StorageOptChooser.rdbut.Every = Every\r
+ StorageOptChooser.lbl.longB1 = <html>Store plottable values approximately this far apart.<br>\r
+ StorageOptChooser.lbl.longB2 = Des valeurs plus grandes produisent des fichiers plus petits.\r
+ StorageOptChooser.lbl.seconds = secondes\r
+ StorageOptChooser.rdbut.Onlyprimfig = Seuls les chiffres primaires\r
+ StorageOptChooser.lbl.longC1 = <html>Stocker seulement les valeurs montrées dans le tableau récapitulatif.<br>\r
+ StorageOptChooser.lbl.longC2 = Cela produira des fichiers plus petit.\r
+ StorageOptChooser.checkbox.Compfile = Compresse le fichier\r
+ StorageOptChooser.lbl.UsingComp = Utiliser la compression réduit significativement la taille du fichier.\r
+ StorageOptChooser.lbl.longD1 = Une estimation sur la taille qu'aurait le fichier résultant avec les options actuelles.\r
+ StorageOptChooser.ttip.Saveopt = Options de sauvegarde\r
+ StorageOptChooser.lbl.Estfilesize = Taille estimée du fichier:\r
+ StorageOptChooser.lbl.Saveopt = Options de sauvegarde\r
+ \r
+ ! ThrustCurveMotorSelectionPanel\r
+ TCMotorSelPan.lbl.Selrocketmotor = Choisir le moteur fusée:\r
+ TCMotorSelPan.checkbox.hideSimilar = Cacher les courbes de poussées similaires\r
+ TCMotorSelPan.SHOW_DESCRIPTIONS.desc1 = Montrer tous les moteurs\r
+ TCMotorSelPan.SHOW_DESCRIPTIONS.desc2 = Montrer les moteurs avec un diametre inferieur au porte moteur\r
+ TCMotorSelPan.SHOW_DESCRIPTIONS.desc3 = Montrer les moteurs avec un diametre egale au porte moteur\r
+ TCMotorSelPan.lbl.Motormountdia = Diametre du tube porte moteur:\r
+ TCMotorSelPan.lbl.Search = Rechercher:\r
+ TCMotorSelPan.lbl.Selectthrustcurve = Choisir la courbe de poussée:\r
+ TCMotorSelPan.lbl.Ejectionchargedelay = Retard de la charge d'ejection:\r
+ TCMotorSelPan.equalsIgnoreCase.None = Aucun\r
+ TCMotorSelPan.lbl.NumberofsecondsorNone = (Nombre de secondes ou \"Aucun\")\r
+ TCMotorSelPan.lbl.Totalimpulse = Impulsion totale:\r
+ TCMotorSelPan.lbl.Avgthrust = Poussée moyenne:\r
+ TCMotorSelPan.lbl.Maxthrust = Poussée Max.:\r
+ TCMotorSelPan.lbl.Burntime = Temps de combustion:\r
+ TCMotorSelPan.lbl.Launchmass = Masse au lancement:\r
+ TCMotorSelPan.lbl.Emptymass = Masse à vide:\r
+ TCMotorSelPan.lbl.Datapoints = Points de données:\r
+ TCMotorSelPan.lbl.Digest = Assimilation:\r
+ TCMotorSelPan.title.Thrustcurve = Courbe de poussée:\r
+ TCMotorSelPan.title.Thrust = Poussée\r
+ TCMotorSelPan.delayBox.None = Aucun\r
+ \r
+ ! PlotDialog\r
+ PlotDialog.title.Flightdataplot = Tracé du vol\r
+ PlotDialog.Chart.Simulatedflight = Simulation du vol\r
+ PlotDialog.CheckBox.Showdatapoints = Afficher un point pour chaque valeur\r
+ PlotDialog.lbl.Chart = Cliquer+déplacer en bas +droite pour agrandir, haut+gauche pour rétrécir\r
+ \r
+ ! "main" prefix is used for the main application dialog\r
+ \r
+ main.menu.file = Fichier\r
+ main.menu.file.new = Nouveau\r
+ main.menu.file.open = Ouvrir...\r
+ main.menu.file.openExample = Ouvrir exemple...\r
+ main.menu.file.save = Sauvegarder\r
+ main.menu.file.saveAs = Sauvegarder sous...\r
+ main.menu.file.print = Imprimer...\r
+ main.menu.file.close = Fermer\r
+ main.menu.file.quit = Quitter\r
+ \r
+ main.menu.edit = Editer\r
+ main.menu.edit.undo = Annuler modification\r
+ main.menu.edit.redo = Refaire modification\r
+ main.menu.edit.cut = Couper\r
+ main.menu.edit.copy = Copier\r
+ main.menu.edit.paste = Coller\r
+ main.menu.edit.delete = Effacer\r
+ main.menu.edit.preferences = Préférences\r
+ \r
+ main.menu.analyze = Analyse\r
+ main.menu.analyze.componentAnalysis = Analyse des Pièces\r
+ \r
+ main.menu.help = Aide\r
+ main.menu.help.license = Licence\r
+ main.menu.help.bugReport = Rapport d'erreurs\r
+ main.menu.help.debugLog = Debug log\r
+ main.menu.help.about = A propos\r
+ \r
+ main.menu.debug = Debug\r
+ main.menu.debug.whatisthismenu = Quel est ce menu?\r
+ main.menu.debug.createtestrocket = Créer une fusée test\r
+ \r
+ ! database\r
+ ! Translate here all material database\r
+ !\r
+ \r
+ ! Material database\r
+ ! BULK_MATERIAL\r
+ Databases.materials.Acrylic = Acrylique\r
+ Databases.materials.Balsa = Balsa\r
+ Databases.materials.Birch = Bouleau\r
+ Databases.materials.Cardboard = Carton\r
+ Databases.materials.Carbonfiber = Fibre de carbone\r
+ Databases.materials.Cork = Liège\r
+ Databases.materials.DepronXPS = Depron (XPS)\r
+ Databases.materials.Fiberglass = Fibre de verre\r
+ Databases.materials.Kraftphenolic = Kraft phénolique\r
+ Databases.materials.Maple = Érable\r
+ Databases.materials.Paperoffice = Papier (bureau)\r
+ Databases.materials.Pine = Pin\r
+ Databases.materials.Plywoodbirch = Contre-plaqué (bouleau)\r
+ Databases.materials.PolycarbonateLexan = Polycarbonate (Lexan)\r
+ Databases.materials.Polystyrene = Polystyrène\r
+ Databases.materials.PVC = PVC\r
+ Databases.materials.Spruce = Sapin\r
+ Databases.materials.StyrofoamgenericEPS = Polystyrène (générique EPS)\r
+ Databases.materials.StyrofoamBluefoamXPS = \"Mousse Bleue\" de polystyrène (XPS)\r
+ Databases.materials.Quantumtubing = Quantum tubing\r
+ !SURFACE_MATERIAL\r
+ Databases.materials.Ripstopnylon = Ripstop nylon\r
+ Databases.materials.Mylar = Mylar\r
+ Databases.materials.Polyethylenethin = Polyéthylène (fin)\r
+ Databases.materials.Polyethyleneheavy = Polyéthylène (lourd)\r
+ Databases.materials.Silk = Soie\r
+ Databases.materials.Paperoffice1 = Papier (bureau)\r
+ Databases.materials.Cellophane = Cellophane\r
++Databases.materials.Crepepaper = Cr\u00eape paper\r
+ ! LINE_MATERIAL\r
+ Databases.materials.Threadheavy-duty = Fil(résistant)\r
+ Databases.materials.Elasticcordround2mm = Corde Elastique (ronde 2mm, 1/16 in)\r
+ Databases.materials.Elasticcordflat6mm = Corde Elastique (plate 6mm, 1/4 in)\r
+ Databases.materials.Elasticcordflat12mm = Corde Elastique (plate 12mm, 1/2 in)\r
+ Databases.materials.Elasticcordflat19mm = Corde Elastique (plate 19mm, 3/4 in)\r
+ Databases.materials.Elasticcordflat25mm = Corde Elastique (plate 25mm, 1 in)\r
+ Databases.materials.Braidednylon2mm = Nylon tressé (2 mm, 1/16 in)\r
+ Databases.materials.Braidednylon3mm = Nylon tressé (3 mm, 1/8 in)\r
+ Databases.materials.Tubularnylon11mm = Nylon tubulaire (11 mm, 7/16 in)\r
+ Databases.materials.Tubularnylon14mm = Nylon tubulaire (14 mm, 9/16 in)\r
+ Databases.materials.Tubularnylon25mm = Nylon tubulaire (25 mm, 1 in)\r
+ \r
+ ! ExternalComponent\r
+ ExternalComponent.Rough = Rugeuse\r
+ ExternalComponent.Unfinished = Non peinte\r
+ ExternalComponent.Regularpaint = Peinture classique\r
+ ExternalComponent.Smoothpaint = Fine couche\r
+ ExternalComponent.Polished = Polie\r
+ \r
+ \r
+ ! LineStyle\r
+ LineStyle.Solid = Ligne pleine\r
+ LineStyle.Dashed = Tiret\r
+ LineStyle.Dotted = Ligne pointillée\r
+ LineStyle.Dash-dotted = Ligne Pointillée et Tiret\r
+ LineStyle.Defaultstyle = Style par défaut\r
+ \r
+ ! Shape\r
+ Shape.Conical = Conique\r
+ Shape.Conical.desc1 = Un cône conique a un profil triangulaire.\r
+ Shape.Conical.desc2 = Une transition conique a des côtés droits.\r
+ Shape.Ogive = Ogive\r
+ Shape.Ogive.desc1 = Un cône ogival a un profil qui est un segment de cercle. La valeur du paramètre de forme 1 produit une <b>ogive tangente</b>, qui a une transition en douceur vers le tube de la fusée, des valeurs inférieures à 1 produisent des <b>ogives sécantes</b>.\r
+ Shape.Ogive.desc2 = Une transition en ogive a un profil qui est un segment de cercle. La valeur du paramètre de forme 1 produit une <b>ogive tangente</b>, qui a une transition en douceur vers le tube de la fusée à l'extrémité arrière, des valeurs inférieures à 1 produisent des <b>ogives sécantes</b>.\r
+ Shape.Ellipsoid = Ellipsoïde\r
+ Shape.Ellipsoid.desc1 = Un cône ellipsoïdal a un profil d'une demi ellipse dont les axes principaux sont de longueurs 2×<i>la longueur</i> et <i>diamètre</i>.\r
+ Shape.Ellipsoid.desc2 = Une transition ellipsoïdale a un profil d'une demi ellipse dont les axes principaux sont de longueurs 2×<i>longueur</i> et <i>diamètre</i>. Si la transition n'est pas coupée alors le profil est étendu au centre par le rayon correspondant. \r
+ Shape.Powerseries = Série Haute puissance\r
+ Shape.Powerseries.descA1 = Un cône de puissance a un profil de <i>Rayon</i> × (<i>x</i> / <i>Longueur</i>)<sup><i>k</i></sup> ou <i>k</i> est le paramètre de la forme. Pour <i>k</i>=0,5 c'est une <b>\r
+ Shape.Powerseries.descA2 = -puissance</b> ou une ogive <b>parabolique</b>, pour <i>k</i>=0,75 une <b>\r
+ Shape.Powerseries.descA3 = -puissance</b>, et pour <i>k</i>=1 un cône <b>conique</b>.\r
+ Shape.Powerseries.descB1 = Une transition de la série haute puissance a un profile de <i>Rayon</i> × (<i>x</i> / <i>Longueur</i>)<sup><i>k</i></sup> ou <i>k</i> est le paramètre de la forme. Pour <i>k</i>=0,5 la transition est <b>\r
+ Shape.Powerseries.descB2 = -puissance</b> ou <b>parabolique</b>, pour <i>k</i>=0,75 une <b>\r
+ Shape.Powerseries.descB3 = -puissance</b>, et pour <i>k</i>=1 <b>conique</b>.\r
+ Shape.Parabolicseries = Série parabolique\r
+ Shape.Parabolicseries.desc1 = Un cône parabolique a un profil d'une parabole. Le paramètre de forme définit le segment de la parabole à utiliser. Le paramètre 1 produit une <b>parabole pleine</b> qui est tangent au tube de la fusée, 0,75 produit un <b>3/4 de parabole</b>, 0,5 produit une <b>1/2 parabole</b> et 0 produit un cône <b>conique</b>.\r
+ Shape.Parabolicseries.desc2 = Une transistion de type parabolique a un profile en forme de parabole. Le paramètre de forme définit le segment de la parabole à utiliser. Le paramètre 1,0 produit une <b>parabole pleine</b> qui est tangent au tube de la fusée à l'extrémité arrière, 0,75 produit une <b>3/4 parabole</b>, 0,5 produit une <b>1/2 parabole</b> et 0 produit une transition <b>conique</b>.\r
+ Shape.Haackseries = Série Haack\r
+ Shape.Haackseries.desc1 = Les cônes du type Haack sont conçus pour minimiser la trainée. Le paramètre de forme égale à 0 produit une <b>LD-Haack</b> ou un cône <b>Von Karman</b>, ce qui a pour effet de minimiser la trainée pour une longueur et un diamètre fixe, tandis qu'une valeur de 0,333 produit un cône <b>LV-Haack</b>, ce qui minimise la trainée pour une longueur et un volume fixe.\r
+ Shape.Haackseries.desc2 = Les <i>cônes</i> du type Haack sont conçus pour minimiser la trainée. Ces formes de transition sont leurs équivalents, mais ne produisent pas nécessairement des valeurs optimales. Le paramètre 0 produit une forme <b>LD-Haack</b> ou <b>Von Karman</b>, tandis qu'une valeur de 0,333 produit une forme <b>LV-Haack</b>. \r
+ \r
+ \r
+ ! RocketComponent\r
+ RocketComponent.Position.TOP = Haut de la pièce parent\r
+ RocketComponent.Position.MIDDLE = Milieu de la pièce parent(porteuse)\r
+ RocketComponent.Position.BOTTOM = Bas de la pièce parent\r
+ RocketComponent.Position.AFTER = Après la pièce parent\r
+ RocketComponent.Position.ABSOLUTE = Pointe de l'ogive\r
+ \r
+ \r
+ ! LaunchLug\r
+ LaunchLug.Launchlug = Tube de guidage\r
+ ! NoseCone\r
+ NoseCone.NoseCone = Ogive\r
+ ! Transition\r
+ Transition.Transition = Transition\r
+ !Stage\r
+ Stage.Stage = Etage\r
+ ! BodyTube\r
+ BodyTube.BodyTube = Tube du corps\r
+ ! TubeCoupler\r
+ TubeCoupler.TubeCoupler = Coupleur de tube\r
+ !InnerTube\r
+ InnerTube.InnerTube = Tube interne\r
+ ! TrapezoidFinSet\r
+ TrapezoidFinSet.TrapezoidFinSet = Ailerons Trapezoidaux\r
+ ! FreeformFinSet\r
+ FreeformFinSet.FreeformFinSet = Ailerons personnalisés\r
+ !MassComponent\r
+ MassComponent.MassComponent = Poids\r
+ ! Parachute\r
+ Parachute.Parachute = Parachute\r
+ ! ShockCord\r
+ ShockCord.ShockCord = Cordon amortisseur\r
+ ! Bulkhead\r
+ Bulkhead.Bulkhead = Cloison\r
+ \r
+ !Rocket\r
+ Rocket.motorCount.Nomotor = [aucun moteurs]\r
+ Rocket.compname.Rocket = Fusée\r
+ \r
+ !MotorMount\r
+ MotorMount.IgnitionEvent.AUTOMATIC = Automatique (lancement ou charge d'éjection)\r
+ MotorMount.IgnitionEvent.LAUNCH = Lancement\r
+ MotorMount.IgnitionEvent.EJECTION_CHARGE = Premiere charge d'ejection ou étage precedent\r
+ MotorMount.IgnitionEvent.BURNOUT = First burnout of previous stage\r
+ MotorMount.IgnitionEvent.NEVER = Jamais\r
+ \r
+ !ComponentIcons \r
+ ComponentIcons.Nosecone = Ogive\r
+ ComponentIcons.Bodytube = Tube\r
+ ComponentIcons.Transition = Transition\r
+ ComponentIcons.Trapezoidalfinset = Jeu d'ailerons de forme trapézoïdale\r
+ ComponentIcons.Ellipticalfinset = Jeu d'ailerons de forme elliptique \r
+ ComponentIcons.Freeformfinset = Jeu d'ailerons de forme personnalisé\r
+ ComponentIcons.Launchlug = Tube de guidage\r
+ ComponentIcons.Innertube = Tube interne\r
+ ComponentIcons.Tubecoupler = Coupleur de tube\r
+ ComponentIcons.Centeringring = Anneau de centrage\r
+ ComponentIcons.Bulkhead = Cloison\r
+ ComponentIcons.Engineblock = Bague de retension moteur\r
+ ComponentIcons.Parachute = Parachute\r
+ ComponentIcons.Streamer = Banderolle\r
+ ComponentIcons.Shockcord = Cordon amortisseur\r
+ ComponentIcons.Masscomponent = Mass component\r
+ ComponentIcons.disabled = (désactivé)\r
+ \r
+ ! StageAction\r
+ StageAction.Stage = Etage\r
+ \r
+ ! RecoveryDevice\r
+ RecoveryDevice.DeployEvent.LAUNCH = Lancement(plus NN secondes)\r
+ RecoveryDevice.DeployEvent.EJECTION = Première charge d'éjection de cet étage\r
+ RecoveryDevice.DeployEvent.APOGEE = Apogée\r
+ RecoveryDevice.DeployEvent.ALTITUDE = Altitude spécifiée durant la descente\r
+ RecoveryDevice.DeployEvent.NEVER = Jamais\r
+ \r
+ ! FlightEvent\r
+ FlightEvent.Type.LAUNCH = Lancement\r
+ FlightEvent.Type.IGNITION = Allumage du moteur\r
+ FlightEvent.Type.LIFTOFF = Décollage\r
+ FlightEvent.Type.LAUNCHROD = Dégagement de rampe de lancement\r
+ FlightEvent.Type.BURNOUT = Fin de combustion du moteur\r
+ FlightEvent.Type.EJECTION_CHARGE = Charge d'éjection\r
+ FlightEvent.Type.STAGE_SEPARATION = Séparation d'étage\r
+ FlightEvent.Type.APOGEE = Apogée\r
+ FlightEvent.Type.RECOVERY_DEVICE_DEPLOYMENT = Déploiement du dispositif de récupération\r
+ FlightEvent.Type.GROUND_HIT = Atterrissage\r
+ FlightEvent.Type.SIMULATION_END = Fin de la simulation\r
+ FlightEvent.Type.ALTITUDE = Changement d'altitude\r
+ \r
+ ! ThrustCurveMotorColumns\r
+ TCurveMotorCol.MANUFACTURER = Fabricant\r
+ TCurveMotorCol.DESIGNATION = Désignation\r
+ TCurveMotorCol.TYPE = Type\r
+ TCurveMotorCol.DIAMETER = Diamètre\r
+ TCurveMotorCol.LENGTH = Longueur\r
+ \r
+ ! RocketInfo\r
+ RocketInfo.lengthLine.Length = Longueur\r
+ RocketInfo.lengthLine.maxdiameter = , diamètre max.\r
+ RocketInfo.massText1 = Masse avec moteurs \r
+ RocketInfo.massText2 = Masse sans moteurs\r
+ RocketInfo.at = à M=\r
+ RocketInfo.cgText = CG:\r
+ RocketInfo.cpText = CP:\r
+ RocketInfo.stabText = Stabilité:\r
+ RocketInfo.Warning = Avertissement:\r
+ RocketInfo.Calculating = Calcul en cours...\r
+ RocketInfo.Apogee = Apogée:\r
+ RocketInfo.Maxvelocity = Vitesse Max.:\r
+ RocketInfo.Maxacceleration = Accélération Max.:\r
+ RocketInfo.apogeeValue = N/A\r
+ RocketInfo.Mach = (Mach\r
+ RocketInfo.velocityValue = N/A\r
+ RocketInfo.accelerationValue = N/A\r
+ \r
+ ! FinSet\r
+ FinSet.CrossSection.SQUARE = Carré\r
+ FinSet.CrossSection.ROUNDED = Arondie\r
+ FinSet.CrossSection.AIRFOIL = Airfoil\r
+ FinSet.TabRelativePosition.FRONT = Root chord leading edge\r
+ FinSet.TabRelativePosition.CENTER = Root chord midpoint\r
+ FinSet.TabRelativePosition.END = Root chord trailing edge\r
+ \r
+ ! FlightDataType\r
+ FlightDataType.TYPE_TIME = Temps\r
+ FlightDataType.TYPE_ALTITUDE = Altitude\r
+ FlightDataType.TYPE_VELOCITY_Z = Vitesse verticale\r
+ FlightDataType.TYPE_ACCELERATION_Z = Accélération verticale\r
+ FlightDataType.TYPE_VELOCITY_TOTAL = Vitesse totale\r
+ FlightDataType.TYPE_ACCELERATION_TOTAL = Accélération totale\r
+ FlightDataType.TYPE_POSITION_X = Position contre le vent\r
+ FlightDataType.TYPE_POSITION_Y = Position parallèle au vent\r
+ FlightDataType.TYPE_POSITION_XY = Distance latérale\r
+ FlightDataType.TYPE_POSITION_DIRECTION = Direction latérale\r
+ FlightDataType.TYPE_VELOCITY_XY = Vitesse latérale\r
+ FlightDataType.TYPE_ACCELERATION_XY = Accélération latérale\r
+ FlightDataType.TYPE_AOA = Angle d'attaque\r
+ FlightDataType.TYPE_ROLL_RATE = Taux de roulis\r
+ FlightDataType.TYPE_PITCH_RATE = Taux de tangage\r
+ FlightDataType.TYPE_YAW_RATE = Taux d'embardée\r
+ FlightDataType.TYPE_MASS = Masse\r
+ FlightDataType.TYPE_LONGITUDINAL_INERTIA = Moment d'inertie longitudinale\r
+ FlightDataType.TYPE_ROTATIONAL_INERTIA = Moment d'inertie rotatif\r
+ FlightDataType.TYPE_CP_LOCATION = Emplacement du CP\r
+ FlightDataType.TYPE_CG_LOCATION = Emplacement du CG\r
+ FlightDataType.TYPE_STABILITY = Calibres marge de stabilité\r
+ FlightDataType.TYPE_MACH_NUMBER = Mach number\r
+ FlightDataType.TYPE_REYNOLDS_NUMBER = Nombre de Reynolds\r
+ FlightDataType.TYPE_THRUST_FORCE = Poussée\r
+ FlightDataType.TYPE_DRAG_FORCE = Force de traînée\r
+ FlightDataType.TYPE_DRAG_COEFF = Coefficient de traînée\r
+ FlightDataType.TYPE_AXIAL_DRAG_COEFF = Coefficient de trainée axiale\r
+ FlightDataType.TYPE_FRICTION_DRAG_COEFF = Coefficient de traînée de friction\r
+ FlightDataType.TYPE_PRESSURE_DRAG_COEFF = Coefficient de traînée de pression\r
+ FlightDataType.TYPE_BASE_DRAG_COEFF = Base drag coefficient\r
+ FlightDataType.TYPE_NORMAL_FORCE_COEFF = Normal force coefficient\r
+ FlightDataType.TYPE_PITCH_MOMENT_COEFF = Pitch moment coefficient\r
+ FlightDataType.TYPE_YAW_MOMENT_COEFF = Yaw moment coefficient\r
+ FlightDataType.TYPE_SIDE_FORCE_COEFF = Side force coefficient\r
+ FlightDataType.TYPE_ROLL_MOMENT_COEFF = Roll moment coefficient\r
+ FlightDataType.TYPE_ROLL_FORCING_COEFF = Roll forcing coefficient\r
+ FlightDataType.TYPE_ROLL_DAMPING_COEFF = Roll damping coefficient\r
+ FlightDataType.TYPE_PITCH_DAMPING_MOMENT_COEFF = Pitch damping coefficient\r
+ FlightDataType.TYPE_YAW_DAMPING_MOMENT_COEFF = Yaw damping coefficient\r
+ FlightDataType.TYPE_REFERENCE_LENGTH = Longueur de référence\r
+ FlightDataType.TYPE_REFERENCE_AREA = Surface de référence\r
+ FlightDataType.TYPE_ORIENTATION_THETA = Orientation verticale (zénith)\r
+ FlightDataType.TYPE_ORIENTATION_PHI = Orientation latérale (azimut)\r
+ FlightDataType.TYPE_WIND_VELOCITY = Vitesse de vent\r
+ FlightDataType.TYPE_AIR_TEMPERATURE = Température de l'air\r
+ FlightDataType.TYPE_AIR_PRESSURE = Pression atmosphérique\r
+ FlightDataType.TYPE_SPEED_OF_SOUND = Vitesse du son\r
+ FlightDataType.TYPE_TIME_STEP = Pas de simulation du temps\r
+ FlightDataType.TYPE_COMPUTATION_TIME = Temps de calcul\r
+ \r
+ ! PlotConfiguration\r
+ PlotConfiguration.Verticalmotion = Mouvement vertical par rapport au temps\r
+ PlotConfiguration.Totalmotion = Mouvement total par rapport au temps\r
+ PlotConfiguration.Flightside = Flight side profile\r
+ PlotConfiguration.Stability = Stabilité par rapport temps\r
+ PlotConfiguration.Dragcoef = Coefficients de traînée par rapport au Mach number\r
+ PlotConfiguration.Rollcharacteristics = Caractéristiques de roulis\r
+ PlotConfiguration.Angleofattack = Angle d'attaque et orientation par rapport au temps\r
+ PlotConfiguration.Simulationtime = Pas du temps et temps de calcul\r
+ \r
+ ! Warning\r
+ Warning.LargeAOA.str1 = Grand angle d'attaque rencontré.\r
+ Warning.LargeAOA.str2 = Grand angle d'attaque rencontré (\r
+ Warning.DISCONTINUITY = Discontinuité dans le diametre du corps de la fusée.\r
+ Warning.THICK_FIN = Les ailerons fin ne seront peut etre pas modélisés correctement.\r
+ Warning.JAGGED_EDGED_FIN = Jagged-edged fin predictions may be inaccurate.\r
+ Warning.LISTENERS_AFFECTED = Listeners modified the flight simulation\r
+ Warning.RECOVERY_DEPLOYMENT_WHILE_BURNING = Le dispositif de récupération s'est ouvert alors que la combustion du moteur n'était pas finie.\r
+ Warning.FILE_INVALID_PARAMETER = Parametre invalide rencontré, ignorer.\r
*/
public class Databases {
private static final LogHelper log = Application.getLogger();
-
+ private static final Translator trans = Application.getTranslator();
+
/* Static implementations of specific databases: */
/**
static {
// Add default materials
- BULK_MATERIAL.add(new Material.Bulk("Acrylic", 1190, false));
- BULK_MATERIAL.add(new Material.Bulk("Balsa", 170, false));
- BULK_MATERIAL.add(new Material.Bulk("Birch", 670, false));
- BULK_MATERIAL.add(new Material.Bulk("Cardboard", 680, false));
- BULK_MATERIAL.add(new Material.Bulk("Carbon fiber", 1780, false));
- BULK_MATERIAL.add(new Material.Bulk("Cork", 240, false));
- BULK_MATERIAL.add(new Material.Bulk("Depron (XPS)", 40, false));
- BULK_MATERIAL.add(new Material.Bulk("Fiberglass", 1850, false));
- BULK_MATERIAL.add(new Material.Bulk("Kraft phenolic", 950, false));
- BULK_MATERIAL.add(new Material.Bulk("Maple", 755, false));
- BULK_MATERIAL.add(new Material.Bulk("Paper (office)", 820, false));
- BULK_MATERIAL.add(new Material.Bulk("Pine", 530, false));
- BULK_MATERIAL.add(new Material.Bulk("Plywood (birch)", 630, false));
- BULK_MATERIAL.add(new Material.Bulk("Polycarbonate (Lexan)", 1200, false));
- BULK_MATERIAL.add(new Material.Bulk("Polystyrene", 1050, false));
- BULK_MATERIAL.add(new Material.Bulk("PVC", 1390, false));
- BULK_MATERIAL.add(new Material.Bulk("Spruce", 450, false));
- BULK_MATERIAL.add(new Material.Bulk("Styrofoam (generic EPS)", 20, false));
+ BULK_MATERIAL.add(new Material.Bulk(trans.get("Databases.materials.Acrylic"), 1190, false));
+ BULK_MATERIAL.add(new Material.Bulk(trans.get("Databases.materials.Balsa"), 170, false));
+ BULK_MATERIAL.add(new Material.Bulk(trans.get("Databases.materials.Birch"), 670, false));
+ BULK_MATERIAL.add(new Material.Bulk(trans.get("Databases.materials.Cardboard"), 680, false));
+ BULK_MATERIAL.add(new Material.Bulk(trans.get("Databases.materials.Carbonfiber"), 1780, false));
+ BULK_MATERIAL.add(new Material.Bulk(trans.get("Databases.materials.Cork"), 240, false));
+ BULK_MATERIAL.add(new Material.Bulk(trans.get("Databases.materials.DepronXPS"), 40, false));
+ BULK_MATERIAL.add(new Material.Bulk(trans.get("Databases.materials.Fiberglass"), 1850, false));
+ BULK_MATERIAL.add(new Material.Bulk(trans.get("Databases.materials.Kraftphenolic"), 950, false));
+ BULK_MATERIAL.add(new Material.Bulk(trans.get("Databases.materials.Maple"), 755, false));
+ BULK_MATERIAL.add(new Material.Bulk(trans.get("Databases.materials.Paperoffice"), 820, false));
+ BULK_MATERIAL.add(new Material.Bulk(trans.get("Databases.materials.Pine"), 530, false));
+ BULK_MATERIAL.add(new Material.Bulk(trans.get("Databases.materials.Plywoodbirch"), 630, false));
+ BULK_MATERIAL.add(new Material.Bulk(trans.get("Databases.materials.PolycarbonateLexan"), 1200, false));
+ BULK_MATERIAL.add(new Material.Bulk(trans.get("Databases.materials.Polystyrene"), 1050, false));
+ BULK_MATERIAL.add(new Material.Bulk(trans.get("Databases.materials.PVC"), 1390, false));
+ BULK_MATERIAL.add(new Material.Bulk(trans.get("Databases.materials.Spruce"), 450, false));
+ BULK_MATERIAL.add(new Material.Bulk(trans.get("Databases.materials.StyrofoamgenericEPS"), 20, false));
// BULK_MATERIAL.add(new Material.Bulk("Styrofoam (Blue foam, XPS)", 32, false));
- BULK_MATERIAL.add(new Material.Bulk("Styrofoam \"Blue foam\" (XPS)", 32, false));
- BULK_MATERIAL.add(new Material.Bulk("Quantum tubing", 1050, false));
+ BULK_MATERIAL.add(new Material.Bulk(trans.get("Databases.materials.StyrofoamBluefoamXPS"), 32, false));
+ BULK_MATERIAL.add(new Material.Bulk(trans.get("Databases.materials.Quantumtubing"), 1050, false));
- SURFACE_MATERIAL.add(new Material.Surface("Ripstop nylon", 0.067, false));
- SURFACE_MATERIAL.add(new Material.Surface("Mylar", 0.021, false));
- SURFACE_MATERIAL.add(new Material.Surface("Polyethylene (thin)", 0.015, false));
- SURFACE_MATERIAL.add(new Material.Surface("Polyethylene (heavy)", 0.040, false));
- SURFACE_MATERIAL.add(new Material.Surface("Silk", 0.060, false));
- SURFACE_MATERIAL.add(new Material.Surface("Paper (office)", 0.080, false));
- SURFACE_MATERIAL.add(new Material.Surface("Cellophane", 0.018, false));
- SURFACE_MATERIAL.add(new Material.Surface("Cr\u00eape paper", 0.025, false));
+ SURFACE_MATERIAL.add(new Material.Surface(trans.get("Databases.materials.Ripstopnylon"), 0.067, false));
+ SURFACE_MATERIAL.add(new Material.Surface(trans.get("Databases.materials.Mylar"), 0.021, false));
+ SURFACE_MATERIAL.add(new Material.Surface(trans.get("Databases.materials.Polyethylenethin"), 0.015, false));
+ SURFACE_MATERIAL.add(new Material.Surface(trans.get("Databases.materials.Polyethyleneheavy"), 0.040, false));
+ SURFACE_MATERIAL.add(new Material.Surface(trans.get("Databases.materials.Silk"), 0.060, false));
+ SURFACE_MATERIAL.add(new Material.Surface(trans.get("Databases.materials.Paperoffice"), 0.080, false));
+ SURFACE_MATERIAL.add(new Material.Surface(trans.get("Databases.materials.Cellophane"), 0.018, false));
- SURFACE_MATERIAL.add(new Material.Surface(trans.get("Databases.materials.Creapepaper"), 0.025, false));
++ SURFACE_MATERIAL.add(new Material.Surface(trans.get("Databases.materials.Crepepaper"), 0.025, false));
- LINE_MATERIAL.add(new Material.Line("Thread (heavy-duty)", 0.0003, false));
- LINE_MATERIAL.add(new Material.Line("Elastic cord (round 2mm, 1/16 in)", 0.0018, false));
- LINE_MATERIAL.add(new Material.Line("Elastic cord (flat 6mm, 1/4 in)", 0.0043, false));
- LINE_MATERIAL.add(new Material.Line("Elastic cord (flat 12mm, 1/2 in)", 0.008, false));
- LINE_MATERIAL.add(new Material.Line("Elastic cord (flat 19mm, 3/4 in)", 0.0012, false));
- LINE_MATERIAL.add(new Material.Line("Elastic cord (flat 25mm, 1 in)", 0.0016, false));
- LINE_MATERIAL.add(new Material.Line("Braided nylon (2 mm, 1/16 in)", 0.001, false));
- LINE_MATERIAL.add(new Material.Line("Braided nylon (3 mm, 1/8 in)", 0.0035, false));
- LINE_MATERIAL.add(new Material.Line("Tubular nylon (11 mm, 7/16 in)", 0.013, false));
- LINE_MATERIAL.add(new Material.Line("Tubular nylon (14 mm, 9/16 in)", 0.016, false));
- LINE_MATERIAL.add(new Material.Line("Tubular nylon (25 mm, 1 in)", 0.029, false));
+ //// Thread (heavy-duty)
+ LINE_MATERIAL.add(new Material.Line(trans.get("Databases.materials.Threadheavy-duty"), 0.0003, false));
+ //// Elastic cord (round 2mm, 1/16 in)
+ LINE_MATERIAL.add(new Material.Line(trans.get("Databases.materials.Elasticcordround2mm"), 0.0018, false));
+ //// Elastic cord (flat 6mm, 1/4 in)
+ LINE_MATERIAL.add(new Material.Line(trans.get("Databases.materials.Elasticcordflat6mm"), 0.0043, false));
+ //// Elastic cord (flat 12mm, 1/2 in)
+ LINE_MATERIAL.add(new Material.Line(trans.get("Databases.materials.Elasticcordflat12mm"), 0.008, false));
+ //// Elastic cord (flat 19mm, 3/4 in)
+ LINE_MATERIAL.add(new Material.Line(trans.get("Databases.materials.Elasticcordflat19mm"), 0.0012, false));
+ //// Elastic cord (flat 25mm, 1 in)
+ LINE_MATERIAL.add(new Material.Line(trans.get("Databases.materials.Elasticcordflat25mm"), 0.0016, false));
+ //// Braided nylon (2 mm, 1/16 in)
+ LINE_MATERIAL.add(new Material.Line(trans.get("Databases.materials.Braidednylon2mm"), 0.001, false));
+ //// Braided nylon (3 mm, 1/8 in)
+ LINE_MATERIAL.add(new Material.Line(trans.get("Databases.materials.Braidednylon3mm"), 0.0035, false));
+ //// Tubular nylon (11 mm, 7/16 in)
+ LINE_MATERIAL.add(new Material.Line(trans.get("Databases.materials.Tubularnylon11mm"), 0.013, false));
+ //// Tubular nylon (14 mm, 9/16 in)
+ LINE_MATERIAL.add(new Material.Line(trans.get("Databases.materials.Tubularnylon14mm"), 0.016, false));
+ //// Tubular nylon (25 mm, 1 in)
+ LINE_MATERIAL.add(new Material.Line(trans.get("Databases.materials.Tubularnylon25mm"), 0.029, false));
// Add user-defined materials
private JPanel figureTab() {
JPanel panel = new JPanel(new MigLayout("align 20% 20%"));
- panel.add(new StyledLabel("Figure style:", Style.BOLD), "wrap para");
+ //// Figure style:
+ panel.add(new StyledLabel(trans.get("RocketCompCfg.lbl.Figurestyle"), Style.BOLD), "wrap para");
-
- panel.add(new JLabel("Component color:"), "gapleft para, gapright 10lp");
+ //// Component color:
+ panel.add(new JLabel(trans.get("RocketCompCfg.lbl.Componentcolor")), "gapleft para, gapright 10lp");
- colorButton = new JButton(new ColorIcon(component.getColor()));
+ colorButton = new JButton(new ColorIcon(getColor()));
colorButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
import javax.swing.JPanel;
import net.miginfocom.swing.MigLayout;
+import net.sf.openrocket.gui.components.DescriptionArea;
import net.sf.openrocket.gui.components.StyledLabel;
++import net.sf.openrocket.gui.components.StyledLabel.Style;
import net.sf.openrocket.gui.components.URLLabel;
+ import net.sf.openrocket.l10n.Translator;
+ import net.sf.openrocket.startup.Application;
import net.sf.openrocket.util.Chars;
import net.sf.openrocket.util.GUIUtil;
import net.sf.openrocket.util.Icons;
public class AboutDialog extends JDialog {
public static final String OPENROCKET_URL = "http://openrocket.sourceforge.net/";
+ private static final Translator trans = Application.getTranslator();
- "Doug Pedrick (RockSim file format, printing)<br><br>" +
+ private static final String CREDITS = "<html><center>" +
+ "<font size=\"+1\"><b>OpenRocket has been developed by:</b></font><br><br>" +
+ "Sampo Niskanen (main developer)<br>" +
++ "Doug Pedrick (RockSim file format, printing)<br>" +
++ "Boris du Reau (internationalization, translation lead)<br><br>" +
+ "<b>OpenRocket utilizes the following libraries:</b><br><br>" +
+ "MiG Layout (http://www.miglayout.com/)<br>" +
+ "JFreeChart (http://www.jfree.org/jfreechart/)<br>" +
+ "iText (http://www.itextpdf.com/)";
+
public AboutDialog(JFrame parent) {
super(parent, true);
final String version = Prefs.getVersion();
JPanel panel = new JPanel(new MigLayout("fill"));
++ JPanel sub;
-- panel.add(new JLabel(Icons.loadImageIcon("pix/icon/icon-about.png", "OpenRocket")),
- "spany 4, top");
- "spany, top");
++
++ // OpenRocket logo
++ panel.add(new JLabel(Icons.loadImageIcon("pix/icon/icon-about.png", "OpenRocket")), "top");
+
- panel.add(new StyledLabel("OpenRocket", 20), "ax 50%, growy, wrap para");
- panel.add(new StyledLabel("Version " + version, 3), "ax 50%, growy, wrap rel");
++
++ // OpenRocket version info + copyright
++ sub = new JPanel(new MigLayout("fill"));
- panel.add(new StyledLabel("OpenRocket", 20), "ax 50%, growy, wrap para");
- panel.add(new StyledLabel("Version " + version, 3), "ax 50%, growy, wrap rel");
- // String source = Prefs.getBuildSource();
- // if (!Prefs.DEFAULT_BUILD_SOURCE.equalsIgnoreCase(source)) {
- // panel.add(new StyledLabel("Distributed by " + source, -1),
- // "ax 50%, growy, wrap para");
- // } else {
- // panel.add(new StyledLabel(" ", -1), "ax 50%, growy, wrap para");
- // }
++ sub.add(new StyledLabel("OpenRocket", 20), "ax 50%, growy, wrap para");
++ sub.add(new StyledLabel(trans.get("lbl.version").trim() + " " + version, 3), "ax 50%, growy, wrap rel");
++ sub.add(new StyledLabel("Copyright " + Chars.COPY + " 2007-2011 Sampo Niskanen"), "ax 50%, growy, wrap para");
- // String source = Prefs.getBuildSource();
- // if (!Prefs.DEFAULT_BUILD_SOURCE.equalsIgnoreCase(source)) {
- // panel.add(new StyledLabel("Distributed by " + source, -1),
- // "ax 50%, growy, wrap para");
- // } else {
- // panel.add(new StyledLabel(" ", -1), "ax 50%, growy, wrap para");
- // }
- panel.add(new StyledLabel("Copyright " + Chars.COPY + " 2007-2010 Sampo Niskanen"),
- "ax 50%, growy, wrap para");
++ sub.add(new URLLabel(OPENROCKET_URL), "ax 50%, growy, wrap para");
++ panel.add(sub, "grow");
- panel.add(new StyledLabel("Copyright " + Chars.COPY + " 2007-2011 Sampo Niskanen"),
- "ax 50%, growy, wrap para");
- panel.add(new URLLabel(OPENROCKET_URL), "ax 50%, growy, wrap para");
++
++ // Translation information (if present)
++ String translation = trans.get("lbl.translation").trim();
++ String translator = trans.get("lbl.translator").trim();
++ String translatorWebsite = trans.get("lbl.translatorWebsite").trim();
++ String translatorIcon = trans.get("lbl.translatorIcon").trim();
- panel.add(new URLLabel(OPENROCKET_URL), "ax 50%, growy, wrap para");
- //// translations author if language is not English
- String translator = trans.get("about.dlg.lbl.translation").trim();
- String translatorUrl = trans.get("about.dlg.lbl.transwebsite").trim();
- if (translator.length() > 0) {
- panel.add(new StyledLabel(translator), "ax 50%, growy, wrap para");
- if (translatorUrl.length() > 0) {
- panel.add(new URLLabel(translatorUrl), "ax 50%, growy, wrap para");
++ if (translator.length() > 0 || translatorWebsite.length() > 0 || translatorIcon.length() > 0) {
++ sub = new JPanel(new MigLayout("fill"));
++
++ sub.add(new StyledLabel(translation, Style.BOLD), "ax 50%, growy, wrap para");
++
++ if (translatorIcon.length() > 0) {
++ sub.add(new JLabel(Icons.loadImageIcon("pix/translators/" + translatorIcon, translator)),
++ "ax 50%, growy, wrap para");
++ }
++ if (translator.length() > 0) {
++ sub.add(new JLabel(translator), "ax 50%, growy, wrap rel");
++ }
++ if (translatorWebsite.length() > 0) {
++ sub.add(new URLLabel(translatorWebsite), "ax 50%, growy, wrap para");
+ }
++
++ panel.add(sub);
+ }
- panel.add(info, "width 10px, height 100lp, grow, spanx, wrap para");
+
+ DescriptionArea info = new DescriptionArea(5);
+ info.setText(CREDITS);
- JButton close = new JButton("Close");
++ panel.add(info, "newline, width 10px, height 100lp, grow, spanx, wrap para");
+
+ // JTextArea area = new JTextArea(CREATORS);
+ // area.setEditable(false);
+ // area.setLineWrap(true);
+ // area.setWrapStyleWord(true);
+ // panel.add(new JScrollPane(area), "width 10px, height 100lp, grow, spanx, wrap para");
+
+
- JButton close = new JButton(trans.get("dlg.but.close"));
+ //Close button
++ JButton close = new JButton(trans.get("button.close"));
close.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
GUIUtil.setDisposableDialogOptions(this, close);
}
--
}
*/
package net.sf.openrocket.gui.dialogs;
+import java.awt.Desktop;
+import java.awt.Window;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.Enumeration;
+import java.util.Iterator;
+
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JDialog;
+import javax.swing.JFileChooser;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.event.TreeSelectionEvent;
+import javax.swing.event.TreeSelectionListener;
+import javax.swing.filechooser.FileFilter;
+import javax.swing.tree.TreeNode;
+import javax.swing.tree.TreePath;
+
+import net.miginfocom.swing.MigLayout;
import net.sf.openrocket.document.OpenRocketDocument;
-import net.sf.openrocket.gui.print.PDFPrintStreamDoc;
-import net.sf.openrocket.gui.print.PrintUtilities;
+import net.sf.openrocket.gui.main.ExceptionHandler;
+import net.sf.openrocket.gui.print.PrintController;
+import net.sf.openrocket.gui.print.PrintSettings;
+import net.sf.openrocket.gui.print.PrintableContext;
+import net.sf.openrocket.gui.print.TemplateProperties;
+import net.sf.openrocket.gui.print.components.CheckTreeManager;
+import net.sf.openrocket.gui.print.components.RocketPrintTree;
+ import net.sf.openrocket.l10n.Translator;
+import net.sf.openrocket.logging.LogHelper;
+import net.sf.openrocket.rocketcomponent.Rocket;
import net.sf.openrocket.startup.Application;
-import sun.print.ServiceDialog;
-
-import javax.print.DocFlavor;
-import javax.print.DocPrintJob;
-import javax.print.PrintException;
-import javax.print.PrintService;
-import javax.print.PrintServiceLookup;
-import javax.print.attribute.Attribute;
-import javax.print.attribute.AttributeSet;
-import javax.print.attribute.HashPrintRequestAttributeSet;
-import javax.print.attribute.PrintRequestAttributeSet;
-import javax.print.attribute.standard.Destination;
-import javax.print.attribute.standard.Fidelity;
-import javax.swing.JDialog;
-import javax.swing.JMenu;
-import javax.swing.JTabbedPane;
-import java.awt.Component;
-import java.awt.Container;
-import java.awt.Dialog;
-import java.awt.GraphicsConfiguration;
-import java.awt.GraphicsDevice;
-import java.awt.GraphicsEnvironment;
-import java.awt.HeadlessException;
-import java.awt.Rectangle;
-import java.io.ByteArrayOutputStream;
+import net.sf.openrocket.util.GUIUtil;
+import net.sf.openrocket.util.Prefs;
/**
- * This class is not a dialog by inheritance, but is by delegation. It front-ends a java print dialog by
- * augmenting it with application specific (rocket) settings.
+ * This class isolates the Swing components used to create a panel that is added to a standard Java print dialog.
*/
-public class PrintDialog {
-
- /**
- * The service UI dialog.
- */
- private ServiceDialog dialog;
-
- /**
- * A javax doc flavor specific for printing PDF documents.
- */
- private static final DocFlavor.INPUT_STREAM PDF = DocFlavor.INPUT_STREAM.PDF;
-
- private static final Translator trans = Application.getTranslator();
-
- /**
- * Construct a print dialog using an Open Rocket document - which contains the rocket data to ultimately be
- * printed.
- *
- * @param orDocument the rocket container
- */
- public PrintDialog (OpenRocketDocument orDocument) {
- PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);
- PrintService svc = PrintServiceLookup.lookupDefaultPrintService();
- PrintRequestAttributeSet attrs = new HashPrintRequestAttributeSet();
- attrs.add(PrintUtilities.getDefaultMedia().getMediaSizeName());
-
- final PrintPanel panel = new PrintPanel(orDocument, this);
- PrintService ps = printDialog(null, 100, 100, services, svc, PDF, attrs, panel);
- if (ps != null) {
- DocPrintJob dpj = ps.createPrintJob();
- try {
- System.err.println(attrs.size());
- ByteArrayOutputStream baos = panel.generateReport();
- dpj.print(new PDFPrintStreamDoc(baos, null), attrs);
- }
- catch (PrintException e) {
- e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
- }
- }
- }
-
- /**
- * Get the set of attributes from the service ui print dialog.
- *
- * @return a set of print attributes
- */
- PrintRequestAttributeSet getAttributes () {
- return dialog.getAttributes();
- }
-
- /**
- * Get the service ui dialog. This is the actual dialog that gets displayed - we co-opt it for adding a rocket
- * specific tab.
- *
- * @return the Java service ui print dialog
- */
- JDialog getDialog () {
- return dialog;
- }
-
- /**
- * Mimics the ServiceUI.printDialog method, but with enhancements for our own print settings tab.
- *
- * @param gc used to select screen. null means primary or default screen.
- * @param x location of dialog including border in screen coordinates
- * @param y location of dialog including border in screen coordinates
- * @param services to be browsable, must be non-null.
- * @param defaultService - initial PrintService to display.
- * @param flavor - the flavor to be printed, or null.
- * @param attributes on input is the initial application supplied preferences. This cannot be null but may be
- * empty. On output the attributes reflect changes made by the user.
- * @param addnl a panel to be added, as a tab, to the internal tabbed pane of the resulting print dialog
- *
- * @return print service selected by the user, or null if the user cancelled the dialog.
- *
- * @throws HeadlessException if GraphicsEnvironment.isHeadless() returns true.
- * @throws IllegalArgumentException if services is null or empty, or attributes is null, or the initial PrintService
- * is not in the list of browsable services.
- */
- private PrintService printDialog (GraphicsConfiguration gc,
- int x, int y,
- PrintService[] services,
- PrintService defaultService,
- DocFlavor flavor,
- PrintRequestAttributeSet attributes,
- PrintPanel addnl)
- throws HeadlessException {
- int defaultIndex = -1;
-
- if (GraphicsEnvironment.isHeadless()) {
- throw new HeadlessException();
- }
- else if ((services == null) || (services.length == 0)) {
- throw new IllegalArgumentException("services must be non-null " +
- "and non-empty");
- }
- else if (attributes == null) {
- throw new IllegalArgumentException("attributes must be non-null");
- }
-
- if (defaultService != null) {
- for (int i = 0; i < services.length; i++) {
- if (services[i].equals(defaultService)) {
- defaultIndex = i;
- break;
- }
- }
-
- if (defaultIndex < 0) {
- throw new IllegalArgumentException("services must contain " +
- "defaultService");
- }
- }
- else {
- defaultIndex = 0;
- }
-
- Rectangle gcBounds = (gc == null) ? GraphicsEnvironment.
- getLocalGraphicsEnvironment().getDefaultScreenDevice().
- getDefaultConfiguration().getBounds() : gc.getBounds();
-
- dialog = new ServiceDialog(gc,
- x + gcBounds.x,
- y + gcBounds.y,
- services, defaultIndex,
- flavor, attributes,
- (Dialog) null);
- Rectangle dlgBounds = dialog.getBounds();
-
- // get union of all GC bounds
- GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
- GraphicsDevice[] gs = ge.getScreenDevices();
- for (GraphicsDevice g : gs) {
- gcBounds = gcBounds.union(g.getDefaultConfiguration().getBounds());
- }
-
- // if portion of dialog is not within the gc boundary
- if (!gcBounds.contains(dlgBounds)) {
- // put in the center relative to parent frame/dialog
- dialog.setLocationRelativeTo(null);
- }
- if (addnl != null && addnl.getTitle() != null) {
- JTabbedPane tp = (JTabbedPane) getDescendantOfClass(JTabbedPane.class, dialog);
- tp.add(addnl, addnl.getTitle(), 0);
- tp.setSelectedIndex(0);
- }
+public class PrintDialog extends JDialog implements TreeSelectionListener {
+
+ private static final LogHelper log = Application.getLogger();
++ private static final Translator trans = Application.getTranslator();
+
- private static final String SETTINGS_BUTTON_TEXT = "Settings";
- private static final String PREVIEW_BUTTON_TEXT = "Preview & Print";
- private static final String SAVE_AS_PDF_BUTTON_TEXT = "Save as PDF";
- private static final String SHOW_BY_STAGE = "Show By Stage";
++ private final Desktop desktop;
+
+ private final RocketPrintTree stagedTree;
+ private final RocketPrintTree noStagedTree;
+ private OpenRocketDocument document;
+ private RocketPrintTree currentTree;
- private Desktop desktop = null;
+
+ private JButton previewButton;
+ private JButton saveAsPDF;
+ private JButton cancel;
+
+ /**
+ * Constructor.
+ *
+ * @param orDocument the OR rocket container
+ */
+ public PrintDialog(Window parent, OpenRocketDocument orDocument) {
- super(parent, "Print or export", ModalityType.APPLICATION_MODAL);
++ super(parent, trans.get("title"), ModalityType.APPLICATION_MODAL);
+
- dialog.setVisible(true);
+ JPanel panel = new JPanel(new MigLayout("fill, gap rel unrel"));
+ this.add(panel);
+
- if (dialog.getStatus() == ServiceDialog.APPROVE) {
- PrintRequestAttributeSet newas = dialog.getAttributes();
- Class dstCategory = Destination.class;
- Class fdCategory = Fidelity.class;
+ // before any Desktop APIs are used, first check whether the API is
+ // supported by this particular VM on this particular host
+ if (Desktop.isDesktopSupported()) {
+ desktop = Desktop.getDesktop();
++ } else {
++ desktop = null;
+ }
+
+ document = orDocument;
+ Rocket rocket = orDocument.getRocket();
+
+ noStagedTree = RocketPrintTree.create(rocket.getName());
+ noStagedTree.setShowsRootHandles(false);
+ CheckTreeManager ctm = new net.sf.openrocket.gui.print.components.CheckTreeManager(noStagedTree);
+ ctm.addTreeSelectionListener(this);
+
+ final int stages = rocket.getStageCount();
+
- JLabel label = new JLabel("Select elements to include:");
- if (attributes.containsKey(dstCategory) &&
- !newas.containsKey(dstCategory)) {
- attributes.remove(dstCategory);
- }
++ JLabel label = new JLabel(trans.get("lbl.selectElements"));
+ panel.add(label, "wrap unrel");
+
+ // Create the tree
+ if (stages > 1) {
+ stagedTree = RocketPrintTree.create(rocket.getName(), rocket.getChildren());
+ ctm = new CheckTreeManager(stagedTree);
+ stagedTree.setShowsRootHandles(false);
+ ctm.addTreeSelectionListener(this);
+ } else {
+ stagedTree = noStagedTree;
+ }
+ currentTree = stagedTree;
+
+ // Add the tree to the UI
+ final JScrollPane scrollPane = new JScrollPane(stagedTree);
+ panel.add(scrollPane, "width 400lp, height 200lp, grow, wrap para");
+
- attributes.addAll(newas);
+ // Checkboxes and buttons
- final JCheckBox sortByStage = new JCheckBox(SHOW_BY_STAGE);
++ final JCheckBox sortByStage = new JCheckBox(trans.get("checkbox.showByStage"));
+ sortByStage.setEnabled(stages > 1);
+ sortByStage.setSelected(stages > 1);
+ sortByStage.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ if (sortByStage.isEnabled()) {
+ if (((JCheckBox) e.getSource()).isSelected()) {
+ scrollPane.setViewportView(stagedTree);
+ stagedTree.setExpandsSelectedPaths(true);
+ currentTree = stagedTree;
+ }
+ else {
+ scrollPane.setViewportView(noStagedTree);
+ noStagedTree.setExpandsSelectedPaths(true);
+ currentTree = noStagedTree;
+ }
+ }
+ }
+ });
+ panel.add(sortByStage, "aligny top, split");
+
- Fidelity fd = (Fidelity) attributes.get(fdCategory);
- if (fd != null) {
- if (fd == Fidelity.FIDELITY_TRUE) {
- removeUnsupportedAttributes(dialog.getPrintService(),
- flavor, attributes);
- }
- }
- return dialog.getPrintService();
- }
- else {
- return null;
- }
- }
+ panel.add(new JPanel(), "growx");
+
- JButton settingsButton = new JButton(SETTINGS_BUTTON_TEXT);
- private Component getDescendantOfClass (Class c, Container cont) {
- if (c == null || cont == null) {
- return null;
- }
- Component[] children = (cont instanceof JMenu)
- ? ((JMenu) cont).getMenuComponents()
- : cont.getComponents();
- for (int i = 0, n = children.length; i < n; i++) {
- Component comp = children[i];
- if (c.isInstance(comp)) {
- return comp;
- }
- comp = getDescendantOfClass(c, (Container) comp);
- if (comp != null) {
- return comp;
- }
- }
- return null;
- }
++ JButton settingsButton = new JButton(trans.get("printdlg.but.settings"));
+ settingsButton.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ PrintSettings settings = Prefs.getPrintSettings();
+ log.debug("settings=" + settings);
+ PrintSettingsDialog settingsDialog = new PrintSettingsDialog(PrintDialog.this, settings);
+ settingsDialog.setVisible(true);
+ Prefs.setPrintSettings(settings);
+ }
+ });
+ panel.add(settingsButton, "wrap para");
+
- previewButton = new JButton(PREVIEW_BUTTON_TEXT);
- /**
- * Removes any attributes from the given AttributeSet that are unsupported by the given PrintService/DocFlavor
- * combination.
- *
- * @param ps the print service for which unsupported attributes will be determined
- * @param flavor the document flavor; PDF in our case
- * @param aset the set of attributes requested
- */
- private static void removeUnsupportedAttributes (PrintService ps,
- DocFlavor flavor,
- AttributeSet aset) {
- AttributeSet asUnsupported = ps.getUnsupportedAttributes(flavor,
- aset);
++ previewButton = new JButton(trans.get("but.previewAndPrint"));
+ previewButton.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ onPreview();
+ PrintDialog.this.setVisible(false);
+ }
+ });
+ panel.add(previewButton, "split, right, gap para");
+
- saveAsPDF = new JButton(SAVE_AS_PDF_BUTTON_TEXT);
- if (asUnsupported != null) {
- Attribute[] usAttrs = asUnsupported.toArray();
++ saveAsPDF = new JButton(trans.get("printdlg.but.saveaspdf"));
+ saveAsPDF.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ if (onSavePDF()) {
+ PrintDialog.this.setVisible(false);
+ }
+ }
+ });
+ panel.add(saveAsPDF, "right, gap para");
+
- cancel = new JButton("Cancel");
- for (Attribute usAttr : usAttrs) {
- Class<? extends Attribute> category = usAttr.getCategory();
++ cancel = new JButton(trans.get("button.cancel"));
+ cancel.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ PrintDialog.this.setVisible(false);
+ }
+ });
+ panel.add(cancel, "right, gap para");
+
- if (ps.isAttributeCategorySupported(category)) {
- Attribute attr =
- (Attribute) ps.getDefaultAttributeValue(category);
+ expandAll(currentTree, true);
+ if (currentTree != noStagedTree) {
+ expandAll(noStagedTree, true);
+ }
+
- if (attr != null) {
- aset.add(attr);
- }
- else {
- aset.remove(category);
- }
- }
- else {
- aset.remove(category);
- }
- }
- }
- }
+ GUIUtil.setDisposableDialogOptions(this, previewButton);
+
+ }
+
+
+ @Override
+ public void valueChanged(final TreeSelectionEvent e) {
+ final TreePath path = e.getNewLeadSelectionPath();
+ if (path != null) {
+ previewButton.setEnabled(true);
+ saveAsPDF.setEnabled(true);
+ } else {
+ previewButton.setEnabled(false);
+ saveAsPDF.setEnabled(false);
+ }
+ }
+
+ /**
+ * If expand is true, expands all nodes in the tree. Otherwise, collapses all nodes in the theTree.
+ *
+ * @param theTree the tree to expand/contract
+ * @param expand expand if true, contract if not
+ */
+ public void expandAll(RocketPrintTree theTree, boolean expand) {
+ TreeNode root = (TreeNode) theTree.getModel().getRoot();
+ // Traverse theTree from root
+ expandAll(theTree, new TreePath(root), expand);
+ }
+
+ /**
+ * Recursively walk a tree, and if expand is true, expands all nodes in the tree. Otherwise, collapses all nodes in
+ * the theTree.
+ *
+ * @param theTree the tree to expand/contract
+ * @param parent the node to iterate/recurse over
+ * @param expand expand if true, contract if not
+ */
+ private void expandAll(RocketPrintTree theTree, TreePath parent, boolean expand) {
+ theTree.addSelectionPath(parent);
+ // Traverse children
+ TreeNode node = (TreeNode) parent.getLastPathComponent();
+ if (node.getChildCount() >= 0) {
+ for (Enumeration<?> e = node.children(); e.hasMoreElements();) {
+ TreeNode n = (TreeNode) e.nextElement();
+ TreePath path = parent.pathByAddingChild(n);
+ expandAll(theTree, path, expand);
+ }
+ }
+ // Expansion or collapse must be done bottom-up
+ if (expand) {
+ theTree.expandPath(parent);
+ } else {
+ theTree.collapsePath(parent);
+ }
+ }
+
+
- log.error("Could not create temporary file for previewing.", e);
- JOptionPane.showMessageDialog(this, "Could not create a temporary file for previewing.",
- "Error creating file", JOptionPane.ERROR_MESSAGE);
+ /**
+ * Generate a report using a temporary file. The file will be deleted upon JVM exit.
+ *
+ * @param paper the name of the paper size
+ *
+ * @return a file, populated with the "printed" output (the rocket info)
+ *
+ * @throws IOException thrown if the file could not be generated
+ */
+ private File generateReport(PrintSettings settings) throws IOException {
+ final File f = File.createTempFile("openrocket-", ".pdf");
+ f.deleteOnExit();
+ return generateReport(f, settings);
+ }
+
+ /**
+ * Generate a report to a specified file.
+ *
+ * @param f the file to which rocket data will be written
+ * @param paper the name of the paper size
+ *
+ * @return a file, populated with the "printed" output (the rocket info)
+ *
+ * @throws IOException thrown if the file could not be generated
+ */
+ private File generateReport(File f, PrintSettings settings) throws IOException {
+ Iterator<PrintableContext> toBePrinted = currentTree.getToBePrinted();
+ new PrintController().print(document, toBePrinted, new FileOutputStream(f), settings);
+ return f;
+ }
+
+
+ /**
+ * Handler for when the Preview button is clicked.
+ */
+ private void onPreview() {
+ if (desktop != null) {
+ try {
+ PrintSettings settings = Prefs.getPrintSettings();
+ // TODO: HIGH: Remove UIManager, and pass settings to the actual printing methods
+ TemplateProperties.setColors(settings);
+ File f = generateReport(settings);
+ desktop.open(f);
+ } catch (IOException e) {
- JOptionPane.showMessageDialog(this,
- "Your environment does not support automatically opening the default PDF viewer.",
- "Error creating file", JOptionPane.INFORMATION_MESSAGE);
++ log.error("Could not open preview.", e);
++ JOptionPane.showMessageDialog(this, new String[] {
++ trans.get("error.preview.desc1"),
++ trans.get("error.preview.desc2") },
++ trans.get("error.preview.title"),
++ JOptionPane.ERROR_MESSAGE);
+ }
+ } else {
- return "PDF files";
++ JOptionPane.showMessageDialog(this, new String[] {
++ trans.get("error.preview.desc1"),
++ trans.get("error.preview.desc2") },
++ trans.get("error.preview.title"),
++ JOptionPane.INFORMATION_MESSAGE);
+ }
+ }
+
+ /**
+ * Handler for when the "Save as PDF" button is clicked.
+ *
+ * @return true if the PDF was saved
+ */
+ private boolean onSavePDF() {
+
+ JFileChooser chooser = new JFileChooser();
+ // Note: source for ExampleFileFilter can be found in FileChooserDemo,
+ // under the demo/jfc directory in the Java 2 SDK, Standard Edition.
+ FileFilter filter = new FileFilter() {
+
+ //Accept all directories and all pdf files.
+ @Override
+ public boolean accept(File f) {
+ if (f.isDirectory())
+ return true;
+ return f.getName().toLowerCase().endsWith(".pdf");
+ }
+
+ //The description of this filter
+ @Override
+ public String getDescription() {
++ return trans.get("filetypes.pdf");
+ }
+ };
+ chooser.setFileFilter(filter);
+ int returnVal = chooser.showSaveDialog(this);
+ if (returnVal == JFileChooser.APPROVE_OPTION) {
+
+ try {
+ String fname = chooser.getSelectedFile().getCanonicalPath();
+ if (!getExtension(fname).equals("pdf")) {
+ fname = fname + ".pdf";
+ }
+ File f = new File(fname);
+ PrintSettings settings = Prefs.getPrintSettings();
+ // TODO: HIGH: Remove UIManager, and pass settings to the actual printing methods
+ TemplateProperties.setColors(settings);
+ generateReport(f, settings);
+ } catch (IOException e) {
+ ExceptionHandler.handleErrorCondition(e);
+ }
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Get the extension of a file.
+ */
+ private static String getExtension(String s) {
+ String ext = null;
+ int i = s.lastIndexOf('.');
+
+ if (i > 0 && i < s.length() - 1) {
+ ext = s.substring(i + 1).toLowerCase();
+ }
+ return ext != null ? ext : "";
+ }
}
".ork", ".ork.gz", ".rkt", ".rkt.gz");
private static final FileFilter OPENROCKET_DESIGN_FILTER =
- new SimpleFileFilter("OpenRocket designs (*.ork)", ".ork", ".ork.gz");
+ //// OpenRocket designs (*.ork)
+ new SimpleFileFilter(trans.get("BasicFrame.SimpleFileFilter2"), ".ork", ".ork.gz");
private static final FileFilter ROCKSIM_DESIGN_FILTER =
- new SimpleFileFilter("RockSim designs (*.rkt)", ".rkt", ".rkt.gz");
+ //// RockSim designs (*.rkt)
+ new SimpleFileFilter(trans.get("BasicFrame.SimpleFileFilter3"), ".rkt", ".rkt.gz");
-
+
public static final int COMPONENT_TAB = 0;
public static final int SIMULATION_TAB = 1;
log.info("Warnings while reading file: " + warnings);
WarningDialog.showWarnings(parent,
new Object[] {
- "The following problems were encountered while opening " + filename + ".",
- "Some design features may not have been loaded correctly."
- //// The following problems were encountered while opening
- trans.get("BasicFrame.WarningDialog.txt1") +" " + filename + ".",
++ //// The following problems were encountered while opening
++ trans.get("BasicFrame.WarningDialog.txt1") + " " + filename + ".",
+ //// Some design features may not have been loaded correctly.
- trans.get("BasicFrame.WarningDialog.txt2")
++ trans.get("BasicFrame.WarningDialog.txt2")
},
- "Warnings while opening file", warnings);
+ //// Warnings while opening file
+ trans.get("BasicFrame.WarningDialog.title"), warnings);
}
log.info("Confirming whether to save the design");
ComponentConfigDialog.hideDialog();
int result = JOptionPane.showConfirmDialog(this,
- "Design '" + rocket.getName() + "' has not been saved. " +
- "Do you want to save it?",
- "Design not saved", JOptionPane.YES_NO_CANCEL_OPTION,
- trans.get("BasicFrame.dlg.lbl1") + rocket.getName() +
- trans.get("BasicFrame.dlg.lbl2")+ " " +
- trans.get("BasicFrame.dlg.lbl3"),
++ trans.get("BasicFrame.dlg.lbl1") + rocket.getName() +
++ trans.get("BasicFrame.dlg.lbl2") + " " +
++ trans.get("BasicFrame.dlg.lbl3"),
+ trans.get("BasicFrame.dlg.title"), JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE);
if (result == JOptionPane.YES_OPTION) {
// Save
/**
* A translator implementation that returns the logical key in brackets instead
-- * of an actual translation.
++ * of an actual translation. The class optionally verifies that the translation
++ * is actually obtainable from some other translator.
*
* @author Sampo Niskanen <sampo.niskanen@iki.fi>
*/
public class DebugTranslator implements Translator {
++ private final Translator translator;
++
++
++ /**
++ * Sole constructor.
++ *
++ * @param translator the translator to verify the translation exists, or <code>null</code> not to verify.
++ */
++ public DebugTranslator(Translator translator) {
++ this.translator = translator;
++ }
++
++
++
@Override
public String get(String key) {
++ if (translator != null) {
++ translator.get(key);
++ }
return "[" + key + "]";
}
package net.sf.openrocket.rocketcomponent;
- import net.sf.openrocket.motor.Motor;
- import net.sf.openrocket.util.Coordinate;
- import net.sf.openrocket.util.MathUtil;
-
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+
+ import net.sf.openrocket.l10n.Translator;
+ import net.sf.openrocket.motor.Motor;
+ import net.sf.openrocket.startup.Application;
+ import net.sf.openrocket.util.Coordinate;
+ import net.sf.openrocket.util.MathUtil;
+
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-
/**
* Rocket body tube component. Has only two parameters, a radius and length.
*/
public class BodyTube extends SymmetricComponent implements MotorMount, Coaxial {
-
+ private static final Translator trans = Application.getTranslator();
-
++
private double radius = 0;
private boolean autoRadius = false; // Radius chosen automatically based on parent component
-
+
// When changing the inner radius, thickness is modified
-
+
private boolean motorMount = false;
private HashMap<String, Double> ejectionDelays = new HashMap<String, Double>();
private HashMap<String, Motor> motors = new HashMap<String, Motor>();
this.filled = false;
this.thickness = thickness;
}
-
-
+
+
/************ Get/set component parameter methods ************/
-
+
/**
* Return the outer radius of the body tube.
- *
- *
-- * @return the outside radius of the tube
++ *
++ * @return the outside radius of the tube
*/
-- @Override
-- public double getOuterRadius () {
++ @Override
++ public double getOuterRadius() {
if (autoRadius) {
// Return auto radius from front or rear
double r = -1;
* Set the outer radius of the body tube. If the radius is less than the wall thickness,
* the wall thickness is decreased accordingly of the value of the radius.
* This method sets the automatic radius off.
- *
- *
-- * @param radius the outside radius in standard units
++ *
++ * @param radius the outside radius in standard units
*/
-- @Override
-- public void setOuterRadius (double radius) {
++ @Override
++ public void setOuterRadius(double radius) {
if ((this.radius == radius) && (autoRadius == false))
return;
-
+
this.autoRadius = false;
this.radius = Math.max(radius, 0);
-
+
if (this.thickness > this.radius)
this.thickness = this.radius;
fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE);
public boolean isRadiusAutomatic() {
return autoRadius;
}
-
+
/**
- * Sets whether the radius is selected automatically or not.
+ * Sets whether the radius is selected automatically or not.
*/
public void setRadiusAutomatic(boolean auto) {
if (autoRadius == auto)
autoRadius = auto;
fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE);
}
-
-
+
+
@Override
-- public double getAftRadius() { return getOuterRadius(); }
++ public double getAftRadius() {
++ return getOuterRadius();
++ }
++
@Override
-- public double getForeRadius() { return getOuterRadius(); }
++ public double getForeRadius() {
++ return getOuterRadius();
++ }
++
@Override
public boolean isAftRadiusAutomatic() {
return isRadiusAutomatic();
}
return getOuterRadius();
}
+
+
-
-
-
-
- @Override
+
-
-
-
-
-
- @Override
++ @Override
public double getInnerRadius() {
if (filled)
return 0;
-- return Math.max(getOuterRadius()-thickness, 0);
++ return Math.max(getOuterRadius() - thickness, 0);
}
-
- @Override
+
- @Override
++ @Override
public void setInnerRadius(double r) {
-- setThickness(getOuterRadius()-r);
++ setThickness(getOuterRadius() - r);
}
-
-
+
+
/**
*/
@Override
public String getComponentName() {
- return "Body tube";
+ //// Body tube
+ return trans.get("BodyTube.BodyTube");
}
-
- /**
- * Accept a visitor to this BodyTube in the component hierarchy.
- *
- * @param theVisitor the visitor that will be called back with a reference to this BodyTube
- */
- @Override
- public void accept (final ComponentVisitor theVisitor) {
- theVisitor.visit(this);
- }
--
--
++
++
/************ Component calculations ***********/
-
+
// From SymmetricComponent
/**
* Returns the outer radius at the position x. This returns the same value as getOuterRadius().
if (filled)
return 0.0;
else
-- return Math.max(getOuterRadius()-thickness,0);
++ return Math.max(getOuterRadius() - thickness, 0);
}
-
-
+
+
/**
* Returns the body tube's center of gravity.
*/
@Override
public double getLongitudinalUnitInertia() {
// 1/12 * (3 * (r1^2 + r2^2) + h^2)
-- return (3 * (MathUtil.pow2(getInnerRadius())) + MathUtil.pow2(getOuterRadius()) +
-- MathUtil.pow2(getLength())) / 12;
++ return (3 * (MathUtil.pow2(getInnerRadius())) + MathUtil.pow2(getOuterRadius()) + MathUtil.pow2(getLength())) / 12;
}
-
+
@Override
public double getRotationalUnitInertia() {
// 1/2 * (r1^2 + r2^2)
-- return (MathUtil.pow2(getInnerRadius()) + MathUtil.pow2(getOuterRadius()))/2;
++ return (MathUtil.pow2(getInnerRadius()) + MathUtil.pow2(getOuterRadius())) / 2;
}
-
-
+
+
/**
package net.sf.openrocket.rocketcomponent;
-import java.util.List;
-
+ import net.sf.openrocket.l10n.Translator;
import net.sf.openrocket.material.Material;
+ import net.sf.openrocket.startup.Application;
import net.sf.openrocket.unit.UnitGroup;
import net.sf.openrocket.util.Prefs;
*/
public abstract class ExternalComponent extends RocketComponent {
-
+
public enum Finish {
- ROUGH("Rough", 500e-6),
- UNFINISHED("Unfinished", 150e-6),
- NORMAL("Regular paint", 60e-6),
- SMOOTH("Smooth paint", 20e-6),
- POLISHED("Polished", 2e-6);
+ //// Rough
+ ROUGH("ExternalComponent.Rough", 500e-6),
+ //// Unfinished
+ UNFINISHED("ExternalComponent.Unfinished", 150e-6),
+ //// Regular paint
+ NORMAL("ExternalComponent.Regularpaint", 60e-6),
+ //// Smooth paint
+ SMOOTH("ExternalComponent.Smoothpaint", 20e-6),
+ //// Polished
+ POLISHED("ExternalComponent.Polished", 2e-6);
-
+
private final String name;
private final double roughnessSize;
-
+
Finish(String name, double roughness) {
this.name = name;
this.roughnessSize = roughness;
public double getRoughnessSize() {
return roughnessSize;
}
-
+
@Override
public String toString() {
- return name + " (" + UnitGroup.UNITS_ROUGHNESS.toStringUnit(roughnessSize) + ")";
+ final Translator trans = Application.getTranslator();
+ return trans.get(name) + " (" + UnitGroup.UNITS_ROUGHNESS.toStringUnit(roughnessSize) + ")";
}
}
-
-
+
+
/**
* The material of the component.
*/
public class FreeformFinSet extends FinSet {
private static final LogHelper log = Application.getLogger();
-
+ private static final Translator trans = Application.getTranslator();
-
++
private ArrayList<Coordinate> points = new ArrayList<Coordinate>();
-
+
public FreeformFinSet() {
points.add(Coordinate.NUL);
points.add(new Coordinate(0.025, 0.05));
((FreeformFinSet) c).points = this.points.clone();
return c;
}
-
- private void validate(ArrayList<Coordinate> points) throws IllegalFinPointException {
- final int n = points.size();
- if (points.get(0).x != 0 || points.get(0).y != 0 ||
- points.get(n - 1).x < 0 || points.get(n - 1).y != 0) {
+
- /**
- * Accept a visitor to this FreeformFinSet in the component hierarchy.
- *
- * @param theVisitor the visitor that will be called back with a reference to this FreeformFinSet
- */
- @Override
- public void accept(ComponentVisitor theVisitor) {
- theVisitor.visit(this);
- }
-
- private void validate(ArrayList<Coordinate> points) throws IllegalFinPointException {
- final int n = points.size();
- if (points.get(0).x != 0 || points.get(0).y != 0 ||
- points.get(n - 1).x < 0 || points.get(n - 1).y != 0) {
++ private void validate(ArrayList<Coordinate> pts) throws IllegalFinPointException {
++ final int n = pts.size();
++ if (pts.get(0).x != 0 || pts.get(0).y != 0 ||
++ pts.get(n - 1).x < 0 || pts.get(n - 1).y != 0) {
throw new IllegalFinPointException("Start or end point illegal.");
}
for (int i = 0; i < n - 1; i++) {
for (int j = i + 2; j < n - 1; j++) {
-- if (intersects(points.get(i).x, points.get(i).y, points.get(i + 1).x, points.get(i + 1).y,
-- points.get(j).x, points.get(j).y, points.get(j + 1).x, points.get(j + 1).y)) {
++ if (intersects(pts.get(i).x, pts.get(i).y, pts.get(i + 1).x, pts.get(i + 1).y,
++ pts.get(j).x, pts.get(j).y, pts.get(j + 1).x, pts.get(j + 1).y)) {
throw new IllegalFinPointException("segments intersect");
}
}
-- if (points.get(i).z != 0) {
++ if (pts.get(i).z != 0) {
throw new IllegalFinPointException("z-coordinate not zero");
}
}
package net.sf.openrocket.rocketcomponent;
++import java.util.ArrayList;
++import java.util.HashMap;
++import java.util.List;
++
+ import net.sf.openrocket.l10n.Translator;
import net.sf.openrocket.motor.Motor;
+ import net.sf.openrocket.startup.Application;
import net.sf.openrocket.util.BugException;
import net.sf.openrocket.util.Coordinate;
import net.sf.openrocket.util.MathUtil;
--import java.util.ArrayList;
--import java.util.HashMap;
--import java.util.List;
--
/**
* This class defines an inner tube that can be used as a motor mount. The component
*/
public class InnerTube extends ThicknessRingComponent
implements Clusterable, RadialParent, MotorMount {
-
+ private static final Translator trans = Application.getTranslator();
-
++
private ClusterConfiguration cluster = ClusterConfiguration.SINGLE;
private double clusterScale = 1.0;
private double clusterRotation = 0.0;
* Get the current cluster configuration.
* @return The current cluster configuration.
*/
++ @Override
public ClusterConfiguration getClusterConfiguration() {
return cluster;
}
* Set the current cluster configuration.
* @param cluster The cluster configuration.
*/
++ @Override
public void setClusterConfiguration(ClusterConfiguration cluster) {
this.cluster = cluster;
fireComponentChangeEvent(ComponentChangeEvent.MASS_CHANGE);
public class LaunchLug extends ExternalComponent implements Coaxial {
+ private static final Translator trans = Application.getTranslator();
+
private double radius;
private double thickness;
-
+
private double radialDirection = 0;
-
+
/* These are calculated when the component is first attached to any Rocket */
private double shiftY, shiftZ;
-
-
+
+
public LaunchLug() {
super(Position.MIDDLE);
public Coordinate getComponentCG() {
return new Coordinate(length / 2, 0, 0, getComponentMass());
}
-
+
@Override
public String getComponentName() {
- return "Launch lug";
+ //// Launch lug
+ return trans.get("LaunchLug.Launchlug");
}
-
+
@Override
public double getLongitudinalUnitInertia() {
// 1/12 * (3 * (r1^2 + r2^2) + h^2)
*/
public class NoseCone extends Transition {
-
-
+ private static final Translator trans = Application.getTranslator();
-
++
+
/********* Constructors **********/
public NoseCone() {
-- this(Transition.Shape.OGIVE, 6*DEFAULT_RADIUS, DEFAULT_RADIUS);
++ this(Transition.Shape.OGIVE, 6 * DEFAULT_RADIUS, DEFAULT_RADIUS);
}
-
+
public NoseCone(Transition.Shape type, double length, double radius) {
super();
super.setType(type);
super.setForeRadiusAutomatic(false);
super.setForeRadius(0);
super.setForeShoulderLength(0);
-- super.setForeShoulderRadius(0.9*radius);
++ super.setForeShoulderRadius(0.9 * radius);
super.setForeShoulderThickness(0);
super.setForeShoulderCapped(filled);
super.setThickness(0.002);
super.setLength(length);
super.setClipped(false);
-
+
}
-
-
+
-
++
/********** Get/set methods for component parameters **********/
--
++
@Override
public double getForeRadius() {
return 0;
public void setForeRadius(double r) {
// No-op
}
--
++
@Override
public boolean isForeRadiusAutomatic() {
return false;
public void setForeRadiusAutomatic(boolean b) {
// No-op
}
--
++
@Override
public double getForeShoulderLength() {
return 0;
}
--
++
@Override
public double getForeShoulderRadius() {
return 0;
}
--
++
@Override
public double getForeShoulderThickness() {
return 0;
}
--
++
@Override
public boolean isForeShoulderCapped() {
return false;
}
--
++
@Override
public void setForeShoulderCapped(boolean capped) {
// No-op
}
--
++
@Override
public void setForeShoulderLength(double foreShoulderLength) {
// No-op
}
--
++
@Override
public void setForeShoulderRadius(double foreShoulderRadius) {
// No-op
}
--
++
@Override
public void setForeShoulderThickness(double foreShoulderThickness) {
// No-op
}
--
++
@Override
public boolean isClipped() {
return false;
public void setClipped(boolean b) {
// No-op
}
-
-
+
-
+
- /********** RocketComponent methods **********/
-
+ /********** RocketComponent methods **********/
++
/**
* Return component name.
*/
@Override
public String getComponentName() {
- return "Nose cone";
+ //// Nose cone
+ return trans.get("NoseCone.NoseCone");
}
-
-
- /**
- * Accept a visitor to this NoseCone in the component hierarchy.
- *
- * @param theVisitor the visitor that will be called back with a reference to this NoseCone
- */
- @Override
- public void accept(ComponentVisitor theVisitor) {
- theVisitor.visit(this);
- }
++
}
checkState();
return this.getChildCount();
}
-
-
+
+
/**
* Return the non-negative modification ID of this rocket. The ID is changed
- * every time any change occurs in the rocket. This can be used to check
+ * every time any change occurs in the rocket. This can be used to check
* whether it is necessary to void cached data in cases where listeners can not
* or should not be used.
* <p>
fireComponentChangeEvent(ComponentChangeEvent.MOTOR_CHANGE);
return id;
}
-
+
/**
* Add a specified motor configuration ID to the motor configurations.
- *
+ *
* @param id the motor configuration ID.
* @return true if successful, false if the ID was already used.
*/
motorConfigurationIDs.remove(id);
fireComponentChangeEvent(ComponentChangeEvent.MOTOR_CHANGE);
}
-
-
+
+
/**
* Check whether <code>id</code> is a valid motor configuration ID.
- *
+ *
* @param id the configuration ID.
* @return whether a motor configuration with that ID exists.
*/
motorConfigurationNames.put(id, name);
fireComponentChangeEvent(ComponentChangeEvent.NONFUNCTIONAL_CHANGE);
}
-
-
+
+
/**
- * Return either the motor configuration name (if set) or its description.
- *
+ * Return either the motor configuration name (if set) or its description.
+ *
* @param id the motor configuration ID.
* @return a textual representation of the configuration
*/
name = getMotorConfigurationName(id);
if (name != null && !name.equals(""))
return name;
-
+
return getMotorConfigurationDescription(id);
}
-
+
/**
- * Return a description for the motor configuration, generated from the motor
+ * Return a description for the motor configuration, generated from the motor
* designations of the components.
- *
+ *
* @param id the motor configuration ID.
* @return a textual representation of the configuration
*/
motorCount++;
}
}
-
+
}
}
-
+
if (motorCount == 0) {
- return "[No motors]";
+ //// [No motors]
+ return trans.get("Rocket.motorCount.Nomotor");
}
-
+
- // Change multiple occurrences of a motor to n x motor
+ // Change multiple occurrences of a motor to n x motor
List<String> stages = new ArrayList<String>();
-
+
for (List<String> stage : list) {
String stageName = "";
String previous = null;
public boolean isCompatible(Class<? extends RocketComponent> type) {
return (Stage.class.isAssignableFrom(type));
}
-
+
- /**
- * Accept a visitor to this Rocket in the component hierarchy.
- *
- * @param theVisitor the visitor that will be called back with a reference to this Rocket
- */
- @Override
- public void accept(final ComponentVisitor theVisitor) {
- theVisitor.visit(this);
- }
}
import net.sf.openrocket.logging.LogHelper;
import net.sf.openrocket.startup.Application;
import net.sf.openrocket.util.ArrayList;
- import net.sf.openrocket.util.*;
-
- import javax.swing.event.ChangeListener;
- import java.awt.*;
- import java.util.*;
- import java.util.List;
+ import net.sf.openrocket.util.BugException;
+ import net.sf.openrocket.util.ChangeSource;
+ import net.sf.openrocket.util.Coordinate;
+ import net.sf.openrocket.util.Invalidator;
+ import net.sf.openrocket.util.LineStyle;
+ import net.sf.openrocket.util.MathUtil;
+ import net.sf.openrocket.util.SafetyMutex;
+ import net.sf.openrocket.util.UniqueID;
-public abstract class RocketComponent implements ChangeSource, Cloneable, Iterable<RocketComponent>,
- Visitable<ComponentVisitor, RocketComponent> {
+public abstract class RocketComponent implements ChangeSource, Cloneable, Iterable<RocketComponent> {
private static final LogHelper log = Application.getLogger();
-
+ private static final Translator trans = Application.getTranslator();
-
++
/*
* Text is suitable to the form
* Position relative to: <title>
* Return the component CG and mass (regardless of CG or mass overriding).
*/
public abstract Coordinate getComponentCG(); // CG of non-overridden component
-
+
/**
- * Return the longitudinal (around the y- or z-axis) unitary moment of inertia.
+ * Return the longitudinal (around the y- or z-axis) unitary moment of inertia.
* The unitary moment of inertia is the moment of inertia with the assumption that
* the mass of the component is one kilogram. The inertia is measured in
* respect to the non-overridden CG.
* @return the longitudinal unitary moment of inertia of this component.
*/
public abstract double getLongitudinalUnitInertia();
-
-
+
+
/**
- * Return the rotational (around the x-axis) unitary moment of inertia.
+ * Return the rotational (around the x-axis) unitary moment of inertia.
* The unitary moment of inertia is the moment of inertia with the assumption that
* the mass of the component is one kilogram. The inertia is measured in
* respect to the non-overridden CG.
checkState();
return c;
}
-
-
+
+
/**
- * Called when any component in the tree fires a ComponentChangeEvent. This is by
- * default a no-op, but subclasses may override this method to e.g. invalidate
- * cached data. The overriding method *must* call
+ * Called when any component in the tree fires a ComponentChangeEvent. This is by
+ * default a no-op, but subclasses may override this method to e.g. invalidate
+ * cached data. The overriding method *must* call
* <code>super.componentChanged(e)</code> at some point.
- *
+ *
* @param e The event fired
*/
protected void componentChanged(ComponentChangeEvent e) {
mutex.unlock("copyWithOriginalID");
}
}
-
-
+
+
- /**
- * Accept a visitor to this RocketComponent in the component hierarchy.
- *
- * @param theVisitor the visitor that will be called back with a reference to this RocketComponent
- */
- @Override
- public void accept(final ComponentVisitor theVisitor) {
- theVisitor.visit(this);
- }
-
////////////// Methods that may not be overridden ////////////
-
+
////////// Common parameter setting/getting //////////
mutex.verify();
return color;
}
-
+
/**
- * Set the color of the object to use in 2D figures.
+ * Set the color of the object to use in 2D figures.
*/
public final void setColor(Color c) {
if ((color == null && c == null) ||
mutex.verify();
return massOverriden;
}
-
+
/**
* Set whether the mass is currently overridden.
- *
+ *
* @param o whether the mass is overridden
*/
public final void setMassOverridden(boolean o) {
mutex.verify();
return getComponentCG().setX(overrideCGX);
}
-
+
/**
* Return the x-coordinate of the current override CG.
- *
+ *
* @return the x-coordinate of the override CG.
*/
public final double getOverrideCGX() {
mutex.verify();
return overrideCGX;
}
-
+
/**
* Set the current override CG to (x,0,0).
- *
+ *
* @param x the x-coordinate of the override CG to set.
*/
public final void setOverrideCGX(double x) {
else
fireComponentChangeEvent(ComponentChangeEvent.NONFUNCTIONAL_CHANGE);
}
-
+
/**
* Return whether the CG is currently overridden.
- *
+ *
* @return whether the CG is overridden
*/
public final boolean isCGOverridden() {
mutex.verify();
return cgOverriden;
}
-
+
/**
* Set whether the CG is currently overridden.
- *
+ *
* @param o whether the CG is overridden
*/
public final void setCGOverridden(boolean o) {
mutex.verify();
return comment;
}
-
+
/**
* Set the comment of the component.
- *
+ *
* @param comment the comment of the component.
*/
public final void setComment(String comment) {
checkState();
return toRelative(c, null);
}
-
-
+
+
/**
- * Return coordinate <code>c</code> described in the coordinate system of
+ * Return coordinate <code>c</code> described in the coordinate system of
* <code>dest</code>. If <code>dest</code> is <code>null</code> returns
* absolute coordinates.
* <p>
array[i] = array[i].setX(absoluteX + c.x);
}
}
-
+
// Check whether destination has been found or whether to backtrack
- // TODO: LOW: Backtracking into clustered components uses only one component
+ // TODO: LOW: Backtracking into clustered components uses only one component
if ((dest != null) && (component != dest)) {
Coordinate[] origin = dest.toAbsolute(Coordinate.NUL);
for (int i = 0; i < array.length; i++) {
mutex.unlock("toRelative");
}
}
-
-
+
+
/**
- * Recursively sum the lengths of all subcomponents that have position
+ * Recursively sum the lengths of all subcomponents that have position
* Position.AFTER.
- *
+ *
* @return Sum of the lengths.
*/
private final double getTotalLength() {
mutex.unlock("getTotalLength");
}
}
-
-
+
+
/////////// Total mass and CG calculation ////////////
-
+
/**
* Return the (possibly overridden) mass of component.
- *
+ *
* @return The mass of the component or the given override mass.
*/
public final double getMass() {
return overrideMass;
return getComponentMass();
}
-
+
/**
* Return the (possibly overridden) center of gravity and mass.
- *
+ *
* Returns the CG with the weight of the coordinate set to the weight of the component.
* Both CG and mass may be separately overridden.
- *
+ *
* @return The CG of the component or the given override CG.
*/
public final Coordinate getCG() {
checkState();
addChild(component, children.size());
}
-
-
+
+
/**
- * Adds a child to the rocket component tree. The component is added to
+ * Adds a child to the rocket component tree. The component is added to
* the given position of the component's child list.
* <p>
- * This method may be overridden to enforce more strict component addition rules.
+ * This method may be overridden to enforce more strict component addition rules.
* The tests should be performed first and then this method called.
- *
+ *
* @param component The component to add.
* @param index Position to add component to.
- * @throws IllegalArgumentException If the component is already part of
+ * @throws IllegalArgumentException If the component is already part of
* some component tree.
*/
public void addChild(RocketComponent component, int index) {
throw new IllegalStateException("Component " + component.getComponentName() +
" not currently compatible with component " + getComponentName());
}
-
+
children.add(index, component);
component.parent = this;
-
+
this.checkComponentStructure();
component.checkComponentStructure();
-
+
fireAddRemoveEvent(component);
}
-
-
+
+
/**
* Removes a child from the rocket component tree.
- *
+ *
* @param n remove the n'th child.
* @throws IndexOutOfBoundsException if n is out of bounds
*/
checkState();
return parent;
}
-
+
/**
* Get the root component of the component tree.
- *
+ *
* @return The root component of the component tree.
*/
public final RocketComponent getRoot() {
gp = gp.parent;
return gp;
}
-
+
/**
- * Returns the root Rocket component of this component tree. Throws an
+ * Returns the root Rocket component of this component tree. Throws an
* IllegalStateException if the root component is not a Rocket.
- *
+ *
* @return The root Rocket component of the component tree.
* @throws IllegalStateException If the root component is not a Rocket.
*/
getRoot().removeComponentChangeListener(l);
}
}
-
-
+
+
/**
- * Adds a <code>ChangeListener</code> to the rocket tree. This is identical to
- * <code>addComponentChangeListener()</code> except that it uses a
+ * Adds a <code>ChangeListener</code> to the rocket tree. This is identical to
+ * <code>addComponentChangeListener()</code> except that it uses a
* <code>ChangeListener</code>. The same events are dispatched to the
- * <code>ChangeListener</code>, as <code>ComponentChangeEvent</code> is a subclass
+ * <code>ChangeListener</code>, as <code>ComponentChangeEvent</code> is a subclass
* of <code>ChangeEvent</code>.
- *
+ *
* @throws IllegalStateException - if the root component is not a <code>Rocket</code>
*/
@Override
getRoot().removeChangeListener(l);
}
}
-
-
+
+
/**
- * Fires a ComponentChangeEvent on the rocket structure. The call is passed to the
+ * Fires a ComponentChangeEvent on the rocket structure. The call is passed to the
* root component, which must be of type Rocket (which overrides this method).
* Events of all subcomponents are sent to all listeners.
- *
- * If the component tree root is not a Rocket, the event is ignored. This is the
- * case when constructing components not in any Rocket tree. In this case it
+ *
+ * If the component tree root is not a Rocket, the event is ignored. This is the
+ * case when constructing components not in any Rocket tree. In this case it
* would be impossible for the component to have listeners in any case.
- *
+ *
* @param e Event to send
*/
protected void fireComponentChangeEvent(ComponentChangeEvent e) {
protected void invalidate() {
invalidator.invalidate();
}
-
-
+
+
////////// Iterator implementation ///////////
-
+
/**
* Private inner class to implement the Iterator.
- *
+ *
* This iterator is fail-fast if the root of the structure is a Rocket.
*/
private static class RocketComponentIterator implements Iterator<RocketComponent> {
package net.sf.openrocket.rocketcomponent;
+ import net.sf.openrocket.l10n.Translator;
+ import net.sf.openrocket.startup.Application;
+
public class Stage extends ComponentAssembly {
-
+
+ private static final Translator trans = Application.getTranslator();
+
@Override
public String getComponentName () {
- return "Stage";
+ //// Stage
+ return trans.get("Stage.Stage");
}
-
-
+
+
@Override
public boolean allowsChildren() {
return true;
package net.sf.openrocket.rocketcomponent;
- import net.sf.openrocket.util.Coordinate;
- import net.sf.openrocket.util.MathUtil;
++import static java.lang.Math.*;
++import static net.sf.openrocket.util.MathUtil.*;
+
+import java.util.Collection;
+
- import static java.lang.Math.sin;
- import static java.lang.Math.sqrt;
- import static net.sf.openrocket.util.Chars.FRAC12;
- import static net.sf.openrocket.util.Chars.FRAC34;
- import static net.sf.openrocket.util.MathUtil.pow2;
- import static net.sf.openrocket.util.MathUtil.pow3;
+ import net.sf.openrocket.l10n.Translator;
+ import net.sf.openrocket.startup.Application;
+ import net.sf.openrocket.util.Coordinate;
+ import net.sf.openrocket.util.MathUtil;
-import java.util.Collection;
-
-import static java.lang.Math.sin;
-import static java.lang.Math.sqrt;
-import static net.sf.openrocket.util.Chars.FRAC12;
-import static net.sf.openrocket.util.Chars.FRAC34;
-import static net.sf.openrocket.util.MathUtil.pow2;
-import static net.sf.openrocket.util.MathUtil.pow3;
-
public class Transition extends SymmetricComponent {
++ private static final Translator trans = Application.getTranslator();
private static final double CLIP_PRECISION = 0.0001;
-
+
private Shape type;
private double shapeParameter;
private double aftShoulderThickness;
private double aftShoulderLength;
private boolean aftShoulderCapped;
-
- private static final Translator trans = Application.getTranslator();
++
// Used to cache the clip length
private double clipLength = -1;
super.componentChanged(e);
clipLength = -1;
}
-
+
- /**
- * Accept a visitor to this Transition in the component hierarchy.
- *
- * @param theVisitor the visitor that will be called back with a reference to this Transition
- */
- @Override
- public void accept (final ComponentVisitor theVisitor) {
- theVisitor.visit(this);
- }
-
/**
* Check whether the given type can be added to this component. Transitions allow any
* InternalComponents to be added.
- *
- * @param type The RocketComponent class type to add.
+ *
- * @param type The RocketComponent class type to add.
++ * @param ctype The RocketComponent class type to add.
* @return Whether such a component can be added.
*/
@Override
-- public boolean isCompatible(Class<? extends RocketComponent> type) {
-- if (InternalComponent.class.isAssignableFrom(type))
++ public boolean isCompatible(Class<? extends RocketComponent> ctype) {
++ if (InternalComponent.class.isAssignableFrom(ctype))
return true;
return false;
}
return sqrt(2 * radius * x - x * x); // radius/length * sphere
}
},
-
- POWER("Power series",
- "A power series nose cone has a profile of " +
- "<i>Radius</i> × (<i>x</i> / <i>Length</i>)" +
- "<sup><i>k</i></sup> " +
- "where <i>k</i> is the shape parameter. For <i>k</i>=0.5 this is a " +
- "<b>" + FRAC12 + "-power</b> or <b>parabolic</b> nose cone, for <i>k</i>=0.75 a " +
- "<b>" + FRAC34 + "-power</b>, and for <i>k</i>=1 a <b>conical</b> nose cone.",
- "A power series transition has a profile of " +
- "<i>Radius</i> × (<i>x</i> / <i>Length</i>)" +
- "<sup><i>k</i></sup> " +
- "where <i>k</i> is the shape parameter. For <i>k</i>=0.5 the transition is " +
- "<b>" + FRAC12 + "-power</b> or <b>parabolic</b>, for <i>k</i>=0.75 a " +
- "<b>" + FRAC34 + "-power</b>, and for <i>k</i>=1 <b>conical</b>.", true) {
++
+ //// Power series
+ POWER(trans.get("Shape.Powerseries"),
- //// A power series nose cone has a profile of <i>Radius</i> × (<i>x</i> / <i>Length</i>)<sup><i>k</i></sup> where <i>k</i> is the shape parameter. For <i>k</i>=0.5 this is a <b>
- trans.get("Shape.Powerseries.descA1") + FRAC12 +
- //// -power</b> or <b>parabolic</b> nose cone, for <i>k</i>=0.75 a <b>
- trans.get("Shape.Powerseries.descA2") + FRAC34 +
- //// -power</b>, and for <i>k</i>=1 a <b>conical</b> nose cone.
- trans.get("Shape.Powerseries.descA3"),
- //// A power series transition has a profile of <i>Radius</i> × (<i>x</i> / <i>Length</i>)<sup><i>k</i></sup> where <i>k</i> is the shape parameter. For <i>k</i>=0.5 the transition is <b>
- trans.get("Shape.Powerseries.descB1") + FRAC12 +
- //// -power</b> or <b>parabolic</b>, for <i>k</i>=0.75 a <b>
- trans.get("Shape.Powerseries.descB2") + FRAC34 +
- //// -power</b>, and for <i>k</i>=1 <b>conical</b>.
- trans.get("Shape.Powerseries.descB3"), true) {
++ trans.get("Shape.Powerseries.desc1"),
++ trans.get("Shape.Powerseries.desc2"), true) {
@Override
public boolean usesParameter() { // Range 0...1
return true;
}
return radius * Math.pow(x / length, param);
}
-
+
},
-
- PARABOLIC("Parabolic series",
- "A parabolic series nose cone has a profile of a parabola. The shape " +
- "parameter defines the segment of the parabola to utilize. The shape " +
- "parameter 1.0 produces a <b>full parabola</b> which is tangent to the body " +
- "tube, 0.75 produces a <b>3/4 parabola</b>, 0.5 procudes a " +
- "<b>1/2 parabola</b> and 0 produces a <b>conical</b> nose cone.",
- "A parabolic series transition has a profile of a parabola. The shape " +
- "parameter defines the segment of the parabola to utilize. The shape " +
- "parameter 1.0 produces a <b>full parabola</b> which is tangent to the body " +
- "tube at the aft end, 0.75 produces a <b>3/4 parabola</b>, 0.5 procudes a " +
- "<b>1/2 parabola</b> and 0 produces a <b>conical</b> transition.") {
-
++
+ //// Parabolic series
+ PARABOLIC(trans.get("Shape.Parabolicseries"),
+ ////A parabolic series nose cone has a profile of a parabola. The shape parameter defines the segment of the parabola to utilize. The shape parameter 1.0 produces a <b>full parabola</b> which is tangent to the body tube, 0.75 produces a <b>3/4 parabola</b>, 0.5 procudes a <b>1/2 parabola</b> and 0 produces a <b>conical</b> nose cone.
+ trans.get("Shape.Parabolicseries.desc1"),
+ ////A parabolic series transition has a profile of a parabola. The shape parameter defines the segment of the parabola to utilize. The shape parameter 1.0 produces a <b>full parabola</b> which is tangent to the body tube at the aft end, 0.75 produces a <b>3/4 parabola</b>, 0.5 procudes a <b>1/2 parabola</b> and 0 produces a <b>conical</b> transition.
+ trans.get("Shape.Parabolicseries.desc2")) {
+
// In principle a parabolic transition is clippable, but the difference is
// negligible.
-
-
++
@Override
public boolean usesParameter() { // Range 0...1
return true;
return radius * ((2 * x / length - param * pow2(x / length)) / (2 - param));
}
},
-
-
-
- HAACK("Haack series",
- "The Haack series nose cones are designed to minimize drag. The shape parameter " +
- "0 produces an <b>LD-Haack</b> or <b>Von Karman</b> nose cone, which minimizes " +
- "drag for fixed length and diameter, while a value of 0.333 produces an " +
- "<b>LV-Haack</b> nose cone, which minimizes drag for fixed length and volume.",
- "The Haack series <i>nose cones</i> are designed to minimize drag. " +
- "These transition shapes are their equivalents, but do not necessarily produce " +
- "optimal drag for transitions. " +
- "The shape parameter 0 produces an <b>LD-Haack</b> or <b>Von Karman</b> shape, " +
- "while a value of 0.333 produces an <b>LV-Haack</b> shape.", true) {
+
-
+ //// Haack series
+ HAACK(trans.get("Shape.Haackseries"),
+ //// The Haack series nose cones are designed to minimize drag. The shape parameter 0 produces an <b>LD-Haack</b> or <b>Von Karman</b> nose cone, which minimizes drag for fixed length and diameter, while a value of 0.333 produces an <b>LV-Haack</b> nose cone, which minimizes drag for fixed length and volume.
+ trans.get("Shape.Haackseries.desc1"),
+ //// The Haack series <i>nose cones</i> are designed to minimize drag. These transition shapes are their equivalents, but do not necessarily produce optimal drag for transitions. The shape parameter 0 produces an <b>LD-Haack</b> or <b>Von Karman</b> shape, while a value of 0.333 produces an <b>LV-Haack</b> shape.
+ trans.get("Shape.Haackseries.desc2"), true) {
++
@Override
public boolean usesParameter() {
return true;
@Override
public String getComponentName() {
- return "Trapezoidal fin set";
+ //// Trapezoidal fin set
+ return trans.get("TrapezoidFinSet.TrapezoidFinSet");
}
- /**
- * Accept a visitor to this TrapezoidFinSet in the component hierarchy.
- *
- * @param theVisitor the visitor that will be called back with a reference to this TrapezoidFinSet
- */
- @Override
- public void accept(ComponentVisitor theVisitor) {
- theVisitor.visit(this);
- }
}
private static LogHelper logger;
private static LogLevelBufferLogger logBuffer;
- private static Translator baseTranslator = new DebugTranslator();
- private static Translator translator = new DebugTranslator();
++ private static Translator baseTranslator = new DebugTranslator(null);
private static ThrustCurveMotorSetDatabase motorSetDatabase;
}
Translator t;
++ t = new ResourceBundleTranslator("l10n.messages");
if (Locale.getDefault().getLanguage().equals("xx")) {
-- t = new DebugTranslator();
-- } else {
-- t = new ResourceBundleTranslator("l10n.messages");
++ t = new DebugTranslator(t);
}
log.info("Set up translation for locale " + Locale.getDefault() +
import net.sf.openrocket.database.Databases;
import net.sf.openrocket.document.Simulation;
import net.sf.openrocket.gui.main.ExceptionHandler;
+import net.sf.openrocket.gui.print.PrintSettings;
+ import net.sf.openrocket.l10n.Translator;
import net.sf.openrocket.logging.LogHelper;
import net.sf.openrocket.material.Material;
import net.sf.openrocket.rocketcomponent.BodyComponent;
* Within a holder class so they will load only when needed.
*/
private static class DefaultMaterialHolder {
-
+ private static final Translator trans = Application.getTranslator();
++
+ //// Elastic cord (round 2mm, 1/16 in)
private static final Material DEFAULT_LINE_MATERIAL =
- Databases.findMaterial(Material.Type.LINE, "Elastic cord (round 2mm, 1/16 in)",
+ Databases.findMaterial(Material.Type.LINE, trans.get("Databases.materials.Elasticcordround2mm"),
0.0018, false);
+ //// Ripstop nylon
private static final Material DEFAULT_SURFACE_MATERIAL =
- Databases.findMaterial(Material.Type.SURFACE, "Ripstop nylon", 0.067, false);
+ Databases.findMaterial(Material.Type.SURFACE, trans.get("Databases.materials.Ripstopnylon"), 0.067, false);
+ //// Cardboard
private static final Material DEFAULT_BULK_MATERIAL =
- Databases.findMaterial(Material.Type.BULK, "Cardboard", 680, false);
+ Databases.findMaterial(Material.Type.BULK, trans.get("Databases.materials.Cardboard"), 680, false);
}
//////////////////////