class YARD::I18n::Locale

Locale is a unit of translation. It has {name} and a set of messages.

@since 0.8.2

Attributes

name[R]

@return [String] the name of the locale. It used IETF language

tag format +[language[_territory][.codeset][@modifier]]+.

@see tools.ietf.org/rfc/bcp/bcp47.txt

BCP 47 - Tags for Identifying Languages

Public Class Methods

new(name) click to toggle source

Creates a locale for name locale.

@param [String] name the locale name.

# File lib/yard/i18n/locale.rb, line 20
def initialize(name)
  @name = name
  @messages = {}
end

Public Instance Methods

load(locale_directory) click to toggle source

Loads translation messages from locale_directory/{name}.po.

@param [String] locale_directory the directory path that has

{#name}.po.

@return [Boolean] true if PO file exists, false otherwise.

# File lib/yard/i18n/locale.rb, line 30
def load(locale_directory)
  po_file = File.join(locale_directory, "#{@name}.po")
  return false unless File.exist?(po_file)

  parser = GetText::PoParser.new
  parser.report_warning = false
  data = GetText::MoFile.new
  parser.parse_file(po_file, data)
  @messages.merge!(data)
  true
end
translate(message) click to toggle source

@param [String] message the translation target message. @return [String] translated message. If tarnslation isn't

registered, the +message+ is returned.
# File lib/yard/i18n/locale.rb, line 45
def translate(message)
  @messages[message] || message
end