class Aginx::Generators::LocaleGenerator

Public Instance Methods

create_en_locales() click to toggle source

创建中文本地化

# File lib/generators/aginx/locale/locale_generator.rb, line 13
      def create_en_locales
        yml_code = <<-EOF
      #{@model_name.underscore}: #{@model_name}
        EOF

        inject_into_file(
          'config/locales/activerecord.en.yml',
          before: "      # Do not delete this line for agi_scaffold model") {yml_code}

        yml_code = "      #{@model_name.underscore}:\n"
        yml_code << @en_locales.map{|l| "        #{l}: #{l.camelize}"}.join("\n")
        yml_code << "\n"

        inject_into_file(
          'config/locales/activerecord.en.yml',
          before: "      # Do not delete this line for agi_scaffold attributes") {yml_code}

        yml_code = <<-EOF
  #{@model_name.pluralize.underscore}:
    index:
      title: #{@model_name}
    edit:
      title: Edit #{@model_name}
    new:
      title: New #{@model_name}
    create:
      success: Create #{@model_name} success
          EOF

        inject_into_file(
          'config/locales/admin.en.yml',
          before: "  # Do not delete this line for agi_scaffold") {yml_code}
      end
create_zh_locales() click to toggle source

创建中文本地化

# File lib/generators/aginx/locale/locale_generator.rb, line 48
      def create_zh_locales
        yml_code = <<-EOF
      #{@model_name.underscore}: #{options[:model_locale]}
        EOF
        inject_into_file(
          'config/locales/activerecord.zh-CN.yml',
          before: "      # Do not delete this line for agi_scaffold model") {yml_code}

        yml_code = "      #{@model_name.underscore}:\n"
        yml_code << @zh_locales.map{|l| "        #{l[0]}: #{l[1]}"}.join("\n")
        yml_code << "\n"

        inject_into_file(
          'config/locales/activerecord.zh-CN.yml',
          before: "      # Do not delete this line for agi_scaffold attributes") {yml_code}

        yml_code = <<-EOF
  #{@model_name.pluralize.underscore}:
    index:
      title: #{options[:model_locale]}
    edit:
      title: 编辑 #{options[:model_locale]}
    new:
      title: 新建 #{options[:model_locale]}
    create:
      success: 创建 #{options[:model_locale]} 成功
          EOF

        inject_into_file(
          'config/locales/admin.zh-CN.yml',
          before: "  # Do not delete this line for agi_scaffold") {yml_code}
      end
init() click to toggle source
# File lib/generators/aginx/locale/locale_generator.rb, line 8
def init
  prepare
end

Private Instance Methods

prepare() click to toggle source
# File lib/generators/aginx/locale/locale_generator.rb, line 84
def prepare
  set_model
  set_en_model_locale
  set_zh_model_locale
end
set_en_model_locale() click to toggle source
# File lib/generators/aginx/locale/locale_generator.rb, line 98
def set_en_model_locale
  @en_locales = args.empty? ?  @model_columns : args.map do |arg|
    arg.split(':')[0]
  end
end
set_model() click to toggle source
# File lib/generators/aginx/locale/locale_generator.rb, line 90
def set_model
  @model_table_name = file_name.underscore.pluralize
  @model_name = file_name.camelize.singularize
  @model_columns = @model_name.constantize.columns.map{|column| column.name}
rescue
  raise "未找到#{@model_name}相关表结构信息"
end
set_zh_model_locale() click to toggle source
# File lib/generators/aginx/locale/locale_generator.rb, line 104
def set_zh_model_locale
  @zh_locales = args.empty? ?  @model_columns : args.map do |arg|
    arg.split(':')
  end
end