* chore: update to ruby 3.1.3
* chore: ping docker version to alpine3.16 for nodev16.x
Starting with Node 17, nodejs switched to OpenSSL3. The docker builds
are installing node18.xx with alpine-3.1.3.
From Node.js 17's announcement post:
If you hit an ERR_OSSL_EVP_UNSUPPORTED error in your application
with Node.js 17, it’s likely that your application or a module you’re
using is attempting to use an algorithm or key size which is no longer
allowed by default with OpenSSL 3.0. A new command-line option,
--openssl-legacy-provider, has been added to revert to the legacy
provider as a temporary workaround for these tightened restrictions.
Looks like a webpack issue. This is fixed in webpacl 5+ and we are on
webpack4 at the moment.
Solutions
Upgrade webpack.
Pin nodejs version to be 16.x.x
Use --openssl-legacy-provider as a workaround.
Pin docker version to alpine3.16 branch to have node16.x by default
ref:
https://github.com/chatwoot/chatwoot/pull/5555#issuecomment-1379778532
* chore: update webmock
* chore: fix ruby gem path in dockerfile
* chore: switch to node16 in circleci
* chore: update ruby version in linux installer script
* chore: update ruby version in linux installer script
* chore: fix circleci
* chore: fix circleci
* feat: upgrade node version to 16.x in linux installer
* chore: update systemd files
Co-authored-by: Sojan Jose <sojan@chatwoot.com>
43 lines
1.2 KiB
Ruby
43 lines
1.2 KiB
Ruby
module SwitchLocale
|
|
extend ActiveSupport::Concern
|
|
|
|
private
|
|
|
|
def switch_locale(&)
|
|
# priority is for locale set in query string (mostly for widget/from js sdk)
|
|
locale ||= locale_from_params
|
|
# if locale is not set in account, let's use DEFAULT_LOCALE env variable
|
|
locale ||= locale_from_env_variable
|
|
set_locale(locale, &)
|
|
end
|
|
|
|
def switch_locale_using_account_locale(&)
|
|
locale = locale_from_account(@current_account)
|
|
set_locale(locale, &)
|
|
end
|
|
|
|
def set_locale(locale, &)
|
|
# if locale is empty, use default_locale
|
|
locale ||= I18n.default_locale
|
|
# Ensure locale won't bleed into other requests
|
|
# https://guides.rubyonrails.org/i18n.html#managing-the-locale-across-requests
|
|
I18n.with_locale(locale, &)
|
|
end
|
|
|
|
def locale_from_params
|
|
I18n.available_locales.map(&:to_s).include?(params[:locale]) ? params[:locale] : nil
|
|
end
|
|
|
|
def locale_from_account(account)
|
|
return unless account
|
|
|
|
I18n.available_locales.map(&:to_s).include?(account.locale) ? account.locale : nil
|
|
end
|
|
|
|
def locale_from_env_variable
|
|
return unless ENV.fetch('DEFAULT_LOCALE', nil)
|
|
|
|
I18n.available_locales.map(&:to_s).include?(ENV.fetch('DEFAULT_LOCALE')) ? ENV.fetch('DEFAULT_LOCALE') : nil
|
|
end
|
|
end
|