module R18n
Root module with singleton methods
Filters
for translations content.
Copyright (C) 2012 Andrey “A.I.” Sitnik <andrey@sitnik.ru>
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/>.
R18n
filters definition
Mixin with common methods.
Copyright (C) 2010 Andrey “A.I.” Sitnik <andrey@sitnik.ru>
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/>.
Add i18n support to any class.
Copyright (C) 2008 Andrey “A.I.” Sitnik <andrey@sitnik.ru>
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/>.
Translation
string for i18n support.
Copyright (C) 2008 Andrey “A.I.” Sitnik <andrey@sitnik.ru>
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/>.
Translation
to i18n support.
Copyright (C) 2008 Andrey “A.I.” Sitnik <andrey@sitnik.ru>
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/>.
Locale
withou information file to i18n support.
Copyright (C) 2008 Andrey “A.I.” Sitnik <andrey@sitnik.ru>
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/>.
Untranslation string for i18n support.
Copyright (C) 2008 Andrey “A.I.” Sitnik <andrey@sitnik.ru>
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/>.
Common methods for i18n support.
Copyright (C) 2008 Andrey “A.I.” Sitnik <andrey@sitnik.ru>
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/>.
Version of R18n
Core
Loader
for YAML translations.
Copyright (C) 2009 Andrey “A.I.” Sitnik <andrey@sitnik.ru>
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/>.
Constants
- Typed
Struct to containt translation with some type for filter.
- VERSION
Attributes
`Hash` of hash-like (see Moneta) object to store loaded translations.
Default loader class, which will be used if you did not send loader to `I18n.new` (object with `available` and `load` methods).
Default places for `R18n.set` and `R18n.available_locales`.
You can set block to calculate places dynamically:
R18n.default_places { settings.i18n_places }
Loaders with extension translations. If application translations with same locale isn't exists, extension file will not be used.
Public Class Methods
Return `Array` of locales with available translations. You can miss translation `places`, it will be taken from `R18n.default_places`.
# File lib/r18n-core.rb, line 122 def available_locales(places = R18n.default_places) R18n::I18n.convert_places(places).map(&:available).flatten.uniq end
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
It also can be used with block:
- R18n.change(locale) { t.language_title }
# File lib/r18n-core.rb, line 97 def change(locale) locale = locale.code if locale.is_a? Locale exists = get ? get.locales.map(&:code) : [] places = get ? get.translation_places : R18n.default_places i18n = R18n::I18n.new([locale] + exists, places) if block_given? old_thread_i18n = thread[:r18n_i18n] thread_set i18n yield thread[:r18n_i18n] = old_thread_i18n end i18n end
Clean translations cache.
# File lib/r18n-core.rb, line 60 def clear_cache! self.cache = {} end
# File lib/r18n-core.rb, line 132 def default_places(&block) if block @default_places = block elsif @default_places.is_a? Proc @default_places.call else @default_places end end
Get I18n
object for current thread.
# File lib/r18n-core.rb, line 55 def get thread[:r18n_i18n] || @i18n end
Localize object. Alias for `R18n.get.l`.
# File lib/r18n-core.rb, line 84 def l(*params) get.l(*params) end
Return Locale
object by locale code. It's shortcut for `R18n::Locale.load(code)`.
# File lib/r18n-core.rb, line 116 def locale(code) R18n::Locale.load(code) end
Delete I18n
object from current thread and global variable.
# File lib/r18n-core.rb, line 65 def reset! thread[:r18n_i18n] = thread[:r18n_setter] = @i18n = @setter = nil clear_cache! end
Set I18n
object globally. You can miss translation `places`, it will be taken from `R18n.default_places`.
# File lib/r18n-core.rb, line 45 def set(i18n, places = R18n.default_places) @i18n = i18n.is_a?(I18n) ? i18n : I18n.new(i18n, places) end
Translate message. Alias for `R18n.get.t`.
# File lib/r18n-core.rb, line 79 def t(*params) get.t(*params) end
Get the current thread.
# File lib/r18n-core.rb, line 74 def thread Thread.current end
Set I18n
object to current thread.
# File lib/r18n-core.rb, line 50 def thread_set(i18n) thread[:r18n_i18n] = i18n end