1.1 --- a/eskp.py	Fri Mar 11 09:57:49 2016 +0100
     1.2 +++ b/eskp.py	Fri Mar 11 11:04:44 2016 +0100
     1.3 @@ -19,11 +19,12 @@
     1.4  import base64
     1.5  
     1.6  LANGUAGE_SELECTED = "de"
     1.7 -#ToDo after engelish is implemented set LANGUAGE_SELECTED = None
     1.8 +# ToDo after engelish is implemented set LANGUAGE_SELECTED = None
     1.9  
    1.10  # We need the path of this file to find templates to translate
    1.11  ESKP_PATH = os.path.dirname(os.path.abspath(__file__))
    1.12 -logging.basicConfig(filename=os.path.join(ESKP_PATH, 'eskp-app.log'),level=logging.DEBUG)
    1.13 +logging.basicConfig(filename=os.path.join(ESKP_PATH, 'eskp-app.log'), level=logging.DEBUG)
    1.14 +FILES= os.listdir(os.path.join(ESKP_PATH, 'static/images/uvmap'))
    1.15  
    1.16  app = Flask(__name__)
    1.17  babel = Babel(app)
    1.18 @@ -31,12 +32,10 @@
    1.19  app.config['BABEL_DEFAULT_LOCALE'] = 'de'
    1.20  
    1.21  
    1.22 -
    1.23  def get_vcard(filename):
    1.24      filename = os.path.join(ESKP_PATH, filename)
    1.25      with codecs.open(filename, 'r', 'utf-8') as f:
    1.26 -            vcard = f.read()
    1.27 -            f.close()
    1.28 +        vcard = f.read()
    1.29      return vobject.readOne(vcard)
    1.30  
    1.31  
    1.32 @@ -46,25 +45,35 @@
    1.33      if os.path.isfile(filename):
    1.34          with codecs.open(filename, 'r', 'utf-8') as f:
    1.35              rst_data = f.read()
    1.36 -        f.close()
    1.37          content = publish_parts(rst_data, writer_name='html', settings_overrides=overrides)['html_body']
    1.38      return content
    1.39  
    1.40 +
    1.41 +def get_newest_date():
    1.42 +    getdates = get_valid_dates(FILES)
    1.43 +    newest_date = getdates[-1]
    1.44 +
    1.45 +    return newest_date
    1.46 +
    1.47 +
    1.48  def get_topmenue():
    1.49 +    newest_date = get_newest_date()
    1.50      menue = [
    1.51 -             ('/ozoneloss', _(u'Ozoneloss'),
    1.52 -             (('/ozoneloss', _(u'overview')),
    1.53 -             ('/ozoneloss/clams/2016', _(u'calculations')),
    1.54 -             ('/ozoneloss/vpsc/2016', _(u'estimations')),
    1.55 -             ('/ozoneloss/uvi', _(u'uv increase')))),
    1.56 -
    1.57 -             ('/eskp', _(u'ESKP'),(None, None)),
    1.58 -             ('/iek-7', _(u'IEK-7'),(None, None))
    1.59 -            ]
    1.60 +        ('/ozoneloss', _(u'Ozoneloss'),
    1.61 +         (('/ozoneloss', _(u'overview')),
    1.62 +          ('/ozoneloss/clams/2016', _(u'calculations')),
    1.63 +          ('/ozoneloss/vpsc/2016', _(u'estimations')),
    1.64 +          ('/ozoneloss/uvi', _(u'uv increase')),
    1.65 +          ('/ozoneloss/uvmap/' + newest_date, _(u'uv index map')))),
    1.66 +        ('/eskp', _(u'ESKP'), (None, None)),
    1.67 +        ('/iek-7', _(u'IEK-7'), (None, None))
    1.68 +    ]
    1.69      return menue
    1.70  
    1.71 +
    1.72  app.jinja_env.globals.update(get_topmenue=get_topmenue)
    1.73  
    1.74 +
    1.75  def get_o3lossclams_dates():
    1.76      menue = [
    1.77          ('/ozoneloss/clams/2016', _(u'2016')),
    1.78 @@ -72,9 +81,46 @@
    1.79          ('/ozoneloss/clams/2012', _(u'2012')),
    1.80          ('/ozoneloss/clams/2011', _(u'2011')),
    1.81          ('/ozoneloss/clams/2010', _(u'2010')),
    1.82 -        ]
    1.83 +    ]
    1.84      return menue
    1.85  
    1.86 +
    1.87 +def get_valid_dates(files):
    1.88 +    dates = []
    1.89 +
    1.90 +    for file in files:
    1.91 +        if file.endswith('.png') and file.find('uvi') >= 0:
    1.92 +            date = file[-12:-6]
    1.93 +            dates.append(date)
    1.94 +    dates.sort()
    1.95 +    for date in dates:
    1.96 +        i = 0
    1.97 +        for param in ['uvi', 'o3col', 'do3col']:
    1.98 +            testfile = 'clams_' + param + '_' + date + '12.png'
    1.99 +            if files.count(testfile) > 0:
   1.100 +                i = i + 1
   1.101 +        if i <> 3:
   1.102 +            dates.remove(date)
   1.103 +    return dates
   1.104 +
   1.105 +
   1.106 +def get_o3lossuvmap_dates(date_show):
   1.107 +    dates = get_valid_dates(FILES)
   1.108 +    ndates = len(dates)
   1.109 +    ind = dates.index(date_show)
   1.110 +    if ind ==0 :
   1.111 +        chosendates = [dates[ind+1]]
   1.112 +    elif ind >= ndates - 1:
   1.113 +        chosendates= [dates[ind-1]]
   1.114 +    else:
   1.115 +        chosendates = [dates[ind-1], dates[ind+1]]
   1.116 +    menue = []
   1.117 +    for date in chosendates:
   1.118 +        text_date = date[-2:] + '.' + date[-4:-2] + '.'
   1.119 +        menue.append(('/ozoneloss/uvmap/' + date, _(text_date)))
   1.120 +    return menue
   1.121 +
   1.122 +
   1.123  def get_vpsc_dates():
   1.124      menue = [
   1.125          ('/ozoneloss/vpsc/2016', _(u'2016')),
   1.126 @@ -84,11 +130,13 @@
   1.127          ('/ozoneloss/vpsc/2012', _(u'2012')),
   1.128          ('/ozoneloss/vpsc/2011', _(u'2011')),
   1.129          ('/ozoneloss/vpsc/2010', _(u'2010')),
   1.130 -        ]
   1.131 +    ]
   1.132      return menue
   1.133  
   1.134 +
   1.135  app.jinja_env.globals.update(get_o3lossclams_dates=get_o3lossclams_dates)
   1.136  app.jinja_env.globals.update(get_vpsc_dates=get_vpsc_dates)
   1.137 +app.jinja_env.globals.update(get_o3lossuvmap_dates=get_o3lossuvmap_dates)
   1.138  
   1.139  
   1.140  def modal_info(template, act, title, filename):
   1.141 @@ -118,6 +166,13 @@
   1.142      return render_template("/ozoneloss_clams.html", act="ozoneloss/clams/%s" % year, content=content, year=year)
   1.143  
   1.144  
   1.145 +@app.route('/ozoneloss/uvmap/<date>')
   1.146 +def ozoneloss_uvmap_date(date):
   1.147 +    filename = os.path.join("templates", get_locale(), "rst", "ozoneloss_uvmap.rst")
   1.148 +    content = get_content(filename)
   1.149 +    return render_template("/ozoneloss_uvmap.html", act="ozoneloss/uvmap/%s" % date, content=content, date=date)
   1.150 +
   1.151 +
   1.152  @app.route('/ozoneloss/vpsc/<year>')
   1.153  def ozoneloss_vspc_year(year):
   1.154      filename = os.path.join("templates", get_locale(), "rst", "ozoneloss_vpsc.rst")
   1.155 @@ -137,6 +192,7 @@
   1.156                             eskp_info=_(u'About ESKP'),
   1.157                             )
   1.158  
   1.159 +
   1.160  @app.route('/en')
   1.161  def en():
   1.162      global LANGUAGE_SELECTED
   1.163 @@ -145,6 +201,7 @@
   1.164                             eskp_info=_(u'About ESKP'),
   1.165                             )
   1.166  
   1.167 +
   1.168  @app.route("/eskp")
   1.169  def eskp():
   1.170      filename = os.path.join("templates", get_locale(), "rst", "eskp.rst")
   1.171 @@ -155,13 +212,13 @@
   1.172  
   1.173  
   1.174  def qr_image_data(card):
   1.175 -    buf= StringIO.StringIO()
   1.176 +    buf = StringIO.StringIO()
   1.177      qr = qrcode.QRCode(
   1.178          version=1,
   1.179          error_correction=qrcode.constants.ERROR_CORRECT_L,
   1.180          box_size=2,
   1.181          border=2,
   1.182 -        )
   1.183 +    )
   1.184      qr.add_data(card.serialize())
   1.185      qr.make(fit=True)
   1.186      img = qr.make_image()
   1.187 @@ -172,12 +229,12 @@
   1.188  
   1.189  @app.route("/ozoneloss")
   1.190  def ozoneloss():
   1.191 -
   1.192      filename = os.path.join("templates", get_locale(), "rst", "ozoneloss.rst")
   1.193      content = get_content(filename)
   1.194  
   1.195      vcard_file = os.path.join("vcards", "jug.vcf")
   1.196      author = u""
   1.197 +
   1.198      try:
   1.199          card = get_vcard(vcard_file)
   1.200      except IOError:
   1.201 @@ -185,12 +242,13 @@
   1.202      if card is not None:
   1.203          qr_image = qr_image_data(card)
   1.204          author = render_template("/author_info.html", act="author", title=_(u"Ozoneloss"),
   1.205 -                                  card=card, image=qr_image, contact=_(u"Contact"), exit=_(u"Close"))
   1.206 +                                 card=card, image=qr_image, contact=_(u"Contact"), exit=_(u"Close"))
   1.207  
   1.208      filename = os.path.join("templates", get_locale(), "rst", "ozoneloss_publications.rst")
   1.209      publications = modal_info("/publications_info.html", "publications", _(u"Ozoneloss"), filename)
   1.210      return render_template("/ozoneloss.html", act="ozoneloss", content=content,
   1.211 -                           author=author,card=card, publications=publications )
   1.212 +                           author=author, card=card, publications=publications)
   1.213 +
   1.214  
   1.215  @app.route("/ozoneloss/clams")
   1.216  def ozoneloss_clams():
   1.217 @@ -198,6 +256,14 @@
   1.218      content = get_content(filename)
   1.219      return render_template("/ozoneloss_clams.html", act="ozoneloss/clams", content=content)
   1.220  
   1.221 +
   1.222 +@app.route("/ozoneloss/uvmap")
   1.223 +def ozoneloss_uvmap():
   1.224 +    filename = os.path.join("templates", get_locale(), "rst", "ozoneloss_uvmap.rst")
   1.225 +    content = get_content(filename)
   1.226 +    return render_template("/ozoneloss_uvmap.html", act="ozoneloss/uvmap", content=content)
   1.227 +
   1.228 +
   1.229  @app.route("/ozoneloss/vpsc")
   1.230  def ozoneloss_vspc():
   1.231      filename = os.path.join("templates", get_locale(), "rst", "ozoneloss_vpsc.rst")
   1.232 @@ -215,10 +281,10 @@
   1.233      o3offset = 50.
   1.234      figname = "uvincr_lat%0.3i_do3%0.3i.svg" % (lat, o3offset)
   1.235  
   1.236 -
   1.237      return render_template('ozoneloss_uvi.html', act="ozoneloss/uvi", content=content, figname=figname,
   1.238                             alt=_(u"UV increase at {{lat}} degrees N for {{o3offset}} DU ozone depletion"))
   1.239  
   1.240 +
   1.241  @app.route("/ozoneloss/uvi_graph", methods=['POST'])
   1.242  def ozoneloss_uvi_graph():
   1.243      filename = os.path.join("templates", get_locale(), "rst", "ozoneloss_uvi.rst")
   1.244 @@ -236,17 +302,12 @@
   1.245          latstr2 = latstr2.replace(u'S', '')
   1.246          lat = -float(latstr2)
   1.247  
   1.248 -
   1.249      figname = "uvincr_lat%0.3i_do3%0.3i.svg" % (lat, float(o3offsetstr))
   1.250  
   1.251      return render_template('graph.html', act="ozoneloss_uvi_graph", content=content, figname=figname,
   1.252                             o3offsetstr=o3offsetstr, latstr=latstr)
   1.253  
   1.254  
   1.255 -
   1.256 -
   1.257 -
   1.258 -
   1.259  @app.route("/iek-7")
   1.260  def institute():
   1.261      filename = os.path.join("templates", get_locale(), "rst", "iek-7.rst")
   1.262 @@ -260,7 +321,7 @@
   1.263      if card is not None:
   1.264          qr_image = qr_image_data(card)
   1.265          author = render_template("/author_info.html", act="author", title=_(u"IEK-7"),
   1.266 -                                  card=card, image=qr_image, contact=_(u"Contact"), exit=_(u"Close"))
   1.267 +                                 card=card, image=qr_image, contact=_(u"Contact"), exit=_(u"Close"))
   1.268  
   1.269      return render_template("/iek-7.html", act="iek-7", content=content,
   1.270                             author=author, card=card, contact=u"IEK-7")
   1.271 @@ -273,14 +334,12 @@
   1.272      return render_template("/content.html", act="imprint", content=content)
   1.273  
   1.274  
   1.275 -
   1.276 -
   1.277 -
   1.278  @app.errorhandler(404)
   1.279  def page_not_found(e):
   1.280      msg = _(u"Url: %(url)s not found", url=request.url)
   1.281      info = _(u"This information is not available!")
   1.282      return render_template("404.html", msg=msg, info=info)
   1.283  
   1.284 +
   1.285  if __name__ == "__main__":
   1.286 -    app.run(host='localhost', port=5014)
   1.287 +    app.run(host='localhost', port=5014, debug=True)
     2.1 Binary file static/images/uvmap/clams_do3col_16022912.png has changed
     3.1 Binary file static/images/uvmap/clams_do3col_16030112.png has changed
     4.1 Binary file static/images/uvmap/clams_do3col_16030212.png has changed
     5.1 Binary file static/images/uvmap/clams_do3col_16030312.png has changed
     6.1 Binary file static/images/uvmap/clams_do3col_16030412.png has changed
     7.1 Binary file static/images/uvmap/clams_do3col_16030512.png has changed
     8.1 Binary file static/images/uvmap/clams_do3col_16030612.png has changed
     9.1 Binary file static/images/uvmap/clams_do3col_16030712.png has changed
    10.1 Binary file static/images/uvmap/clams_do3col_16030812.png has changed
    11.1 Binary file static/images/uvmap/clams_do3col_16030912.png has changed
    12.1 Binary file static/images/uvmap/clams_do3col_16031012.png has changed
    13.1 Binary file static/images/uvmap/clams_o3col_16022912.png has changed
    14.1 Binary file static/images/uvmap/clams_o3col_16030112.png has changed
    15.1 Binary file static/images/uvmap/clams_o3col_16030212.png has changed
    16.1 Binary file static/images/uvmap/clams_o3col_16030312.png has changed
    17.1 Binary file static/images/uvmap/clams_o3col_16030412.png has changed
    18.1 Binary file static/images/uvmap/clams_o3col_16030512.png has changed
    19.1 Binary file static/images/uvmap/clams_o3col_16030612.png has changed
    20.1 Binary file static/images/uvmap/clams_o3col_16030712.png has changed
    21.1 Binary file static/images/uvmap/clams_o3col_16030812.png has changed
    22.1 Binary file static/images/uvmap/clams_o3col_16030912.png has changed
    23.1 Binary file static/images/uvmap/clams_o3col_16031012.png has changed
    24.1 Binary file static/images/uvmap/clams_uvi_16022912.png has changed
    25.1 Binary file static/images/uvmap/clams_uvi_16030112.png has changed
    26.1 Binary file static/images/uvmap/clams_uvi_16030212.png has changed
    27.1 Binary file static/images/uvmap/clams_uvi_16030312.png has changed
    28.1 Binary file static/images/uvmap/clams_uvi_16030412.png has changed
    29.1 Binary file static/images/uvmap/clams_uvi_16030512.png has changed
    30.1 Binary file static/images/uvmap/clams_uvi_16030612.png has changed
    31.1 Binary file static/images/uvmap/clams_uvi_16030712.png has changed
    32.1 Binary file static/images/uvmap/clams_uvi_16030812.png has changed
    33.1 Binary file static/images/uvmap/clams_uvi_16030912.png has changed
    34.1 Binary file static/images/uvmap/clams_uvi_16031012.png has changed
    35.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    35.2 +++ b/templates/de/rst/ozoneloss_uvmap.rst	Fri Mar 11 11:04:44 2016 +0100
    35.3 @@ -0,0 +1,16 @@
    35.4 +Ozonverlust, Ozonsäule und UV-Index
    35.5 +===================================
    35.6 +
    35.7 +Aus dem berechneten Ozonverlust [#]_ und der berechneten gesamten
    35.8 +Ozonsäule kann man den UV-Index abschätzen [#]_.  Der UV Index ist
    35.9 +maximal zur Mittagszeit bei wolkenfreiem Himmel.  Diese Größe ist hier
   35.10 +auf der dritten Karte dargestellt.  Die schwarze Linie auf allen
   35.11 +Karten markiert den Rand des Polarwirbels in 17 km Höhe.  Man kann
   35.12 +sich die Entwicklung für mehrere Tage durch das Klicken auf das
   35.13 +entsprechende Datum ansehen.  Wie sich der UV-Index normalerweise im
   35.14 +Laufe des Jahres erhöht, und welchen Einfluss der Ozonverlust habe
   35.15 +würde, kann man den Diagrammen `hier`_ entnehmen.
   35.16 +
   35.17 +.. _hier: /ozoneloss/uvi
   35.18 +.. [#] Ozonverlust in der Teilsäule zwischen 12 und 23 km (350-600 K)
   35.19 +.. [#] Berechnung des UV-Index für wolkenfreien Himmel nach der Methode von Allaart et al. (Meteorological Applications, 11, 59-65, 2004)
    36.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    36.2 +++ b/templates/ozoneloss_uvmap.html	Fri Mar 11 11:04:44 2016 +0100
    36.3 @@ -0,0 +1,23 @@
    36.4 +{% extends "theme.html" %} 
    36.5 +{% block body %}
    36.6 +<div class="container">
    36.7 + <div class="col-lg-12">
    36.8 + 	<div class="row">
    36.9 +     {{ content|safe }}
   36.10 + </div>
   36.11 +
   36.12 +<ul class="nav navbar-nav navbar-right">
   36.13 +{% for href, caption in  get_o3lossuvmap_dates(date): %}
   36.14 +     <span>  <span class="span3"><a href="{{ href }}" >{{ caption }}</a></span></span>
   36.15 +{% endfor %}
   36.16 +</ul>
   36.17 +<br>
   36.18 +<img src="/static/images/uvmap/clams_do3col_{{date}}12.png" alt="O3 loss {{ date }}"whith="250" height="250" border="0" hspace=20>
   36.19 +     <img src="/static/images/uvmap/clams_o3col_{{date}}12.png" alt="O3 column {{ date }}"whith="250" height="250" border="0" hspace=20>
   36.20 +     <img src="/static/images/uvmap/clams_uvi_{{ date }}12.png" alt="UV Index {{ date }}" whith="250" height="250" border="0">
   36.21 +   </div>
   36.22 +
   36.23 +
   36.24 + </div>
   36.25 +
   36.26 +{% endblock %}
    37.1 Binary file translations/de/LC_MESSAGES/messages.mo has changed
    38.1 --- a/translations/de/LC_MESSAGES/messages.po	Fri Mar 11 09:57:49 2016 +0100
    38.2 +++ b/translations/de/LC_MESSAGES/messages.po	Fri Mar 11 11:04:44 2016 +0100
    38.3 @@ -8,7 +8,7 @@
    38.4  msgstr ""
    38.5  "Project-Id-Version: PROJECT VERSION\n"
    38.6  "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
    38.7 -"POT-Creation-Date: 2016-01-30 08:09+0100\n"
    38.8 +"POT-Creation-Date: 2016-03-11 10:40+0100\n"
    38.9  "PO-Revision-Date: 2014-05-05 11:10+0200\n"
   38.10  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
   38.11  "Language: de\n"
   38.12 @@ -19,93 +19,93 @@
   38.13  "Content-Transfer-Encoding: 8bit\n"
   38.14  "Generated-By: Babel 2.2.0\n"
   38.15  
   38.16 -#: eskp.py:55 eskp.py:187 eskp.py:191 eskp_old.py:55 eskp_old.py:185
   38.17 -#: eskp_old.py:189
   38.18 +#: eskp.py:62 eskp.py:244 eskp.py:248
   38.19  msgid "Ozoneloss"
   38.20  msgstr "Ozonverlust"
   38.21  
   38.22 -#: eskp.py:56 eskp_old.py:56
   38.23 +#: eskp.py:63
   38.24  msgid "overview"
   38.25  msgstr "Übersicht"
   38.26  
   38.27 -#: eskp.py:57 eskp_old.py:57
   38.28 +#: eskp.py:64
   38.29  msgid "calculations"
   38.30  msgstr "Berechnungen"
   38.31  
   38.32 -#: eskp.py:58 eskp_old.py:58
   38.33 +#: eskp.py:65
   38.34  msgid "estimations"
   38.35  msgstr "Abschätzungen"
   38.36  
   38.37 -#: eskp.py:59 eskp_old.py:59
   38.38 +#: eskp.py:66
   38.39  msgid "uv increase"
   38.40  msgstr "UV-Anstieg"
   38.41  
   38.42 -#: eskp.py:61 eskp_old.py:61
   38.43 +#: eskp.py:67
   38.44 +msgid "uv index map"
   38.45 +msgstr "Kartendarstellung"
   38.46 +
   38.47 +#: eskp.py:68
   38.48  msgid "ESKP"
   38.49  msgstr "ESKP"
   38.50  
   38.51 -#: eskp.py:62 eskp.py:262 eskp_old.py:62 eskp_old.py:224
   38.52 +#: eskp.py:69 eskp.py:323
   38.53  msgid "IEK-7"
   38.54  msgstr "IEK-7"
   38.55  
   38.56 -#: eskp.py:70 eskp.py:80
   38.57 +#: eskp.py:79 eskp.py:126
   38.58  #, fuzzy
   38.59  msgid "2016"
   38.60  msgstr "2015"
   38.61  
   38.62 -#: eskp.py:71 eskp.py:81 eskp_old.py:70 eskp_old.py:79
   38.63 +#: eskp.py:80 eskp.py:127
   38.64  msgid "2015"
   38.65  msgstr "2015"
   38.66  
   38.67 -#: eskp.py:72 eskp.py:84 eskp_old.py:71 eskp_old.py:82
   38.68 +#: eskp.py:81 eskp.py:130
   38.69  msgid "2012"
   38.70  msgstr "2012"
   38.71  
   38.72 -#: eskp.py:73 eskp.py:85 eskp_old.py:72 eskp_old.py:83
   38.73 +#: eskp.py:82 eskp.py:131
   38.74  msgid "2011"
   38.75  msgstr "2011"
   38.76  
   38.77 -#: eskp.py:74 eskp.py:86 eskp_old.py:73 eskp_old.py:84
   38.78 +#: eskp.py:83 eskp.py:132
   38.79  msgid "2010"
   38.80  msgstr "2010"
   38.81  
   38.82 -#: eskp.py:82 eskp_old.py:80
   38.83 +#: eskp.py:128
   38.84  msgid "2014"
   38.85  msgstr "2014"
   38.86  
   38.87 -#: eskp.py:83 eskp_old.py:81
   38.88 +#: eskp.py:129
   38.89  msgid "2013"
   38.90  msgstr "2013"
   38.91  
   38.92 -#: eskp.py:96 eskp.py:188 eskp.py:263 eskp_old.py:94 eskp_old.py:186
   38.93 -#: eskp_old.py:225
   38.94 +#: eskp.py:144 eskp.py:245 eskp.py:324
   38.95  msgid "Close"
   38.96  msgstr "Schließen"
   38.97  
   38.98 -#: eskp.py:110 eskp.py:137 eskp.py:145 eskp_old.py:108 eskp_old.py:135
   38.99 -#: eskp_old.py:143
  38.100 +#: eskp.py:158 eskp.py:192 eskp.py:201
  38.101  msgid "About ESKP"
  38.102  msgstr "Über ESKP"
  38.103  
  38.104 -#: eskp.py:188 eskp.py:263 eskp_old.py:186 eskp_old.py:225
  38.105 +#: eskp.py:245 eskp.py:324
  38.106  msgid "Contact"
  38.107  msgstr "Ansprechpartner"
  38.108  
  38.109 -#: eskp.py:220
  38.110 +#: eskp.py:285
  38.111  #, fuzzy
  38.112  msgid "UV increase at {{lat}} degrees N for {{o3offset}} DU ozone depletion"
  38.113  msgstr "UV Anstieg bei 52 Grad N für 50 DU Ozonverlust"
  38.114  
  38.115 -#: eskp.py:281 eskp_old.py:243
  38.116 +#: eskp.py:339
  38.117  #, python-format
  38.118  msgid "Url: %(url)s not found"
  38.119  msgstr "Url: %(url)s nicht gefunden"
  38.120  
  38.121 -#: eskp.py:282 eskp_old.py:244
  38.122 +#: eskp.py:340
  38.123  msgid "This information is not available!"
  38.124  msgstr "Diese Information steht nicht zur Verfügung"
  38.125  
  38.126 -#: eskp_old.py:210
  38.127 -msgid "UV increase at 52 degrees N for 50 DU ozone depletion"
  38.128 -msgstr "UV Anstieg bei 52 Grad N für 50 DU Ozonverlust"
  38.129 +#~ msgid "UV increase at 52 degrees N for 50 DU ozone depletion"
  38.130 +#~ msgstr "UV Anstieg bei 52 Grad N für 50 DU Ozonverlust"
  38.131  
    39.1 --- a/translations/en/LC_MESSAGES/messages.po	Fri Mar 11 09:57:49 2016 +0100
    39.2 +++ b/translations/en/LC_MESSAGES/messages.po	Fri Mar 11 11:04:44 2016 +0100
    39.3 @@ -8,7 +8,7 @@
    39.4  msgstr ""
    39.5  "Project-Id-Version: PROJECT VERSION\n"
    39.6  "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
    39.7 -"POT-Creation-Date: 2016-01-30 08:09+0100\n"
    39.8 +"POT-Creation-Date: 2016-03-11 10:40+0100\n"
    39.9  "PO-Revision-Date: 2014-05-05 11:10+0200\n"
   39.10  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
   39.11  "Language: en\n"
   39.12 @@ -19,94 +19,91 @@
   39.13  "Content-Transfer-Encoding: 8bit\n"
   39.14  "Generated-By: Babel 2.2.0\n"
   39.15  
   39.16 -#: eskp.py:55 eskp.py:187 eskp.py:191 eskp_old.py:55 eskp_old.py:185
   39.17 -#: eskp_old.py:189
   39.18 +#: eskp.py:62 eskp.py:244 eskp.py:248
   39.19  msgid "Ozoneloss"
   39.20  msgstr ""
   39.21  
   39.22 -#: eskp.py:56 eskp_old.py:56
   39.23 +#: eskp.py:63
   39.24  msgid "overview"
   39.25  msgstr ""
   39.26  
   39.27 -#: eskp.py:57 eskp_old.py:57
   39.28 +#: eskp.py:64
   39.29  msgid "calculations"
   39.30  msgstr ""
   39.31  
   39.32 -#: eskp.py:58 eskp_old.py:58
   39.33 +#: eskp.py:65
   39.34  msgid "estimations"
   39.35  msgstr ""
   39.36  
   39.37 -#: eskp.py:59 eskp_old.py:59
   39.38 +#: eskp.py:66
   39.39  msgid "uv increase"
   39.40  msgstr ""
   39.41  
   39.42 -#: eskp.py:61 eskp_old.py:61
   39.43 +#: eskp.py:67
   39.44 +msgid "uv index map"
   39.45 +msgstr ""
   39.46 +
   39.47 +#: eskp.py:68
   39.48  msgid "ESKP"
   39.49  msgstr ""
   39.50  
   39.51 -#: eskp.py:62 eskp.py:262 eskp_old.py:62 eskp_old.py:224
   39.52 +#: eskp.py:69 eskp.py:323
   39.53  msgid "IEK-7"
   39.54  msgstr ""
   39.55  
   39.56 -#: eskp.py:70 eskp.py:80
   39.57 +#: eskp.py:79 eskp.py:126
   39.58  msgid "2016"
   39.59  msgstr ""
   39.60  
   39.61 -#: eskp.py:71 eskp.py:81 eskp_old.py:70 eskp_old.py:79
   39.62 +#: eskp.py:80 eskp.py:127
   39.63  msgid "2015"
   39.64  msgstr ""
   39.65  
   39.66 -#: eskp.py:72 eskp.py:84 eskp_old.py:71 eskp_old.py:82
   39.67 +#: eskp.py:81 eskp.py:130
   39.68  msgid "2012"
   39.69  msgstr ""
   39.70  
   39.71 -#: eskp.py:73 eskp.py:85 eskp_old.py:72 eskp_old.py:83
   39.72 +#: eskp.py:82 eskp.py:131
   39.73  msgid "2011"
   39.74  msgstr ""
   39.75  
   39.76 -#: eskp.py:74 eskp.py:86 eskp_old.py:73 eskp_old.py:84
   39.77 +#: eskp.py:83 eskp.py:132
   39.78  msgid "2010"
   39.79  msgstr ""
   39.80  
   39.81 -#: eskp.py:82 eskp_old.py:80
   39.82 +#: eskp.py:128
   39.83  msgid "2014"
   39.84  msgstr ""
   39.85  
   39.86 -#: eskp.py:83 eskp_old.py:81
   39.87 +#: eskp.py:129
   39.88  msgid "2013"
   39.89  msgstr ""
   39.90  
   39.91 -#: eskp.py:96 eskp.py:188 eskp.py:263 eskp_old.py:94 eskp_old.py:186
   39.92 -#: eskp_old.py:225
   39.93 +#: eskp.py:144 eskp.py:245 eskp.py:324
   39.94  msgid "Close"
   39.95  msgstr ""
   39.96  
   39.97 -#: eskp.py:110 eskp.py:137 eskp.py:145 eskp_old.py:108 eskp_old.py:135
   39.98 -#: eskp_old.py:143
   39.99 +#: eskp.py:158 eskp.py:192 eskp.py:201
  39.100  msgid "About ESKP"
  39.101  msgstr ""
  39.102  
  39.103 -#: eskp.py:188 eskp.py:263 eskp_old.py:186 eskp_old.py:225
  39.104 +#: eskp.py:245 eskp.py:324
  39.105  msgid "Contact"
  39.106  msgstr ""
  39.107  
  39.108 -#: eskp.py:220
  39.109 +#: eskp.py:285
  39.110  msgid "UV increase at {{lat}} degrees N for {{o3offset}} DU ozone depletion"
  39.111  msgstr ""
  39.112  
  39.113 -#: eskp.py:281 eskp_old.py:243
  39.114 +#: eskp.py:339
  39.115  #, python-format
  39.116  msgid "Url: %(url)s not found"
  39.117  msgstr ""
  39.118  
  39.119 -#: eskp.py:282 eskp_old.py:244
  39.120 +#: eskp.py:340
  39.121  msgid "This information is not available!"
  39.122  msgstr ""
  39.123  
  39.124 -#: eskp_old.py:210
  39.125 -msgid "UV increase at 52 degrees N for 50 DU ozone depletion"
  39.126 -msgstr ""
  39.127 -
  39.128  #~ msgid "The Zen of Python, by Tim Peters"
  39.129  #~ msgstr ""
  39.130  
  39.131 @@ -182,3 +179,6 @@
  39.132  #~ msgid "quantification"
  39.133  #~ msgstr ""
  39.134  
  39.135 +#~ msgid "UV increase at 52 degrees N for 50 DU ozone depletion"
  39.136 +#~ msgstr ""
  39.137 +
    40.1 --- a/translations/eskp.pot	Fri Mar 11 09:57:49 2016 +0100
    40.2 +++ b/translations/eskp.pot	Fri Mar 11 11:04:44 2016 +0100
    40.3 @@ -8,7 +8,7 @@
    40.4  msgstr ""
    40.5  "Project-Id-Version: PROJECT VERSION\n"
    40.6  "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
    40.7 -"POT-Creation-Date: 2016-01-30 08:09+0100\n"
    40.8 +"POT-Creation-Date: 2016-03-11 10:40+0100\n"
    40.9  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
   40.10  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
   40.11  "Language-Team: LANGUAGE <LL@li.org>\n"
   40.12 @@ -17,91 +17,88 @@
   40.13  "Content-Transfer-Encoding: 8bit\n"
   40.14  "Generated-By: Babel 2.2.0\n"
   40.15  
   40.16 -#: eskp.py:55 eskp.py:187 eskp.py:191 eskp_old.py:55 eskp_old.py:185
   40.17 -#: eskp_old.py:189
   40.18 +#: eskp.py:62 eskp.py:244 eskp.py:248
   40.19  msgid "Ozoneloss"
   40.20  msgstr ""
   40.21  
   40.22 -#: eskp.py:56 eskp_old.py:56
   40.23 +#: eskp.py:63
   40.24  msgid "overview"
   40.25  msgstr ""
   40.26  
   40.27 -#: eskp.py:57 eskp_old.py:57
   40.28 +#: eskp.py:64
   40.29  msgid "calculations"
   40.30  msgstr ""
   40.31  
   40.32 -#: eskp.py:58 eskp_old.py:58
   40.33 +#: eskp.py:65
   40.34  msgid "estimations"
   40.35  msgstr ""
   40.36  
   40.37 -#: eskp.py:59 eskp_old.py:59
   40.38 +#: eskp.py:66
   40.39  msgid "uv increase"
   40.40  msgstr ""
   40.41  
   40.42 -#: eskp.py:61 eskp_old.py:61
   40.43 +#: eskp.py:67
   40.44 +msgid "uv index map"
   40.45 +msgstr ""
   40.46 +
   40.47 +#: eskp.py:68
   40.48  msgid "ESKP"
   40.49  msgstr ""
   40.50  
   40.51 -#: eskp.py:62 eskp.py:262 eskp_old.py:62 eskp_old.py:224
   40.52 +#: eskp.py:69 eskp.py:323
   40.53  msgid "IEK-7"
   40.54  msgstr ""
   40.55  
   40.56 -#: eskp.py:70 eskp.py:80
   40.57 +#: eskp.py:79 eskp.py:126
   40.58  msgid "2016"
   40.59  msgstr ""
   40.60  
   40.61 -#: eskp.py:71 eskp.py:81 eskp_old.py:70 eskp_old.py:79
   40.62 +#: eskp.py:80 eskp.py:127
   40.63  msgid "2015"
   40.64  msgstr ""
   40.65  
   40.66 -#: eskp.py:72 eskp.py:84 eskp_old.py:71 eskp_old.py:82
   40.67 +#: eskp.py:81 eskp.py:130
   40.68  msgid "2012"
   40.69  msgstr ""
   40.70  
   40.71 -#: eskp.py:73 eskp.py:85 eskp_old.py:72 eskp_old.py:83
   40.72 +#: eskp.py:82 eskp.py:131
   40.73  msgid "2011"
   40.74  msgstr ""
   40.75  
   40.76 -#: eskp.py:74 eskp.py:86 eskp_old.py:73 eskp_old.py:84
   40.77 +#: eskp.py:83 eskp.py:132
   40.78  msgid "2010"
   40.79  msgstr ""
   40.80  
   40.81 -#: eskp.py:82 eskp_old.py:80
   40.82 +#: eskp.py:128
   40.83  msgid "2014"
   40.84  msgstr ""
   40.85  
   40.86 -#: eskp.py:83 eskp_old.py:81
   40.87 +#: eskp.py:129
   40.88  msgid "2013"
   40.89  msgstr ""
   40.90  
   40.91 -#: eskp.py:96 eskp.py:188 eskp.py:263 eskp_old.py:94 eskp_old.py:186
   40.92 -#: eskp_old.py:225
   40.93 +#: eskp.py:144 eskp.py:245 eskp.py:324
   40.94  msgid "Close"
   40.95  msgstr ""
   40.96  
   40.97 -#: eskp.py:110 eskp.py:137 eskp.py:145 eskp_old.py:108 eskp_old.py:135
   40.98 -#: eskp_old.py:143
   40.99 +#: eskp.py:158 eskp.py:192 eskp.py:201
  40.100  msgid "About ESKP"
  40.101  msgstr ""
  40.102  
  40.103 -#: eskp.py:188 eskp.py:263 eskp_old.py:186 eskp_old.py:225
  40.104 +#: eskp.py:245 eskp.py:324
  40.105  msgid "Contact"
  40.106  msgstr ""
  40.107  
  40.108 -#: eskp.py:220
  40.109 +#: eskp.py:285
  40.110  msgid "UV increase at {{lat}} degrees N for {{o3offset}} DU ozone depletion"
  40.111  msgstr ""
  40.112  
  40.113 -#: eskp.py:281 eskp_old.py:243
  40.114 +#: eskp.py:339
  40.115  #, python-format
  40.116  msgid "Url: %(url)s not found"
  40.117  msgstr ""
  40.118  
  40.119 -#: eskp.py:282 eskp_old.py:244
  40.120 +#: eskp.py:340
  40.121  msgid "This information is not available!"
  40.122  msgstr ""
  40.123  
  40.124 -#: eskp_old.py:210
  40.125 -msgid "UV increase at 52 degrees N for 50 DU ozone depletion"
  40.126 -msgstr ""
  40.127 -
    41.1 --- a/vcards/jug.vcf	Fri Mar 11 09:57:49 2016 +0100
    41.2 +++ b/vcards/jug.vcf	Fri Mar 11 11:04:44 2016 +0100
    41.3 @@ -1,7 +1,7 @@
    41.4  BEGIN:VCARD
    41.5  VERSION:3.0
    41.6  ORG:Institut für Energie- und Klimaforschung Stratosphäre (IEK-7)
    41.7 -PHOTO;VALUE=URL;TYPE=JPG:https://www.fz-juelich.de/SharedDocs/Bilder/IEK/IEK-7/DE/Mitarbeiter/grooss_j_u.jpg?__blob=normal
    41.8 +PHOTO;VALUE=URL;TYPE=JPG:http://www.fz-juelich.de/SharedDocs/Bilder/IEK/IEK-7/DE/Mitarbeiter/grooss_j_u.jpg?__blob=normal
    41.9  TITLE:Dr.
   41.10  TEL:
   41.11  FN:Jens-Uwe Grooß