将i18n-active_record
用于多种语言环境。在我的网站上效果很好。
但是我面临的问题是,activeadmin
页中的加载时间太长,当我看到日志时,它会在翻译表上查询每个标签
例如
SELECT COUNT(*) FROM `translations` WHERE `translations`.`locale` = 'en' AND (`key` IN ('activerecord.models.admin') OR `key` LIKE 'activerecord.models.admin.%');
SELECT COUNT(*) FROM `translations` WHERE `translations`.`locale` = 'en' AND (`key` IN ('active_admin.resources.article.new_model') OR `key` LIKE 'active_admin.resources.article.new_model.%');
SELECT COUNT(*) FROM `translations` WHERE `translations`.`locale` = 'en' AND (`key` IN ('formtastic.labels.q.index.title') OR `key` LIKE 'formtastic.labels.q.index.title.%');
SELECT COUNT(*) FROM `translations` WHERE `translations`.`locale` = 'en' AND (`key` IN ('formtastic.labels.q.title') OR `key` LIKE 'formtastic.labels.q.title.%');
由于此原因,管理面板的使用量越来越大,数据库上的负载也越来越大,并且每一列在转换表上都有200多个查询
如何在不使用语言环境的情况下加载activeadmin?
答案 0 :(得分:0)
您应该看看https://guides.rubyonrails.org/i18n.html
遵循有关配置原理的约定,Rails I18n提供了合理的默认转换字符串。需要不同的翻译字符串时,可以覆盖它们。
Rails将config / locales目录中的所有.rb和.yml文件自动添加到翻译加载路径中。
此目录中的默认en.yml语言环境包含一对翻译字符串示例
您需要将翻译存储在应用本身而不是数据库中的YAML文件中。例如,您的第一个翻译是:
# config/locales/en.yml
activerecord:
models:
admin: translation_required_for_this_locale