File: README.rdoc

package info (click to toggle)
ruby-fast-gettext 0.9.0-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 692 kB
  • ctags: 254
  • sloc: ruby: 2,838; makefile: 2
file content (236 lines) | stat: -rw-r--r-- 8,848 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
= Ruby-GetText-Package

Ruby-GetText-Package is a Localization(L10n) library and tool  
which is modeled after the GNU gettext package.

This library translates original messages to localized  
messages using client-side locale information(environment  
variable or CGI variable).

The tools for developers support creating, useing, and modifying  
localized message files(message catalogs).

((*Rails*))
Rails support has been removed.  
Rails / ActiveRecord specific code now lives in gettext_rails and gettext_activerecord.

== Website
* homepage[http://www.yotabanana.com/hiki/ruby-gettext.html]
* on rubyforge[http://gettext/rubyforge.org/]
* on github[http://github.com/gettext/]

== Features
* Simple APIs(similar to GNU gettext)

* rgettext creates po-files from 
  * ruby scripts 
  * glade-2 XML file(.glade)
  * ERB file(.rhtml, .erb)
  * Anything (with your own parsers)
  * The po-files are compatible to GNU gettext.

* rmsgfmt creates a mo-file from a po-file.
  The mo-file is compatible to GNU gettext(msgfmt).

* textdomain's scope is adapt to ruby class/module mechanism.
  * A class/module can have plural textdomains.
  * a message is looked up in its class/module and ancestors.

* CGI support (gettext/cgi)
  * Locale is retrieved from client informations
    (HTTP_ACCEPT_LANGUAGE, HTTP_ACCEPT_CHARSET, QUERY_STRING(lang), Cookies(lang)).

* String%() is extended to use named argument such as <tt>%{foo}" %{:foo => 1}</tt>.
  Notes that Ruby-1.9.x supports this format by itself.

== Requirements
* {Ruby 1.8.3 or later}[http://www.ruby-lang.org]
* {Rubygems}[http://www.rubygems.org/]
* {locale gem}[http://rubyforge.org/projects/locale/]
  * $ gem install locale
* (for development only)
  * {GNU gettext 0.10.35 or later}[http://www.gnu.org/software/gettext/gettext.html]
  * {Racc-1.4.3 or later}[http://www.ruby-lang.org/raa/list.rhtml?name=racc]
    * (for compiling src/rmsgfmt.ry only)

== Install
* Uninstall old gettext if exists.
    (sudo/su on POSIX system)
    gem uninstall gettext

* gem
    #from github (edge/unstable)
    (sudo/su on POSIX system)
    gem install locale
    gem install mutoh-gettext -s http://gems.github.com/

    #from rubyforge (stable)
    (sudo/su on POSIX system)
    gem install locale
    gem install gettext

* download tar-ball
    # De-Compress archive and enter its top directory.
    (sudo/su on POSIX system)
    ruby setup.rb

You can also install files in your favorite directory by  
supplying setup.rb some options. Try <tt>ruby setup.rb --help</tt>.

== Usage
===Translation
- _: Basic translation method
  Translates the message.
    _("Hello")

The gettext methods comes in 3 combinable flavors
- n: Pluralized
  Returns singular or plural form, depending on how many you have.
    n_("Apple", "%{num} Apples", 3)
    n_(["Apple", "%{num} Apples"], 3)

- p: context aware
  A context is a prefix to your translation, usefull when one word has different meanings, depending on its context.
    p_("Printer","Open") <=> p_("File","Open")
    is the same as s_("Printer|Open")  <=> s_("File|Open")

- s: without context
  If a translation could not be found, return the msgid without context.
    s_("Printer|Open") => "Öffnen" #translation found
    s_("Printer|Open") => "Open"   #translation not found

- combinations
    np_("Fruit", "Apple", "%{num} Apples", 3)
    ns_("Fruit|Apple","%{num} Apples", 3)

    np_(["Fruit","Apple","%{num} Apples"], 3)
    ns_(["Fruit|Apple","%{num} Apples"], 3)

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

    fruit = N_("Apple")   # same as fruit = "Apple"
    _(fruit)              # does a normal translation

    fruits = Nn_("Apple", "%{num} Apples")
    n_(fruits, 3)

=== Locale / Domain
GetText stores the locale your are using
  GetText.locale = "en_US" # translate into english from now on
  GetText.locale # => en_US
Or
  include GetText
  set_locale "en_US"

Each locale can have different sets of translations (text domains) (e.g. Financial terms + Human-resource terms)
  GetText.bindtextdomain('financial')
Or
  include GetText
  bindtextdomain('financial')

For more details and options, have a look at the samples folder or
consult the tutorial[http://www.yotabanana.com/hiki/ruby-gettext-howto.html].


== License
This program is licenced under the same licence as Ruby.  
(See the file 'COPYING'.)

* mofile.rb
  * Copyright (C) 2001-2009 Masao Mutoh <mutoh at highwhay.ne.jp>
  * Copyright (C) 2001,2002 Masahiro Sakai <s01397ms at sfc.keio.ac.jp>

* gettext.rb
  * Copyright (C) 2001-2009 Masao Mutoh <mutoh at highwhay.ne.jp>
  * Copyright (C) 2001,2002 Masahiro Sakai <s01397ms at sfc.keio.ac.jp>

* rgettext 
  * Copyright (C) 2001-2009 Masao Mutoh <mutoh at highwhay.ne.jp>
  * Copyright (C) 2001,2002 Yasushi Shoji <yashi at atmark-techno.com>

* setup.rb
  * Copyright (C) 2000-2005 Minero Aoki <aamine at loveruby.net>
  * This file is released under LGPL. See the top of the install.rb.

* Others
  * Copyright (C) 2001-2009 Masao Mutoh <mutoh at highwhay.ne.jp>


== Translators
* Bosnian(bs)                - Sanjin Sehic <saserr at gmail.com>
* Bulgarian(bg)              - Sava Chankov <sava.chankov at gmail.com>
* Catalan(ca)                - Ramon Salvadó <rsalvado at gnuine.com>
* Chinese(Simplified)(zh_CN)
  * Yang Bob <bob.yang.dev at gmail.com> (current)
  * Yingfeng <blogyingfeng at gmail.com>
* Chinese(Traditional)(zh_TW)
  * Yang Bob <bob.yang.dev at gmail.com> (current)
  * LIN CHUNG-YI <xmarsh at gmail.com>
* Croatian(hr)               - Sanjin Sehic <saserr at gmail.com>
* Czech(cs)                  - Karel Miarka <kajism at yahoo.com>
* Dutch(nl)                  - Menno Jonkers <ruby-gettext at jonkers.com>
* Esperanto(eo)              - Malte Milatz <malte at gmx-topmail.de>
* Estonian(et)               - Erkki Eilonen <erkki at itech.ee>
* French(fr)
  * Vincent Isambart <vincent.isambart at gmail.com> (current)
  * David Sulc <davidsulc at gmail.com>
  * Laurent Sansonetti <laurent.sansonetti at gmail.com>
* German(de)
  * Patrick Lenz <patrick at limited-overload.de> (current)
  * Detlef Reichl <detlef.reichl at gmx.org>
  * Sven Herzberg <herzi at abi02.de>
  * Sascha Ebach <se at digitale-wertschoepfung.de>
* Greek(el)                  - Vassilis Rizopoulos <damphyr at gmx.net>
* Hungarian(hu)              - Tamás Tompa <tompata at gmail.com>
* Italian(it)
  * Marco Lazzeri <marco.lazzeri at gmail.com>
  * Gabriele Renzi <surrender_it at yahoo.it>
* Japanese(ja)               - Masao Mutoh <mutoh at highway.ne.jp>
* Korean(ko)                 - Gyoung-Yoon Noh <nohmad at gmail.com>
* Latvian(lv)                - Aivars Akots <aivars.akots at gmail.com>
* Norwegian(nb)              - Runar Ingebrigtsen <runar at mopo.no>
* Portuguese(Brazil)(pt_BR)  
  * Antonio S. de A. Terceiro <terceiro at softwarelivre.org> (current)
  * Joao Pedrosa <joaopedrosa at gmail.com>
* Russian(ru)                - Yuri Kozlov <kozlov.y at gmail.com>
* Serbian(sr)                - Slobodan Paunović" <slobodan.paunovic at gmail.com>
* Spanish(es)
  * David Espada <davinci at escomposlinux.org> (current)
  * David Moreno Garza <damog at damog.net>
* Swedish(sv)                - Nikolai Weibull <mailing-lists.ruby-talk at rawuncut.elitemail.org>
* Ukrainian(ua)              - Alex Rootoff <rootoff at pisem.net>
* Vietnamese(vi)             - Ngoc Dao Thanh <ngocdaothanh at gmail.com>

== Status of translations
* Bosnian(bs)               - 1.90.0 (old)
* Bulgarian(bg)             - 2.0.0pre1 (new)
* Catalan(ca)               - 2.0.0pre1
* Croatian(hr)              - 1.90.0 (old)
* Chinese(zh_CN)            - 2.0.0pre1
* Chinese(zh_TW)            - 2.0.0pre1
* Czech(cs)                 - 1.9.0 (old)
* Dutch(nl)                 - 1.90.0 (old)
* English(default)          - 1.90.0 (old)
* Esperanto(eo)             - 2.0.0pre1
* Estonian(et)              - 2.0.0pre1
* French(fr)                - 2.0.0pre1
* German(de)                - 2.0.0pre1
* Greek(el)                 - 2.0.0pre1 
* Hungarian(hu)             - 2.0.0pre1
* Italian(it)               - 1.6.0 (old)
* Japanese(ja)              - 2.0.0pre1
* Korean(ko)                - 1.9.0 (old)
* Latvian(lv)               - 2.0.0pre1 (new)
* Norwegian(nb)             - 2.0.0pre1
* Portuguese(Brazil)(pt_BR) - 2.0.0pre1
* Russian(ru)               - 2.0.0pre1
* Serbian(sr)               - 1.91.0 (old)
* Spanish(es)               - 2.0.0pre1
* Swedish(sv)               - 0.8.0 (too much old)
* Ukrainian(ua)             - 2.0.0pre1
* Vietnamese(vi)            - 2.0.0pre1

== Maintainer
Masao Mutoh <mutoh at highway.ne.jp>