Forum: Rails I18n how can I get the I18n.default_locale selected in my Rails app in a JS script ?

Ee0293412faca21e4ebf3326ed9d5f8c?d=identicon&s=25 Kad Kerforn (kadoudal)
on 2010-02-23 19:35
(Received via mailing list)
I am not very fluent in JS, so I don't see how to transfer the rails
app current locale ..

I have a JS script able to detect the default browser language ..
running fine

I can also modify the JS language, passing a global var ..

   // Create a JSON Object
  var myJSON = {
    "lang": "fr"
  };
  // Pass it to the script immediately...
  datePickerController.setGlobalVars(myJSON);

and it runs ... but I would like this script to use the  language
selected by the rails app user :
the I18n.default_locale  being modified in the rails app

any clue ?

thanks a lot ..

erwin
4a551074ddba4460f95d011c47190d0e?d=identicon&s=25 Henrik --- (malesca)
on 2010-02-23 20:47
(Received via mailing list)
Not sure I understand you correctly, but you could just do something
like

    <%=javascript_tag "window.locale = #{I18n.locale.to_s.inspect};" %>

in your page, and then do e.g.

    alert(locale);

from a script.
42ec9fd08c179b547dcb60d977e29941?d=identicon&s=25 Iain Hecker (Guest)
on 2010-02-23 21:00
(Received via mailing list)
Hi,

I sometimes have make a controller (or abuse something like a
pages_controller) to render a js view. In this view I place all the
initializers to other scripts. I keep all serious javascript into
static files which I can minimize and cache the hell out off.

Example:

# app/views/javascripts/show.js.erb
$(function() {
  // Add datepickers to every date field
  $('.date input').datepicker({
    changeMonth : true,
    changeYear  : true,
    dateFormat  : '<%= t('.date_format') %>',
    maxDate     : '0'
  });
});

# config/routes.rb
map.resource :javascript

# app/controllers/javascripts_controller.rb
class JavascriptsController < ApplicationController
  def show; end # just render the view
end

# app/views/layouts/application.html.haml
= javascript_include_tag "jquery", "jquery.date-picker", :cache => true
= javascript_include_tag javascript_path(:format => :js)

This might be a bit more than you asked for, but this is how I pass
translations and such to javascript.

Iain
Ee0293412faca21e4ebf3326ed9d5f8c?d=identicon&s=25 Kad Kerforn (kadoudal)
on 2010-02-23 23:57
(Received via mailing list)
very smart , thanks !
Ad80ef30dd1243ebc48f4de359fb01ce?d=identicon&s=25 Justin MacCarthy (Guest)
on 2010-02-24 09:09
(Received via mailing list)
Check out this rails plugin,

http://tore.darell.no/posts/introducing_babilu_rai...

Justin
D258c3e1c261fc1c70fbc529a99666be?d=identicon&s=25 grimen (Guest)
on 2010-02-24 14:28
(Received via mailing list)
ALmost identical to "Babilu" plugin, but this one is a bit more
customizable (say, for security reasons) and fully test-suit for the
paranoia:

http://github.com/fnando/i18n-js

grimen
Ad80ef30dd1243ebc48f4de359fb01ce?d=identicon&s=25 Justin MacCarthy (Guest)
on 2010-02-24 14:56
(Received via mailing list)
Adding that to my watchlist ! Thanks

Justin
This topic is locked and can not be replied to.