package MH.JavaFoil;

//Localized.java

import java.util.ListResourceBundle;

/** This class contains all the localized strings of JavaFoil.
 *
 * The strings are stored in a table of String Objects.
 * Each entry consists of a pair of Strings:
 * <ul>
 * <li>the FIRST one is a key and must never be changed,</li>
 * <li>the SECOND one is the string to be used for display.</li>
 * </ul>
 *
 * This sample file contains the default strings in English.
 * These are used, when no localized version is found.
 *
 * To create a localized version:
 * <ol>
 * <li>
 * translate the SECOND entry of each pair in the contents Object.
 * </li>
 * <li>
 * if you have the JDK and want to test your translation:
 * <ol>
 * <li>
 * rename the class to Localized_XX, where XX is the international
 * language code (e.g. "en" for "En"glish)
 * </li>
 * <li>
 * rename the file from Localized.java, to Localized_XX.java,
 * where XX is again the language code of choice
 * </li>
 * <li>
 * translate with "javac" to produce the class file Localized_XX.class
 * </li>
 * <li>
 * add the class file to javafoil.jar using "jar"
 * </li>
 * <li>
 * define LocalizationCheck=1 on the command line to produce a list of
 * keywords found (or nmissing)
 * </li>
 * </ol>
 * </li>
 * </ol>
 *
 * <p>Mail the translated file to:   Martin.Hepperle@dlr.de</p>
 *
 * <br>Initially Created:   April 2001
 * <br>Initial Author: Martin Hepperle
 *
 * Currently (2006) the following translations are embedded into JavaFoil:
 * <table>
 * <tr>
 * <td>English </td><td> April 2001 </td><td> Martin Hepperle </td><td> Germany </td>
 * </tr><tr>
 * <td>German </td><td> April 2001 </td><td> Martin Hepperle </td><td> Germany </td>
 * </tr><tr>
 * <td>French </td><td> March 2001 </td><td> Giorgio Toso </td><td> Canada </td>
 * </tr><tr>
 * <td>Italian </td><td> September 2001 </td><td> Giorgio Toso </td><td> Canada </td>
 * </tr><tr>
 * <td>Spanish </td><td> January 2003 </td><td> Israel Gandara </td><td> Spain </td>
 * </tr><tr>
 * <td>Portuguese(european) </td><td> October 2003 </td><td> João Alveirnho Correia </td><td> Portugal </td>
 * </tr><tr>
 * <td>Finnish </td><td> March 2005 </td><td> Matti Hyötyniemi </td><td> Finland </td>
 * </tr><tr>
 * <td>Dutch </td><td> March 2008 </td><td> Henri Rommelse </td><td> Netherlands </td>
 * </tr>
 * </table>
 */
