Sha256: f40baa8a64798c73f1e6b26cc7bb1f7fde50d270f7ceb6796f80656b93be2ef4

Contents?: true

Size: 1.57 KB

Versions: 2

Compression:

Stored size: 1.57 KB

Contents

# frozen_string_literal: true

require 'lokalise_rails/task_definition/base'
require 'lokalise_rails/task_definition/importer'
require 'lokalise_rails/task_definition/exporter'

module LokaliseRails
  class << self
    attr_accessor :api_token, :project_id
    attr_writer :import_opts, :import_safe_mode, :export_opts, :locales_path,
                :file_ext_regexp, :skip_file_export

    # Main interface to provide configuration options for rake tasks
    def config
      yield self
    end

    # Full path to directory with translation files
    def locales_path
      @locales_path || "#{Rails.root}/config/locales"
    end

    # Regular expression used to select translation files with proper extensions
    def file_ext_regexp
      @file_ext_regexp || /\.ya?ml\z/i
    end

    # Options for import rake task
    def import_opts
      @import_opts || {
        format: 'yaml',
        placeholder_format: :icu,
        yaml_include_root: true,
        original_filenames: true,
        directory_prefix: '',
        indentation: '2sp'
      }
    end

    # Options for export rake task
    def export_opts
      @export_opts || {}
    end

    # Enables safe mode for import. When enabled, will check whether the target folder is empty or not
    def import_safe_mode
      @import_safe_mode.nil? ? false : @import_safe_mode
    end

    # Additional file skip criteria to apply when performing export
    def skip_file_export
      @skip_file_export || ->(_) { false }
    end
  end
end

require 'lokalise_rails/railtie' if defined?(Rails)

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
lokalise_rails-1.0.1 lib/lokalise_rails.rb
lokalise_rails-1.0.0 lib/lokalise_rails.rb