Module: Undercarriage::Controllers::LocaleConcern
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/undercarriage/controllers/locale_concern.rb
Overview
Identify locale for translations
Identify locale based on ‘HTTP_ACCEPT_LANGUAGE`. Browser preferred language is passed with the request as `en-US, en;q=0.9` where `en-US` (English with US dialect) is the preferred language with `en` (generic English) as an acceptable language.
When preferred language cannot be identified or no translation is available, fall back to ‘I18n.default_locale` (typically `en`).
Usage
class ExamplesController < ApplicationController
include Undercarriage::Controllers::LocaleConcern
end
Instance Method Summary collapse
-
#html_dir ⇒ Object
Text direction.
-
#html_lang ⇒ Object
Lang.
Instance Method Details
#html_dir ⇒ Object
Text direction
Helper for Views to return text direction based on locale. Display text left-to-right for all languages but a few languages which should display as right-to-left. Returns ‘rtl` for the following languages:
-
Arabic
-
Aramaic
-
Azeri
-
Divehi
-
Hebrew
-
Persian/Farsi
-
Urdu
Usage
<html dir="<%= html_dir %>"> #=> <html dir="ltr">
<html dir="<%= html_dir %>"> #=> <html dir="rtl">
61 62 63 64 65 |
# File 'lib/undercarriage/controllers/locale_concern.rb', line 61 def html_dir rtl_languages = %w[am ar az dv fa he ur] html_lang.start_with?(*rtl_languages) ? 'rtl' : 'ltr' end |
#html_lang ⇒ Object
Lang
Helper for Views to return the identified language.
Usage
<html lang="<%= html_lang %>"> #=> '<html lang="de">'
<html lang="<%= html_lang %>"> #=> '<html lang="de-at">'
39 40 41 |
# File 'lib/undercarriage/controllers/locale_concern.rb', line 39 def html_lang I18n.locale.to_s end |