public class Localized
        extends ListResourceBundle
{
    /** This method returns an array of String Objects containing
     * the keys and the localized strings.
     */
    public Object[][] getContents()
    {
        return contents;
    }

    /** The array of key-value pairs
     */
    static final Object[][] contents =
            { // localize the SECOND entry of each pair (first one is a lookup key)
            // --- details for this translation ----
            {"LOCALIZED_LANG", "English"}, // the language of this file
            {"LOCALIZED_AUTHOR", "Martin Hepperle"}, // the translator of this file
            {"LOCALIZED_DATE", "April 2001"}, // the date of this translation
            {"LOCALIZED_EMAIL",   "Martin.Hepperle9@MH-AeroTools.de"},     // the eMail of the translator
            // --- the application specific strings start here ----
            {"APPLOAD", "Loading Applet"},
            {"GEOMETRY", "Geometry"}, // tab caption
            {"MODIFY", "Modify"}, // tab caption
            {"DESIGN", "Design"}, // tab caption
            {"VELOCITY", "Velocity"}, // tab caption
            {"FIELD", "Flowfield"}, // tab caption
            {"BLAYER", "Boundary Layer"}, // tab caption
            {"POLAR", "Polar"}, // tab caption
            {"AIRCRAFT", "Aircraft"}, // tab caption
            {"OPTIONS", "Options"}, // tab caption
            {"READY", "Ready"}, // status line message
            {"NAME", "Name"},
            {"ADDPLTS", "Add to plots"}, // checkbox
            {"SAVE", "Save..."}, // button caption
            {"OPEN", "Open..."}, // button caption
            {"PRINT", "Print..."}, // button caption
            {"COPYTEXT", "Copy (Text)"}, // button caption
            {"COPYHTML", "Copy (HTML)"}, // button caption
            {"PASTETEXT", "Paste (Text)"}, // button caption
            {"OKAY", "Ok"}, // button in message box

            {"SAVESETTINGS", "Save Settings"}, // dialog box caption
            {"OPENSETTINGS", "Open Settings"}, // dialog box caption
            {"SAVEAIRFOIL", "Save Airfoil Coordinates"}, // dialog box caption
            {"OPENAIRFOIL", "Open Airfoil Coordinates"}, // dialog box caption
            {"SAVESCRIPT", "Save Script"}, // dialog box caption
            {"OPENSCRIPT", "Open Script"}, // dialog box caption
            {"SAVEPOLARS", "Save Polars"}, // dialog box caption
            {"SAVEFIELD", "Save Field Data"}, // dialog box caption
            {"STAT_SAVE", "Saving..."}, // status bar message
            {"STAT_WORK", "Working..."}, // status bar message
            {"STAT_STRM", "Streamlines..."}, // status bar message
            {"INFO_CAPTION", "JavaFoil - Information"}, // caption for message boxes
            {"WRN_CAPTION", "JavaFoil - Warning"}, // caption for message boxes
            {"ERR_CAPTION", "JavaFoil - Error"}, // caption for message boxes
            {"ERR_WRITE", "Error while writing file."}, // error message
            {"ERR_READ", "Error while reading file."}, // error message
            {"ERR_FILE", "File not found."}, // error message
            {"ERR_DECIMAL", "Could not find floating point numbers in input.\n" +
            "Please check JavaFoils country settings!\n" +
            "Trying to repair - possible decimal characters replaced by"}, // error message
            {"EXPIRED", "Your copy of JavaFoil is older than 6 months.\n" +
            "You should search the WEB for a more recent version.\n" +
            "http://www.mh-aerotools.de/"},
            // general items
            {"XC", "x/c"}, // normalized x-coordinate
            {"YC", "y/c"}, // normalized y-coordinate
            {"XS", "x/s"}, // normalized arc-length-coordinate
            {"LD", "L/D"}, // glide ratio L/D
            {"AC", "A.C."}, // "aerodynamic center", a.k.a. "neutral point"
            {"CP", "C.P."}, // "center of pressure"
            {"DELTA", "delta"}, // thickness delta_1, _2, _3
            {"BLSHAPE", "H"}, // shape parameter H_12, H_32
            {"MACH_NO", "Mach"}, // Mach Number, do not translate
            {"ASPECT_RATIO", "Aspect Ratio"}, // Aspect Ratio == (span^2/Area)
            {"WIG_LONG", "ground effect"}, // used in the status line to say "airfoil in ground effect"
            {"WIG_ABBREV", "WIG"}, // used in legend to abbreviate "airfoil in ground effect"
            {"FROUDE_LONG", "Froude effect"}, // used in the status line to say "airfoil in Froude effect"
            {"FROUDE_ABBREV", "FR"}, // used in legend to abbreviate "airfoil in Froude effect"
            {"SUM", "Sum"}, // used e.g. to indicate the sum of frag components
            {"SHOWDIST", "Show distributions of"},

            // *** Geometry card
            {"GEOMTITLE", "Airfoil Geometry"},
            {"COORDS", "Coordinates"},
            {"CLEAR", "CLEAR"}, // button caption
            {"UPDATEVW", "Update View"},
            {"NACATITLE", "Create an Airfoil"},
            {"NACATYPE", "Family"}, // caption for choice
            {"P_NACA_4", "NACA 4-digit (e.g. 2412)"}, // choice, a NACA series
            {"P_NACA_4M", "NACA 4-digit, modified (e.g. 0012-74)"}, // choice, a NACA series
            {"P_NACA_5", "NACA 5-digit (normal e.g. 23012)"}, // choice, a NACA series
            {"P_NACA_5M", "NACA 5-digit (reflexed e.g. 23112)"}, // choice, a NACA series
            {"P_NACA_6", "NACA 6-digit (e.g. 64012)"}, // choice, a NACA series
            {"P_NACA_16", "NACA 16-series (e.g. 16-412)"}, // choice
            {"P_TSAGI_B", "TsAGI \"B\" series"}, // choice, a Russian airfoil series
            {"P_NPL_EQH", "NPL EQH series"}, // choice, a British airfoil series
            {"P_BICONVEX", "Biconvex airfoil"}, // choice, a thin circular arc
            {"P_WEDGE", "Wedge"}, // choice, a flat shape with 4 corners
            {"P_PLATE", "Cambered Plate"}, // choice, a thin, cambered plate
            {"P_VDVOOREN", "Van de Vooren symmetrical airfoil"}, // choice, a Van de Vooren  conformal mapping airfoil
            {"P_NEWMAN", "Newman circular nose airfoil"}, // choice, a circular nose wedge airfoil
            {"P_JOUKOVSKY", "Joukovsky airfoil"}, // choice
            {"P_HBK", "Helmbold-Keune airfoil"}, // choice, an airfoil according to Helmbold and Keune
            {"POINTCOUNT", "Number of Points"},
            {"THK", "Thickness  t/c"},
            {"XTHK", "Thickness Location  xt/c"},
            {"RLE1", "Leading Edge Radius"},
            {"RLE2", "(4-digit: 1.1019*(t/c)²)"},
            {"TEA", "Trailing Edge Angle"},
            {"CAM", "Camber  f/c"},
            {"XCAM", "Camber Location  xf/c"},
            {"CLDES", "Design Lift Coefficient  Cl"},
            {"AMOD", "A-Modification"}, // modified NACA 6-series aections
            {"CLOSED_TE", "Modify NACA section to have closed trailing edge"},
            {"SHAPE", "Airfoil Shape"},
            {"C_NACA4", "This is a general purpose airfoil series"}, // comment
            {"C_NACA4M", "This is a modification of the 4-digit series"}, // comment
            {"C_NACA5", "Lower moment coefficient then 4-digit series"}, // comment
            {"C_NACA6", "Lower drag then 4-digit series"}, // comment
            {"C_NACA16", "This series is often used on propellers"}, // comment
            {"C_TSAGIB", "This series had been developed at the TsAGI"}, // comment
            {"C_NPL_EQH", "British laminar flow sections (NPL EQH)"}, // comment
            {"C_CIRCARC",
            "For supersonic flow, JavaFoil analysis not applicable"}, // comment
            {"C_WEDGE", "For supersonic flow, JavaFoil analysis not applicable"}, // comment
            {"C_PLATE", "Uses NACA 4-series camber line"}, // comment
            {"C_VDVOOREN", "Van de Vooren conformal mapping airfoil"}, // comment
            {"C_NEWMAN", "Composed of a circular nose and straight lines."}, // comment
            {"C_HBK", "Following Helmbold and Keune (1943)."}, // comment
            {"C_JOUKOVSKY","Created by conformal mapping"}, // comment
            {"REM1", "For later analysis the trailing edge should be closed."},
            {"CREATE", "Create Airfoil"}, // button caption
            // ***** Modify card
            {"MODTITLE", "Modify Airfoil"}, // caption
            {"SCALE", "Scale by"}, // label for scaling factor
            {"FLAPCHORD", "Flap Chord    xf/c"}, // label for flap chord length
            {"FLAPANGLE", "Flap Deflection"}, // label for deflection angle
            {"ELEMENT", "Element"}, // label for element number
            {"PIV_X", "Pivot x"}, // label for pivot point x
            {"PIV_Y", "Pivot y"}, // label for pivot point y
            {"ROT", "Rotate"}, // label for rotation angle
            {"TRANS_X", "Translation x"}, // label for translation in x direction
            {"TRANS_Y", "Translation y"}, // label for translation in y direction
            {"TE_GAP", "Trailing Edge Gap"}, // label for trailing edge thickness
            {"REM2", "Thickness and Camber work in y-direction only."},
            {"UNDO", "Undo"}, // button caption
            {"EMPTY", "   - empty -   "}, // dropdown list is still empty
            {"DUPLICATE", "Duplicate"}, // button caption
            {"DELETE", "Delete"}, // button caption
            {"FLIP", "Flip Y"}, // button caption: mirror in vertical direction (upside down)
            // ***** Design card
            {"DESTITLE", "Design Airfoil"}, // caption
            {"RELAX", "Relax by"}, // label for scaling factor
            {"D_STEPS", "Number of Steps"}, // label for number of design steps
            {"D_STEP", "Step"}, // for step no. in status line
            {"CP_SHORT", "Cp"}, // Pressure Coefficient, short
            {"CP_LONG", "Pressure Coefficient"}, // Pressure Coefficient, long
            {"REM6", "Design moves coordinates in y-direction only."},
            {"TARGET", "Target"}, // short label for plot legend
            {"CURRENT", "Current"}, // short label for plot legend
            {"NOSYMMETRY", "single side Cp-modification"},
            {"SYMMETRY", "symmetric Cp-modification (thickness)"},
            {"ASYMMETRY", "anti-symmetric Cp-modification (camber)"},
            {"SMOOTH", "smooth Target Cp"}, // use shape function to smooth target Cp
            {"X_OR_S", "y(x) or y(s)"}, // versus x or versus arc length
            {"LE_ZOOM", "LE Enlargement"}, // enlargement of leading edge region
            {"SETUP", "Setup"}, // button caption
            {"DODESIGN", "Design It!"}, // button caption
            {"REDRAW", "Redraw"}, // button caption
            {"DETAILS", "Details..."}, // button caption

            // *** Velocity card
            {"VELOTITLE", "Velocity Distribution"}, // card caption, also on printout
            {"ALFA_0", "first Angle of Attack"},
            {"ALFA_1", "last Angle of Attack"},
            {"ALFA_D", "Angle of Attack step"},
            {"VELDIST", "Velocity Distributions"},
            {"CPDIST", "Pressure Coefficient Distributions"},
            {"MACHDIST", "Mach Number Distributions"},
            {"VELRATIO", "Velocity Ratio v/V"},
            {"CPCOEFF", "Pressure Coefficient Cp"},
            {"REM3",
            "The velocity distribution can be helpful to smooth an airfoil."},
            {"CP_CRIT", "Cp*"}, // minimum local Cp value on surface of airfoil
            {"MACH_CRIT", "M cr."}, // critical Mach Number = M at which locally supersonic flow occurs
            {"ANALYZE", "Analyze It!"}, // button caption

            // *** Flowfield card
            {"FIELDTITLE", "Flow Field"}, // card caption, also on printout
            {"X_STEPS", "Steps in x-Direction"}, // number of steps
            {"Y_STEPS", "Steps in y-Direction"}, // number of steps
            {"TUFTS", "black Tufts"}, // black velocity vectors
            {"FIELDPLOT", "Colored Pressure Field"}, // filled field "panels"
            {"ISOLINES", "Iso Cp Lines"}, // white iso-Cp lines
            {"NORMVECTOR", "Cp Vectors"}, // Cp vectors normal to surface
            {"STREAMLINES", "Streamlines"}, // streamlines from left border
            {"ACCURACY", "increased accuracy"}, // higher order integration (Runge-Kutta O4)
            {"TIMED", "timed"}, // checkbox to activate timed dashes
            {"ZOOMOUT", "Field size"}, // 100%, 200%, ...
            {"COLORMAP", "Color Map Type"}, // number of predefined color map: 1, 2, ...
            // ***** Polars card
            {"POLARTITLE", "Airfoil Polars"}, // card caption, also on printout
            {"RE_0", "first Reynolds Number"}, // do not translare Reynolds
            {"RE_1", "last Reynolds Number"},
            {"RE_D", "Reynolds number step"},
            // surface finish details
            {"ROUGHNESS", "Surface Finish"},
            {"ROUGH_0", "smooth finish"}, // polished surface
            {"ROUGH_1", "painted fabric"}, // smooth, but not perfect
            {"ROUGH_2", "NACA Standard"}, // slight roughness, like cloth
            {"ROUGH_3", "bugs and dirt"}, // very poor surface quality
            // stall model details
            {"STALLMODEL", "Stall model"}, // the various stall models
            {"SM_1", "Calcfoil"}, // name, do not translate
            {"SM_2", "Eppler"}, // name, do not translate
            {"SM_3", "none"}, // translate this!
            // transition model details
            {"TRANSITIONMODEL", "Transition model"}, // the various transition models
            {"TM_1", "Eppler standard"}, // name, translate only "standard"
            {"TM_2", "Eppler extended"}, // name, translate only "extended"
            {"TM_3", "Michel 1"}, // name, do not translate
            {"TM_4", "Michel 2"}, // name, do not translate
            {"TM_5", "H12-Re(s)"}, // name, do not translate
            {"TM_6", "Granville"}, // name, do not translate
            {"TM_7", "Drela e^n approximation, Xfoil before 1991"}, // name, do not translate
            {"TM_8", "Drela e^n approximation, Xfoil after 1991"}, // name, do not translate
            {"TM_9", "Arnal, approximation by Würz"}, // name, do not translate
            // more
            {"DRAGPLOT", "Cl-Cd Plot"}, // lift-drag coefficient plot
            {"DRAGTABLE", "Cl-Cd Table"}, // lift-drag coefficient table
            {"RE", "Re"}, // legend abbreviation for Reynolds number
            {"CL", "Cl"}, // axis label lift coefficient
            {"CM", "Cm 0.25"}, // axis label moment coefficient
            {"CD", "Cd"}, // axis label drag coefficient
            {"VV", "v/V"}, // axis label velocity ratio
            {"REM4", "A maximum of"}, // continued with a number and the REM5 string
            {"REM5", "Reynolds numbers is stored in the tables."},
            {"LIFT", "Lift"}, // tab button caption, short for Lift coefficient vs. angle of attack
            {"MOMENT", "Moment"}, // tab button caption, short for Moment coefficient vs. angle of attack
            {"UPPER", "Upper"}, // tab button caption, short for upper surface (transition and separation)
            {"LOWER", "Lower"}, // tab button caption, short for lower surface (transition and separation)
            {"UP_SUR", "Upper Surface"}, // caption for printout of polars
            {"LO_SUR", "Lower Surface"}, // caption for printout of polars
            {"TRANS", "Transition"}, // caption for printout of polars
            // error messages
            {"ERR_ALFAS", "Your angle of attack specification would create a huge amount of data.\n \nResetting to default."},
            {"ERR_RENOS", "Your Reynolds number specification would create a huge amount of data.\n \nResetting to default."},
            {"ERR_NOPOL", "There are no polars to copy or to save."},
            {"ERR_NOFOIL",
            "There is no airfoil to analyze.\nCreate or import one using the Geometry card."},
            {"ERR_HITGND",
            "Stop: the trailing edge of the airfoil\nwould intersect with the ground."}, // used in message box for wing in ground effect
            {"ERR_MATH",
            "Stop: A Math error occured.\nCheck airfoil geometry and all parameters."},

            // *** Aircraft card
            {"AIRCRAFTTITLE", "Aircraft oriented Polars"}, // card caption, also on printout
            {"MS_0", "first wing loading"}, // wing loading
            {"MS_1", "last wing loading"},
            {"MS_D", "wing loading step"},
            {"CHORD", "chord length"}, // label for reference chord length
            {"M_OVER_S", "m/S"}, // formula
            {"WL", "wing loading"}, // textual form

            // *** Options card
            {"OC_TITLE", "Adjust the desired Option(s)."}, // card caption
            {"VERSION", "Version"}, // the JavaFoil version number is appended
            {"COUNTRYSETTINGS", "Country Settings"},
            {"SYSSET", "Your current system settings"}, // the title line for system details
            {"USERNAME", "Your user name is"}, // the user name is appended
            {"OSNAME", "You are running"}, // the name of the operating system is appended
            {"JAVANAME", "Java version"}, // the version number is appended
            {"JAVAMEMORY", "Java memory is"}, // the memory size is appended
            {"KBYTES", "kB"}, // 1 kB = 1024 Bytes
            {"LANGCODE", "System language code is"},
            {"COUNTRY", "selected country is"},
            {"LANGUAGE", "selected language is"},
            {"SYSACCESSDENIED", "Cannot access System.Properties, probably because you are running this as an Applet"},
            {"DECCHAR", "decimal character"}, // the character used as a decimal separator (e.g. ".") is appended
            {"PATHSEP", "path separator"}, // the character used to separate path components (e.g. a "\" under Windows) is appended
            {"DENSITY", "Density"}, // the density of the medium (mass per volume)
            {"KINVISC", "Kinematic Viscosity"}, // the kinematic viscosity (required for reynolds number)
            {"VELSOUND", "Speed of Sound"}, // the speed of sound, typically arounf 340 m/s
            {"FREE_CB", "unbounded flow field"}, // used for checkbox to say "free flow field"
            {"WIG_CB", "ground effect (ground at y=0)"}, // used for checkbox to say "ground at y=0 active"
            {"FROUDE_CB", "Froude effect (free surface at y=0)"}, // used for checkbox to say "free surfec at y=0 active"
            {"TRANSLAT_1", "Translation to"}, // first part of  "Translation to ...language... by ...Name ..."
            {"TRANSLAT_2", "by"}, // second part of "Translation to ...language... by ...Name ..."
            {"TRANSLAT_3", "There is no version of JavaFoil matching Your country settings."}, // message
            {"TRANSLAT_4", "If you like, You can create and send my your translation."}, // message
            {"TRANSLAT_5", "For details look into the folder 'Translation' in the installation directory."}, // message
            {"ENGLISH", "English"}, // English
            {"GERMAN", "German"}, // German
            {"FRENCH", "French"}, // French
            {"ITALIAN", "Italian"}, // Italian
            {"SPANISH", "Spanish"}, // Spanish
            {"PORTUGUESE", "Portuguese"}, // Portuguese
            {"DUTCH", "Dutch"}, // Dutch
            {"FINNISH", "Finnish"}, // Finnish
            // ***** IF YOU ADD A NEW TRANSLATION, DO NOT FORGET TO ADD YOUR
            // ***** LANGUAGE HERE SO THAT IT CAN BE ADDED TO THE "CREDITS" TABLE
            // {"NEWLANGUAGE", "newlanguage"}, // the name of your language, in your language
            /* the following is shown to the right to the list of available encodings */
            {"CHARSET","Character Set"},
            {"ENCODING", "used for files and clipboard exchange"},

            // *** Boundary Layer card
            {"BLTITLE", "Boundary Layer Parameters"}, // card caption, also on printout
            {"ALFA", "Angle of Attack"}, // label caption
            {"DELTAPLOT", "Thickness Plot"}, // tab button caption
            {"SHAPEPLOT", "Shape Plot"}, // tab button caption
            {"CFPLOT", "Cf Plot"}, // tab button caption
            {"TU", "T.U."}, // short label: transition upper
            {"TL", "T.L."}, // short label: transition lower
            {"SU", "S.U."}, // short label: separation upper
            {"SL", "S.L."}, // short label: separation lower
            {"BLSTATE", "State"}, // flow state: laminar or turbulent
            {"LAM", "lam."}, // abbreviation: laminar
            {"TUR", "turb."}, // abbreviation: turbulent
            {"SEP", "sep."}, // abbreviation: separated

            // *** Script frame
            {"REC_START", "Start Recorder"}, // button caption
            {"REC_STOP", "Stop Recorder"}, // button caption
            {"REC_RUN", "Run"}, // button caption
            {"REC_STEP", "Step"}, // button caption
            {"SCRIPT", "Script"},
            {"REM_SCR", "Comment lines must begin with //"},
            {"REC_DATE", "recorded on"}, // used to build a comment line like
            {"REC_TIME", "at"}, // "recorded on 00/00/00 at 00:00:00 by ..."
            {"REC_BY", "by"}, //  (only if user name is accessible)
            {"ERR_SCRIPT", "Script error in command"}, // used to build message "Script error in command '...'"
            {"ERR_PARSE1", "missing closing parenthesis"}, // error message
            {"ERR_PARSE2", "unknown command"}, // error message
            {"ROW_SHORT", "R"}, // Row nnn in status bar of script editor
            {"COL_SHORT", "C"}, //	Col nnn in status bar of script editor
            {"ROW_LONG", "Row"}, // Row nnn in error messages
            {"COL_LONG", "Column"}, //	Column nnn in error messages
    };
}
