Module: GetText

### Home Classes Methods

### In Files

- lib/gettext.rb
- lib/gettext/text_domain_manager.rb
- lib/gettext/version.rb
- lib/gettext/cgi.rb
- lib/gettext/text_domain.rb
- lib/gettext/po_parser.rb
- lib/gettext/tools/msgfmt.rb
- lib/gettext/tools/msgmerge.rb
- lib/gettext/tools/msginit.rb
- lib/gettext/tools/xgettext.rb
- lib/gettext/tools/task.rb
- lib/gettext/tools/parser/glade.rb
- lib/gettext/tools/parser/erb.rb
- lib/gettext/tools/parser/ruby.rb
- lib/gettext/text_domain_group.rb
- lib/gettext/locale_path.rb
- lib/gettext/po_entry.rb
- lib/gettext/class_info.rb
- lib/gettext/mo.rb
- lib/gettext/po.rb

### Namespace

- MODULE GetText::ClassInfo
- MODULE GetText::POEntryForRubyParser
- MODULE GetText::TextDomainManager
- MODULE GetText::Tools
- CLASS GetText::ErbParser
- CLASS GetText::GladeParser
- CLASS GetText::LocalePath
- CLASS GetText::MO
- CLASS GetText::NoboundTextDomainError
- CLASS GetText::PO
- CLASS GetText::POEntry
- CLASS GetText::POParser
- CLASS GetText::ParseError
- CLASS GetText::RubyParser
- CLASS GetText::TextDomain
- CLASS GetText::TextDomainGroup

### Methods

- #N_
- #Nn_
- #_
- #bindtextdomain
- #bindtextdomain_to
- #cgi
- #cgi=
- #current_locale=
- #gettext
- #locale
- #locale=
- #n_
- #ngettext
- #np_
- #npgettext
- #ns_
- #nsgettext
- #output_charset
- #output_charset=
- #p_
- #pgettext
- #s_
- #set_cgi
- #set_current_locale
- #set_locale
- #set_output_charset
- #sgettext

### Class/Module Index

Quicksearch

- GetText
- GetText::ClassInfo
- GetText::ErbParser
- GetText::GladeParser
- GetText::LocalePath
- GetText::MO
- GetText::MO::HeaderRev1
- GetText::MO::InvalidFormat
- GetText::NoboundTextDomainError
- GetText::PO
- GetText::PO::NonExistentEntryError
- GetText::POEntry
- GetText::POEntry::InvalidTypeError
- GetText::POEntry::NoMsgctxtError
- GetText::POEntry::NoMsgidError
- GetText::POEntry::NoMsgidPluralError
- GetText::POEntryForRubyParser
- GetText::POParser
- GetText::ParseError
- GetText::RubyParser
- GetText::TextDomain
- GetText::TextDomainGroup
- GetText::TextDomainManager
- GetText::Tools
- GetText::Tools::MsgInit
- GetText::Tools::MsgInit::ArgumentError
- GetText::Tools::MsgInit::Error
- GetText::Tools::MsgInit::ValidationError
- GetText::Tools::MsgMerge
- GetText::Tools::Task
- GetText::Tools::XGetText

No matching classes.

# GetText

version - version information of gettext

Copyright (C) 2012-2013 Kouhei Sutou <kou@clear-code.com> Copyright (C) 2005-2009 Masao Mutoh

You may redistribute it and/or modify it under the same license terms as Ruby or LGPL.

gettext/text_domain_group - GetText::TextDomainGroup class

Copyright (C) 2009 Masao Mutoh

You may redistribute it and/or modify it under the same license terms as Ruby or LGPL.

Copyright (C) 2012 Kouhei Sutou <kou@clear-code.com> Copyright (C) 2010 masone (Christian Felder) <ema@rh-productions.ch> Copyright (C) 2009 Masao Mutoh

License: Ruby's or LGPL

This library is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <www.gnu.org/licenses/>.

### Constants

VERSION

### Public Instance Methods

N_(msgid) click to toggle source

makes dynamic translation messages readable for the gettext parser. `_(fruit)` cannot be understood by the gettext parser. To help the parser find all your translations, you can add `fruit = N_("Apple")` which does not translate, but tells the parser: "Apple" needs translation.

- msgid: the message id.

- Returns: msgid.

    # File lib/gettext.rb, line 233
    def N_(msgid)
      msgid
    end

Nn_(msgid, msgid_plural) click to toggle source

This is same function as N_ but for ngettext.

- msgid: the message id.

- msgid_plural: the plural message id.

- Returns: msgid.

    # File lib/gettext.rb, line 241
    def Nn_(msgid, msgid_plural)
      [msgid, msgid_plural]
    end

_(msgid) click to toggle source
Alias for: gettext
bindtextdomain(domainname, *options) click to toggle source

bindtextdomain(domainname, options = {})

Bind a text domain(%{path}/%{locale}/LC_MESSAGES/%{domainname}.mo) to your program. Normally, the texdomain scope becomes the class/module(and parent classes/included modules).

