Module: R18n
- Defined in:
- lib/r18n-core/utils.rb,
lib/r18n-core.rb,
lib/r18n-core/i18n.rb,
lib/r18n-core/locale.rb,
lib/r18n-core/filters.rb,
lib/r18n-core/helpers.rb,
lib/r18n-core/version.rb,
lib/r18n-core/translated.rb,
lib/r18n-core/filter_list.rb,
lib/r18n-core/translation.rb,
lib/r18n-core/yaml_loader.rb,
lib/r18n-core/untranslated.rb,
lib/r18n-core/yaml_methods.rb,
lib/r18n-core/translated_string.rb,
lib/r18n-core/unsupported_locale.rb
Overview
Locale withou information file to i18n support.
Copyright © 2008 Andrey “A.I.” Sitnik <[email protected]>
This program 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 program 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/>.
Defined Under Namespace
Modules: Filters, Helpers, Loader, Locales, Translated, Utils, YamlMethods Classes: CustomFilterList, FilterList, GlobalFilterList, I18n, Locale, TranslatedString, Translation, Typed, UnpluralizetedTranslation, UnsupportedLocale, Untranslated
Constant Summary collapse
- VERSION =
'1.1.11'.freeze
Class Attribute Summary collapse
-
.cache ⇒ Object
Hash of hash-like (see Moneta) object to store loaded translations.
-
.default_loader ⇒ Object
Default loader class, which will be used if you didn’t send loader to
I18n.new
(object withavailable
andload
methods). -
.default_places(&block) ⇒ Object
Default places for
R18n.set
andR18n.available_locales
. -
.extension_places ⇒ Object
Loaders with extension translations.
Class Method Summary collapse
-
.available_locales(places = R18n.default_places) ⇒ Object
Return Array of locales with available translations.
-
.change(locale) ⇒ Object
Return I18n object for
locale
. -
.clear_cache! ⇒ Object
Clean translations cache.
-
.get ⇒ Object
Get I18n object for current thread.
-
.l(*params) ⇒ Object
Localize object.
-
.locale(code) ⇒ Object
Return Locale object by locale code.
-
.reset! ⇒ Object
(also: reset)
Delete I18n object from current thread and global variable.
-
.set(i18n = nil, places = R18n.default_places, &block) ⇒ Object
Set I18n object globally.
-
.t(*params) ⇒ Object
Translate message.
-
.thread ⇒ Object
Get the current thread.
-
.thread_set(i18n = nil, &block) ⇒ Object
Set I18n object to current thread.
Class Attribute Details
.cache ⇒ Object
Hash of hash-like (see Moneta) object to store loaded translations.
154 155 156 |
# File 'lib/r18n-core.rb', line 154 def cache @cache end |
.default_loader ⇒ Object
Default loader class, which will be used if you didn’t send loader to I18n.new
(object with available
and load
methods).
147 148 149 |
# File 'lib/r18n-core.rb', line 147 def default_loader @default_loader end |
.default_places(&block) ⇒ Object
Default places for R18n.set
and R18n.available_locales
.
You can set block to calculate places dynamically:
R18n.default_places { settings.i18n_places }
133 134 135 |
# File 'lib/r18n-core.rb', line 133 def default_places @default_places end |
.extension_places ⇒ Object
Loaders with extension translations. If application translations with same locale isn’t exists, extension file willn’t be used.
151 152 153 |
# File 'lib/r18n-core.rb', line 151 def extension_places @extension_places end |
Class Method Details
.available_locales(places = R18n.default_places) ⇒ Object
Return Array of locales with available translations. You can miss translation places
, it will be taken from R18n.default_places
.
125 126 127 |
# File 'lib/r18n-core.rb', line 125 def available_locales(places = R18n.default_places) R18n::I18n.convert_places(places).map { |i| i.available }.flatten.uniq end |
.change(locale) ⇒ Object
Return I18n object for locale
. Useful to temporary change locale, for example, to show text in locales list:
- R18n.available_locales.each do |locale|
- R18n.change(locale).t.language_title
110 111 112 113 114 115 |
# File 'lib/r18n-core.rb', line 110 def change(locale) locale = locale.code if locale.is_a? Locale exists = get ? get.locales.map { |i| i.code } : [] places = get ? get.translation_places : R18n.default_places R18n::I18n.new([locale] + exists, places) end |
.clear_cache! ⇒ Object
Clean translations cache.
77 78 79 |
# File 'lib/r18n-core.rb', line 77 def clear_cache! self.cache = { } end |
.get ⇒ Object
Get I18n object for current thread.
69 70 71 72 73 74 |
# File 'lib/r18n-core.rb', line 69 def get thread[:r18n_i18n] || (thread[:r18n_setter] && thread_set(thread[:r18n_setter].call)) || @i18n || (@setter && set(@setter.call)) end |
.l(*params) ⇒ Object
Localize object. Alias for R18n.get.l
.
101 102 103 |
# File 'lib/r18n-core.rb', line 101 def l(*params) get.l(*params) end |
.locale(code) ⇒ Object
Return Locale object by locale code. It’s shortcut for R18n::Locale.load(code)
.
119 120 121 |
# File 'lib/r18n-core.rb', line 119 def locale(code) R18n::Locale.load(code) end |
.reset! ⇒ Object Also known as: reset
Delete I18n object from current thread and global variable.
82 83 84 85 |
# File 'lib/r18n-core.rb', line 82 def reset! thread[:r18n_i18n] = thread[:r18n_setter] = @i18n = @setter = nil clear_cache! end |
.set(i18n = nil, places = R18n.default_places, &block) ⇒ Object
Set I18n object globally. You can miss translation places
, it will be taken from R18n.default_places
.
47 48 49 50 51 52 53 54 55 56 |
# File 'lib/r18n-core.rb', line 47 def set(i18n = nil, places = R18n.default_places, &block) if block_given? @setter = block @i18n = nil elsif i18n.is_a? I18n @i18n = i18n else @i18n = I18n.new(i18n, places) end end |
.t(*params) ⇒ Object
Translate message. Alias for R18n.get.t
.
96 97 98 |
# File 'lib/r18n-core.rb', line 96 def t(*params) get.t(*params) end |
.thread ⇒ Object
Get the current thread.
91 92 93 |
# File 'lib/r18n-core.rb', line 91 def thread Thread.current end |
.thread_set(i18n = nil, &block) ⇒ Object
Set I18n object to current thread.
59 60 61 62 63 64 65 66 |
# File 'lib/r18n-core.rb', line 59 def thread_set(i18n = nil, &block) if block_given? thread[:r18n_setter] = block thread[:r18n_i18n] = nil else thread[:r18n_i18n] = i18n end end |