Fix name-typo in NEWS
[coquelicot.git] / lib / coquelicot / base_app.rb
1 # -*- coding: UTF-8 -*-
2 # Coquelicot: "one-click" file sharing with a focus on users' privacy.
3 # Copyright © 2012-2013 potager.org <jardiniers@potager.org>
4 #
5 # This program is free software: you can redistribute it and/or modify
6 # it under the terms of the GNU Affero General Public License as
7 # published by the Free Software Foundation, either version 3 of the
8 # License, or (at your option) any later version.
9 #
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 # GNU Affero General Public License for more details.
14 #
15 # You should have received a copy of the GNU Affero General Public License
16 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
17
18 require 'sinatra/base'
19 require 'haml'
20 require 'haml/magic_translations'
21
22 module Coquelicot
23   AVAILABLE_LOCALES = %w(en es fr de el)
24
25   class BaseApp < Sinatra::Base
26     include FastGettext::Translation
27
28     helpers Coquelicot::Helpers
29
30     FastGettext.add_text_domain 'coquelicot',
31         :path => File.expand_path('../../../po', __FILE__), :type => 'po'
32     FastGettext.available_locales = AVAILABLE_LOCALES
33     Haml::MagicTranslations.enable(:fast_gettext)
34
35     before do
36       FastGettext.text_domain = 'coquelicot'
37       if params && params[:lang]
38         locale = session[:lang] = params[:lang]
39       elsif session[:lang]
40         locale = session[:lang]
41       else
42         locale = request.env['HTTP_ACCEPT_LANGUAGE'] || 'en'
43       end
44       FastGettext.locale = locale
45     end
46   end
47 end