text: ﻿if (typeof locales == 'undefined') locales = {};
  locales["en"] = {
    "lang": {
      "message": "English"
    },
    "font": {
      "message": "Arial"
    },
    "page_title": {
      "message": "Ray Optics Simulation - Home"
    },
    "title": {
      "message": "Ray Optics Simulation"
    },
    "description": {
      "message": "An open-source web application to simulate reflection and refraction of light.<br>Written in HTML, CSS and JavaScript."
    },
    "copyright": {
      "message": "(copyright 2016-2018) <a href='https://github.com/ricktu288' style='color:rgba(255,255,255,0.25)'>ricktu288</a>, <a href='https://github.com/j3soon' style='color:rgba(255,255,255,0.25)'>j3soon</a> |  (copyright 2021) <a href='https://github.com/atarox30' style='color:rgba(255,255,255,0.25)'>AtaRox30</a>, <a href='https://github.com/sebastienjean' style='color:rgba(255,255,255,0.25)'>sebastienjean</a> <br/><br/>" +
      "<i>Development of this software as been funded by ANR (Agence Nationale de la Recherche) grant, in the scope of NCU (Nouveaux Cursus Universitaires) 'Hybridation des formations de l'enseignement supérieur' call for projects, as work conducted inside HTTP (Hybridation Technologique et Travaux Pratiques) project [ANR-20-NCUN-0001].</i>"
    },
    "start": {
      "message": "Start Application"
    },
    "github_link": {
      "message": "View source code"
    },
    "zip-link": {
      "message": "Download Zip"
    },
    "tools": {
      "message": "Tools"
    },
    "ray": {
      "message": "Ray"
    },
    "ray_desc": {
      "message": "A single ray of light defined by two points."
    },
    "beam": {
      "message": "Beam"
    },
    "beam_desc": {
      "message": "A parallel beam of rays emerges from a line-segment, with density controlled by the \"Ray density\" slider."
    },
    "point_source": {
      "message": "Point Source"
    },
    "point_source_desc": {
      "message": "Rays emerge from a single point, with number controlled by the \"Ray density\" slider."
    },
    "mirror": {
      "message": "Mirror"
    },
    "mirror_desc": {
      "message": "Simulate the reflection of light on a mirror."
    },
    "mirror_arc": {
      "message": "Mirror (Arc)"
    },
    "mirror_arc_desc": {
      "message": "A mirror whose shape is part of a circle, which is defined by three points."
    },
    "ideal_curved_mirror": {
      "message": "Ideal curved mirror"
    },
    "ideal_curved_mirror_desc": {
      "message": "The idealized \"curved\" mirror which obeys exactly the mirror equation (1/p + 1/q = 1/f). The focal length (in centimeters) can be set directly."
    },
    "glass_halfplane": {
      "message": "Glass"
    },
    "glass_halfplane_desc": {
      "message": "Simulate the the refraction and reflection of light on a surface. The intensities are calculated by assuming unpolarized."
    },
    "glass_circle": {
      "message": "Glass (Circle)"
    },
    "glass_circle_desc": {
      "message": "Glass with circle shape, defined by its center and a point on the surface."
    },
    "glass": {
      "message": "Glass (Other shapes)"
    },
    "glass_desc": {
      "message": "Glass with any shapes constructed from line segments and circular arcs, including prisms and \"spherical\" lenses."
    },
    "ideal_lens": {
      "message": "Glass (Ideal lens)"
    },
    "ideal_lens_desc": {
      "message": "An ideal lens which obeys exactly the thin lens equation (1/p + 1/q = 1/f). The focal length (in centimeters) can be set directly."
    },
    "blocker": {
      "message": "Blocker"
    },
    "blocker_desc": {
      "message": "A line-segment light blocker which absorbs the incident rays."
    },
    "ruler": {
      "message": "Ruler"
    },
    "ruler_desc": {
      "message": "A ruler from a point for zero and another point. The scale is in centimeters."
    },
    "protractor": {
      "message": "Protractor"
    },
    "protractor_desc": {
      "message": "A protractor defined from center and another point for the zero direction. The scale is in degrees."
    },
    "views": {
      "message": "Views"
    },
    "rays": {
      "message": "Rays"
    },
    "rays_desc": {
      "message": "Show the rays. When the \"Ray density\" is high, they appears to be continuous."
    },
    "extended_rays": {
      "message": "Extended Rays"
    },
    "extended_rays_desc": {
      "message": "Show both the rays and its extension. Orange indicates backward extensions, and gray indicates forward ones."
    },
    "all_images": {
      "message": "All Images"
    },
    "all_images_desc": {
      "message": "Show the position of all images. Yellow points indicate real images, orange indicate virtual images, and gray (none in this picture) indicate virtual objects. Note that some images cannot be detected if \"Ray density\" is not high enough."
    },
    "seen_by_observer": {
      "message": "Seen by observer"
    },
    "seen_by_observer_desc": {
      "message": "Simulate the rays and images seen from some position. The blue circle is the observer. Any rays crossing it are considered to be \"observed\". The observer do not know where the rays actually begin, but may think they begin at some point(s) if they intersect there. The rays are shown in blue, and the point(s) in orange."
    },
    "language": {
      "message": "Language: English"
    },
    "rotate": {
      "message": "Rotate"
    },
    "copyright": {
      "message": "(copyright 2016-2018) <a href='https://github.com/ricktu288'>ricktu288</a>, <a href='https://github.com/j3soon'>j3soon</a> | " + "(copyright 2021) <a href='https://github.com/atarox30'>AtaRox30</a>, <a href='https://github.com/sebastienjean'>sebastienjean</a> <br/><br/> " +
      "<i>Development of this software as been funded by ANR (Agence Nationale de la Recherche) grant, in the scope of NCU (Nouveaux Cursus Universitaires) 'Hybridation des formations de l'enseignement supérieur' call for projects, as work conducted inside HTTP (Hybridation Technologique et Travaux Pratiques) project [ANR-20-NCUN-0001].</i>"
    },
    "line": {
      "message": "Line"
    },
    "line_desc": {
      "message": "A simple line crossing any matter, without being affected."
    },
    "text": {
      "message": "Text"
    },
    "text_desc": {
      "message": "Display a caption."
    }
  };
  