- domainname: the text domain name.

- options: options as an Hash.

  - :path - the path to the mo-files. When the value is nil, it will search default paths such as /usr/share/locale, /usr/local/share/locale)

  - :output_charset - The output charset. Same with GetText.set_output_charset. Usually, L10n library doesn't use this option. Application may use this once.

- Returns: the GetText::TextDomainManager.

    # File lib/gettext.rb, line 52
    def bindtextdomain(domainname, *options)
      bindtextdomain_to(self, domainname, *options)
    end

bindtextdomain_to(klass, domainname, *options) click to toggle source

Includes GetText module and bind a text domain to a class.

- klass: the target ruby class.

- domainname: the text domain name.

- options: options as an Hash. See GetText.bindtextdomain.

    # File lib/gettext.rb, line 60
    def bindtextdomain_to(klass, domainname, *options)
      if options[0].kind_of? Hash
        opts = options[0]
      else
        # for backward compatibility.
        opts = {}
        opts[:path] = options[0] if options[0]
        opts[:output_charset] = options[2] if options[2]
      end
      unless (klass.kind_of? GetText or klass.include? GetText)
        klass.__send__(:include, GetText)
      end
      TextDomainManager.bind_to(klass, domainname, opts)
    end

cgi() click to toggle source

Gets the CGI object. If it is nil, returns new CGI object. This methods is appeared when requiring "gettext/cgi".

- Returns: the CGI object

    # File lib/gettext/cgi.rb, line 35
    def cgi
      Locale.cgi
    end

cgi=(cgi_) click to toggle source

Same as GetText.set_cgi. This methods is appeared when requiring "gettext/cgi".

- cgi_: CGI object

- Returns: cgi_

    # File lib/gettext/cgi.rb, line 28
    def cgi=(cgi_)
      set_cgi(cgi_)
      cgi_
    end

current_locale=(lang) click to toggle source
Alias for: set_current_locale
gettext(msgid) click to toggle source
_(msgid)

Translates msgid and return the message. This doesn't make a copy of the message.

You need to use String#dup if you want to modify the return value with destructive functions.

(e.g.1) _("Hello ").dup << "world"

But e.g.1 should be rewrite to:

(e.g.2) _("Hello %{val}") % {:val => "world"}

Because the translator may want to change the position of "world".

- msgid: the message id.

- Returns: localized text by msgid. If there are not binded mo-file, it will return msgid.

    # File lib/gettext.rb, line 116
    def gettext(msgid)
      TextDomainManager.translate_singular_message(self, msgid)
    end

Also aliased as: _
locale() click to toggle source

    # File lib/gettext.rb, line 276
    def locale
      Locale.current[0]
    end

locale=(lang) click to toggle source
Alias for: set_locale
n_(msgid, msgid_plural, n = nil) click to toggle source
Alias for: ngettext
ngettext(msgid, msgid_plural, n) click to toggle source
ngettext(msgids, n) # msgids = [msgid, msgid_plural]
n_(msgid, msgid_plural, n)
n_(msgids, n) # msgids = [msgid, msgid_plural]

The ngettext is similar to the gettext function as it finds the message catalogs in the same way. But it takes two extra arguments for plural form.

- msgid: the singular form.

- msgid_plural: the plural form.

- n: a number used to determine the plural form.

- Returns: the localized text which key is msgid_plural if n is plural(follow plural-rule) or msgid. "plural-rule" is defined in po-file.

    # File lib/gettext.rb, line 168
    def ngettext(msgid, msgid_plural, n = nil)
      TextDomainManager.translate_plural_message(self, msgid, msgid_plural, n)
    end

Also aliased as: n_
np_(msgctxt, msgids, arg2 = nil, arg3 = nil) click to toggle source
Alias for: npgettext
npgettext(msgctxt, msgid, msgid_plural, n) click to toggle source
npgettext(msgctxt, msgids, n) # msgids = [msgid, msgid_plural]
np_(msgctxt, msgid, msgid_plural, n)
np_(msgctxt, msgids, n) # msgids = [msgid, msgid_plural]

The npgettext is similar to the nsgettext function.

    e.g.) np_("Special", "An apple", "%{num} Apples", num) == ns_("Special|An apple", "%{num} Apples", num)

- msgctxt: the message context.

- msgid: the singular form.

- msgid_plural: the plural form.

- n: a number used to determine the plural form.

- Returns: the localized text which key is msgid_plural if n is plural(follow plural-rule) or msgid. "plural-rule" is defined in po-file.

    # File lib/gettext.rb, line 205
    def npgettext(msgctxt, msgids, arg2 = nil, arg3 = nil)
      if msgids.kind_of?(Array)
        msgid = msgids[0]
        msgid_ctxt = "#{msgctxt}\0004#{msgid}"
        msgid_plural = msgids[1]
        opt1 = arg2
        opt2 = arg3
      else
        msgid = msgids
        msgid_ctxt = "#{msgctxt}\0004#{msgid}"
        msgid_plural = arg2
        opt1 = arg3
        opt2 = nil
      end

      msgstr = TextDomainManager.translate_plural_message(self, msgid_ctxt, msgid_plural, opt1, opt2)
      if msgstr == msgid_ctxt
        msgid
      else
        msgstr
      end
    end

