Sha256: 6db163104bc7dfcf1bb2de0747ef3681534344b47a4382b88bad56089096ae25

Contents?: true

Size: 1.45 KB

Versions: 3

Compression:

Stored size: 1.45 KB

Contents

module Zen
  module Controller
    ##
    # Controller that generates a Javascript variable containing various
    # language strings that should be available in Javascript code.
    #
    # @since  0.3
    #
    class Translations < Zen::Controller::FrontendController
      map '/admin/js/zen/lib/translations.js'

      # Array containing all the translations to copy.
      TRANSLATIONS = [
        'zen_general.buttons.bold',
        'zen_general.buttons.italic',
        'zen_general.buttons.link',
        'zen_general.buttons.ul',
        'zen_general.buttons.ol',
        'zen_general.buttons.preview',
        'zen_general.buttons.close',
        'zen_general.datepicker.select_a_time',
        'zen_general.datepicker.use_mouse_wheel',
        'zen_general.datepicker.time_confirm_button',
        'zen_general.datepicker.apply_range',
        'zen_general.datepicker.cancel',
        'zen_general.datepicker.week'
      ]

      ##
      # Renders the translations as a Javascript variable. It is a bit of a
      # dirty process but it means I don't have to use the JSON gem which can
      # suck up quite a bit of memory over time.
      #
      # @since 0.3
      #
      def index
        var = 'var Zen = Zen || {}; Zen.translations = {'

        TRANSLATIONS.each do |k|
          var += "'#{k}': '#{lang(k)}',"
        end

        var += '};'

        respond(var, 200, 'Content-Type' => 'text/javascript')
      end
    end # Language
  end # Controller
end # Zen

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
zen-0.3 lib/zen/controller/translations.rb
zen-0.3b1 lib/zen/controller/translations.rb
zen-0.3b lib/zen/controller/translations.rb