Sha256: ffae2e2965cd186af26ab901ec05b52ac62225f9e441b646fdfde3f45c4ce210

Contents?: true

Size: 1.03 KB

Versions: 2

Compression:

Stored size: 1.03 KB

Contents

# -*- encoding : utf-8 -*-

class Phrase::Tool::Formats::Xml < Phrase::Tool::Formats::Base
  def self.directory_for_locale(locale)
    if locale.default?
      "values" 
    else
      name = locale.code || locale.name
      "values-#{formatted(name)}"
    end
  end
  
  def self.filename_for_locale(locale)
    "strings.xml"
  end
  
  def self.extract_locale_name_from_file_path(file_path)
    return default_locale_name if file_path.scan(/\/values\/strings.xml/i).first
    locale_part = file_path.scan(/\/values-([a-zA-Z\-_]*)\/strings.xml/i).first.try(:first)
    if locale_part and locale_part.include?("-r")
      "#{locale_part.split("-r").first}-#{locale_part.split("-r").last}"
    else
      locale_part
    end
  end
  
  def self.default_locale_name
    Phrase::Tool::Locale.find_default_locale.try(:name)
  end
  private_class_method :default_locale_name
  
  def self.formatted(name)
    return name unless name.include?("-")
    parts = name.split("-")
    "#{parts.first}-r#{parts.last.upcase}"
  end
  private_class_method :formatted
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
phrase-0.3.1 lib/phrase/tool/formats/xml.rb
phrase-0.3.0 lib/phrase/tool/formats/xml.rb