Skip to content
代码片段 群组 项目
提交 b16601e2 编辑于 作者: Alper Akgun's avatar Alper Akgun
浏览文件

Merge branch 'revert-305827ad' into 'master'

Revert !129651 from master

Closes gitlab-com/gl-infra/production#16260

See merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/130340



Merged-by: default avatarAlper Akgun <aakgun@gitlab.com>
Approved-by: default avatarAlper Akgun <aakgun@gitlab.com>
Co-authored-by: default avatarMayra Cabrera <mcabrera@gitlab.com>
No related branches found
No related tags found
无相关合并请求
......@@ -2,8 +2,6 @@
module PreferredLanguageSwitcher
extend ActiveSupport::Concern
include Gitlab::Utils::StrongMemoize
include PreferredLanguageSwitcherHelper
private
......@@ -13,36 +11,8 @@ def init_preferred_language
def preferred_language
cookies[:preferred_language].presence_in(Gitlab::I18n.available_locales) ||
selectable_language(marketing_site_language) ||
selectable_language(browser_languages) ||
Gitlab::CurrentSettings.default_preferred_language
end
def selectable_language(language_options)
language_options.find { |lan| ordered_selectable_locales_codes.include?(lan) }
end
def browser_languages
http_language_header = request.env['HTTP_ACCEPT_LANGUAGE']
return [] unless http_language_header
http_language_header.tr!('-', '_').split(%r{[;,]}).reject { |str| str.start_with?('q') }
end
strong_memoize_attr :browser_languages
def marketing_site_language
return [] unless params[:glm_source]
locale = params[:glm_source].scan(%r{(\w{2})-(\w{2})/}).flatten
return [] if locale.empty?
[locale[0], "#{locale[0]}_#{locale[1]}"]
end
def ordered_selectable_locales_codes
ordered_selectable_locales.map { |locale| locale[:value] } # rubocop:disable Rails/Pluck
end
end
PreferredLanguageSwitcher.prepend_mod
......@@ -14,52 +14,13 @@ def new
end
context 'when first visit' do
let(:glm_source) { 'about.gitlab.com' }
let(:accept_language_header) { nil }
before do
request.env['HTTP_ACCEPT_LANGUAGE'] = accept_language_header.dup
get :new, params: { glm_source: glm_source }
get :new
end
it 'sets preferred_language to default' do
expect(cookies[:preferred_language]).to eq Gitlab::CurrentSettings.default_preferred_language
end
context 'when language param is valid' do
let(:glm_source) { 'about.gitlab.com/fr-fr/' }
it 'sets preferred_language accordingly' do
expect(cookies[:preferred_language]).to eq 'fr'
end
context 'when language param is invalid' do
let(:glm_source) { 'about.gitlab.com/ko-ko/' }
it 'sets preferred_language to default' do
expect(cookies[:preferred_language]).to eq Gitlab::CurrentSettings.default_preferred_language
end
end
end
context 'when browser preferred language is not english' do
context 'with selectable language' do
let(:accept_language_header) { 'zh-CN,zh;q=0.8,zh-TW;q=0.7' }
it 'sets preferred_language accordingly' do
expect(cookies[:preferred_language]).to eq 'zh_CN'
end
end
context 'with unselectable language' do
let(:accept_language_header) { 'nl-NL;q=0.8' }
it 'sets preferred_language to default' do
expect(cookies[:preferred_language]).to eq Gitlab::CurrentSettings.default_preferred_language
end
end
end
end
context 'when preferred language in cookies has been modified' do
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册