gpt4 book ai didi

url - 如何从 Sinatra 中的 URL 检测语言

转载 作者:行者123 更新时间:2023-12-01 09:09:16 24 4
gpt4 key购买 nike

我有一个多语言网站,我将语言放在 URL 中,例如 domain.com/en/。当用户没有在 URL 中输入语言时,我想将他重定向到主要语言的页面,例如“domain.com/posts”到“domain.com/en/posts”。使用 Sinatra 有没有简单的方法来做到这一点?

我有一百多条路线。所以对每条路线都这样做并不是一个很好的选择。

get "/:locale/posts" do... end

get "/posts" do... end

有人可以帮我吗?

谢谢

最佳答案

使用前置过滤器,有点像这样:

set :locales, %w[en sv de]
set :default_locale, 'en'
set :locale_pattern, /^\/?(#{Regexp.union(settings.locals)})(\/.+)$/

helpers do
def locale
@locale || settings.default_locale
end
end

before do
@locale, request.path_info = $1, $2 if request.path_info =~ settings.locale_pattern
end

get '/example' do
case locale
when 'en' then 'Hello my friend!'
when 'de' then 'Hallo mein Freund!'
when 'sv' then 'Hallå min vän!'
else '???'
end
end

随着即将发布的 Sinatra,您将能够做到这一点:

before('/:locale/*') { @locale = params[:locale] }

关于url - 如何从 Sinatra 中的 URL 检测语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3104658/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com