Class: YARD::I18n::Locale
- Inherits:
-
Object
- Object
- YARD::I18n::Locale
- Defined in:
- lib/yard/i18n/locale.rb
Overview
Locale is a unit of translation. It has #name and a set of
messages.
Instance Attribute Summary collapse
-
#name ⇒ String
readonly
The name of the locale.
Instance Method Summary collapse
-
#initialize(name) ⇒ Locale
constructor
Creates a locale for
namelocale. -
#load(locale_directory) ⇒ Boolean
Loads translation messages from +locale_directory+/#name.po.
-
#translate(message) ⇒ String
Translated message.
Constructor Details
#initialize(name) ⇒ Locale
Creates a locale for name locale.
17 18 19 20 |
# File 'lib/yard/i18n/locale.rb', line 17 def initialize(name) @name = name @messages = {} end |
Instance Attribute Details
#name ⇒ String (readonly)
Returns the name of the locale. It used IETF language
tag format [language[_territory][.codeset][@modifier]].
12 13 14 |
# File 'lib/yard/i18n/locale.rb', line 12 def name @name end |
Instance Method Details
#load(locale_directory) ⇒ Boolean
Loads translation messages from +locale_directory+/#name.po.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/yard/i18n/locale.rb', line 27 def load(locale_directory) return false if @name.nil? po_file = File.join(locale_directory, "#{@name}.po") return false unless File.exist?(po_file) begin require "gettext/tools/poparser" require "gettext/runtime/mofile" rescue LoadError log.warn "Need gettext gem for i18n feature:" log.warn " gem install gettext" return false end 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) ⇒ String
Returns translated message. If tarnslation isn't
registered, the message is returned.
53 54 55 |
# File 'lib/yard/i18n/locale.rb', line 53 def translate() @messages[] || end |