@c This file is part of the GNU gettext manual.
@c Copyright (C) 1995-2020 Free Software Foundation, Inc.
@c See the file gettext.texi for copying conditions.

@node Ruby
@subsection Ruby
@cindex Ruby

@table @asis
@item RPMs
ruby, ruby-gettext

@item Ubuntu packages
ruby, ruby-gettext

@item File extension
@code{rb}

@item String syntax
@code{"abc"}, @code{'abc'}, @code{%q/abc/} etc.,
@code{%q(abc)}, @code{%q[abc]}, @code{%q@{abc@}}

@item gettext shorthand
@code{_("abc")}

@item gettext/ngettext functions
@code{gettext}, @code{ngettext}

@item textdomain
---

@item bindtextdomain
@code{bindtextdomain} function

@item setlocale
---

@item Prerequisite
@code{require 'gettext'}
@code{include GetText}

@item Use or emulate GNU gettext
emulate

@item Extractor
@code{xgettext}

@item Formatting with positions
@code{sprintf("%2$d %1$d", x, y)}
@*@code{"%@{new@} replaces %@{old@}" % @{:old => oldvalue, :new => newvalue@}}

@item Portability
fully portable

@item po-mode marking
---
@end table

@c An example is available in the @file{examples} directory: @code{hello-ruby}.
