-
-
Notifications
You must be signed in to change notification settings - Fork 719
/
i18n_config.rb
34 lines (29 loc) · 1.01 KB
/
i18n_config.rb
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
# frozen_string_literal: true
module OpenFoodNetwork
# Provides access to the language settings.
# Currently, language settings are read from the environment.
# See: .env[.*] files.
class I18nConfig
# Users don't need to select the already selected locale.
def self.locale_options
selectable_locales - [I18n.locale.to_s]
end
# Locales that can be selected by users.
def self.selectable_locales
ENV["AVAILABLE_LOCALES"]&.split(/[\s,]+/) || []
end
# All locales that can be accessed by the application, including fallbacks.
def self.available_locales
(selectable_locales + [default_locale, source_locale]).uniq
end
# The default locale that is used when the user doesn't have a preference.
def self.default_locale
ENV["LOCALE"] || ENV["I18N_LOCALE"] || source_locale
end
# This locale is changed with the code and should always be complete.
# All translations are done from this locale.
def self.source_locale
"en"
end
end
end