如何本地化Devise框架中的remember_me字段?
解决Devise中Remember Me复选框的本地化问题
嘿,我来帮你搞定这个Devise的remember_me标签本地化问题!其实有几种简单的方法可以实现,我给你一一说明:
方法1:通过Devise本地化文件(最规范的方式)
Devise本身支持I18n本地化,你只需要在俄语的本地化配置文件里添加对应的key即可:
- 找到或创建
config/locales/ru.yml文件 - 在文件中添加以下内容:
ru: devise: remember_me: "Запомнить меня"
保存后重启服务器,复选框的标签就会自动变成你想要的俄语文本了。
如果上面的key不生效(可能是因为你用了SimpleForm,它的本地化优先级不同),可以试试添加SimpleForm的专属key:
ru: simple_form: labels: user: # 这里替换成你的Devise模型名,比如User/Admin remember_me: "Запомнить меня"
方法2:直接在视图中手动指定标签
如果不想折腾本地化文件,最直接的方式就是在input调用时直接指定label参数:
<%= f.input :remember_me, as: :boolean, label: "Запомнить меня" if devise_mapping.rememberable? %>
这样修改后,无需重启就能看到效果,适合快速测试或者局部修改的场景。
方法3:自定义Devise视图文件
如果以后还要修改更多Devise的视图内容,生成自定义视图是更长期的方案:
- 运行以下命令生成Devise的所有视图文件:
rails generate devise:views
- 找到生成的视图文件
app/views/devise/sessions/new.html.erb - 在文件中找到对应的remember_me复选框代码,直接修改label文本即可。
内容的提问来源于stack exchange,提问作者Vitalii
相关产品推荐
相关产品推荐

