Module: ReactOnRails::Locales

Defined in:
lib/react_on_rails/locales/base.rb,
lib/react_on_rails/locales/to_js.rb,
lib/react_on_rails/locales/to_json.rb

Defined Under Namespace

Classes: Base, ToJs, ToJson

Class Method Summary collapse

Class Method Details

.compile(force: false) ⇒ ReactOnRails::Locales::ToJs, ReactOnRails::Locales::ToJson

Compiles locale YAML files into JavaScript or JSON for use with React on Rails i18n.

Reads YAML locale files from config.i18n_yml_dir (or Rails i18n load path), generates output files in config.i18n_dir, and skips generation when output files are already up-to-date (unless force is true).

Examples:

Basic usage (skips if up-to-date)

ReactOnRails::Locales.compile

Force regeneration

ReactOnRails::Locales.compile(force: true)

Parameters:

  • force (Boolean) (defaults to: false)

    when true, regenerate even if output files are current

Returns:

Raises:



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/react_on_rails/locales/base.rb', line 22

def self.compile(force: false)
  config = ReactOnRails.configuration
  check_config_directory_exists(
    directory: config.i18n_dir, key_name: "config.i18n_dir",
    remove_if: "not using the React on Rails i18n feature"
  )
  check_config_directory_exists(
    directory: config.i18n_yml_dir, key_name: "config.i18n_yml_dir",
    remove_if: "not using this i18n with React on Rails, or if you want to use all translation files"
  )
  if config.i18n_output_format&.downcase == "js"
    ReactOnRails::Locales::ToJs.new(force: force)
  else
    ReactOnRails::Locales::ToJson.new(force: force)
  end
end