Also aliased as: np_
ns_(msgid, msgid_plural, n="|", seperator = "|") click to toggle source
Alias for: nsgettext
nsgettext(msgid, msgid_plural, n, div = "|") click to toggle source
nsgettext(msgids, n, div = "|") # msgids = [msgid, msgid_plural]
ns_(msgid, msgid_plural, n, div = "|")
ns_(msgids, n, div = "|") # msgids = [msgid, msgid_plural]

The nsgettext is similar to the ngettext. But if there are no localized text, it returns a last part of msgid separeted "div".

- msgid: the singular form with "div". (e.g. "Special|An apple")

- msgid_plural: the plural form. (e.g. "%{num} Apples")

- n: a number used to determine the plural form.

- Returns: the localized text which key is msgid_plural if n is plural(follow plural-rule) or msgid. "plural-rule" is defined in po-file.

    # File lib/gettext.rb, line 187
    def nsgettext(msgid, msgid_plural, n="|", seperator = "|")
      TextDomainManager.translate_plural_message(self, msgid, msgid_plural, n, seperator)
    end

Also aliased as: ns_
output_charset() click to toggle source

Gets the current output_charset which is set using GetText.set_output_charset.

- Returns: output_charset.

    # File lib/gettext.rb, line 256
    def output_charset
      TextDomainManager.output_charset
    end

output_charset=(charset) click to toggle source
Alias for: set_output_charset
p_(msgctxt, msgid) click to toggle source

This is the workaround to conflict p_ methods with the xx("double x") library. rubyforge.org/projects/codeforpeople/

Alias for: pgettext
pgettext(msgctxt, msgid) click to toggle source
p_(msgctxt, msgid)

Translates msgid with msgctxt. This methods is similer with s_().

    e.g.) p_("File", "New")   == s_("File|New")
          p_("File", "Open")  == s_("File|Open")

- msgctxt: the message context.

- msgid: the message id.

- Returns: the localized text by msgid. If there are no localized text, it returns msgid.

See: www.gnu.org/software/autoconf/manual/gettext/Contexts.html

    # File lib/gettext.rb, line 150
    def pgettext(msgctxt, msgid)
      TextDomainManager.translate_singular_message(self, "#{msgctxt}\0004#{msgid}", "\0004")
    end

Also aliased as: p_
s_(msgid, seperator = "|") click to toggle source
Alias for: sgettext
set_cgi(cgi_) click to toggle source

Sets a CGI object. This methods is appeared when requiring "gettext/cgi".

- cgi_: CGI object

- Returns: self

    # File lib/gettext/cgi.rb, line 21
    def set_cgi(cgi_)
      Locale.set_cgi(cgi_)
    end

set_current_locale(lang) click to toggle source

Set the locale to the current thread. Note that if set_locale is set, this value is ignored. If you need, set_locale(nil); set_current_locale(lang)

    # File lib/gettext.rb, line 272
    def set_current_locale(lang)
      Locale.current = lang
    end

Also aliased as: current_locale=
set_locale(lang) click to toggle source

Set the locale. This value forces the locale whole the programs. This method calls Locale.set_app_language_tags, Locale.default, Locale.current. Use Locale methods if you need to handle locales more flexible.

    # File lib/gettext.rb, line 263
    def set_locale(lang)
      Locale.set_app_language_tags(lang)
      Locale.default = lang
      Locale.current = lang
    end

Also aliased as: locale=
set_output_charset(charset) click to toggle source

Sets charset(String) such as "euc-jp", "sjis", "CP932", "utf-8", ... You shouldn't use this in your own Libraries.

- charset: an output_charset

- Returns: self

    # File lib/gettext.rb, line 249
    def set_output_charset(charset)
      TextDomainManager.output_charset = charset
      self
    end

Also aliased as: output_charset=
sgettext(msgid, div = '|') click to toggle source
s_(msgid, div = '|')

Translates msgid, but if there are no localized text, it returns a last part of msgid separeted "div".

- msgid: the message id.

- separator: separator or nil for no seperation.

- Returns: the localized text by msgid. If there are no localized text, it returns a last part of the msgid separeted by "seperator". `Movie|Location -> Location`

See: www.gnu.org/software/gettext/manual/html_mono/gettext.html#SEC151

    # File lib/gettext.rb, line 133
    def sgettext(msgid, seperator = "|")
      TextDomainManager.translate_singular_message(self, msgid, seperator)
    end

Also aliased as: s_

[Validate]

Generated with the Darkfish Rdoc Generator 2.