railsadminteam / rails_admin

RailsAdmin is a Rails engine that provides an easy-to-use interface for managing your data
MIT License
7.88k stars 2.25k forks source link

Error when trying to import or use non-English locale in Flatpickr with Rails Admin 3.1 #3577

Closed dailson-igo closed 1 year ago

dailson-igo commented 1 year ago

Describe the bug The location defined in the config/application.rb file is not supported by flatpickr

Reproduction steps

  1. rails _7.0.4_ new badflatpickr --skip --database=sqlite3
  2. Add in Gemfile: gem "rails_admin", "~>3.1"
  3. bundle install
  4. rails rails_admin:install
  5. Edit package.json to: "build:css": "sass ./app/assets/stylesheets/application.sass.scss:./app/assets/builds/application.css ./app/assets/stylesheets/rails_admin.scss:./app/assets/builds/rails_admin.css --no-source-map --load-path=node_modules"
  6. rails g model Event description:string date_start:date
  7. rails db:migrate
  8. Go to config/application.rb and add the following:
  9. config.i18n.available_locales = [:pt, :en]
  10. config.i18n.default_locale = :pt
  11. rails tmp:clear && yarn build:css
  12. Ignore messagens not translated in UI and open:
  13. http://0.0.0.0:3000/admin/event/new
  14. Flatpickr does not display option to select date

Expected behavior Allow rails locale setting to work in Flatpickr

Additional context

# Error message from Firefox
Error: flatpickr: invalid locale pt
    setupLocale index.js:1408
    init index.js:70
    FlatpickrInstance index.js:1974
    _flatpickr index.js:1991
    flatpickr index.js:2015
    <anonymous> widgets.js:89
    jQuery 2
        each
        each
    <anonymous> widgets.js:89
    triggerDomReady ui.js:143
    dispatch turbo.es2017-esm.js:350
    notifyApplicationAfterRender turbo.es2017-esm.js:3070
    viewRenderedSnapshot turbo.es2017-esm.js:3022
    render turbo.es2017-esm.js:1008

# Error message from debugger
Error: flatpickr: invalid locale pt at setupLocale (https://ga.jspm.io/npm:flatpickr@4.6.13/dist/esm/index.js:1:41468) 
at init (https://ga.jspm.io/npm:flatpickr@4.6.13/dist/esm/index.js:1:10491) 
at FlatpickrInstance (https://ga.jspm.io/npm:flatpickr@4.6.13/dist/esm/index.js:1:54920) 
at _flatpickr (https://ga.jspm.io/npm:flatpickr@4.6.13/dist/esm/index.js:1:55236) 
at flatpickr (https://ga.jspm.io/npm:flatpickr@4.6.13/dist/esm/index.js:1:55741) at HTMLInputElement.<anonymous> (https://ga.jspm.io/npm:rails_admin@3.1.0/src/rails_admin/base.js:1:30716) 
at Function.each (https://ga.jspm.io/npm:jquery@3.6.1/dist/jquery.js:1:3190) 
at jQuery.fn.init.each (https://ga.jspm.io/npm:jquery@3.6.1/dist/jquery.js:1:1511) 
at HTMLDocument.<anonymous> (https://ga.jspm.io/npm:rails_admin@3.1.0/src/rails_admin/base.js:1:30699) 
at HTMLDocument.triggerDomReady (https://ga.jspm.io/npm:rails_admin@3.1.0/src/rails_admin/base.js:1:28660) 
{stack: "Error: flatpickr: invalid locale pt\n at setupLo…ails_admin@3.1.0/src/rails_admin/base.js:1:28660)", 
message: "flatpickr: invalid locale pt"}

Using instructions from https://github.com/railsadminteam/rails_admin/wiki/Translations

  1. Edit file app/javascript/rails_admin.js
  2. Add: import "flatpickr/dist/l10n/pt";
  3. Error message:

Uncaught TypeError: Failed to resolve module specifier "flatpickr/dist/l10n/pt". Relative references must start with either "/", "./", or "../".

We need pt-BR (Brazilian Portuguese), but since it doesn't have it, pt from Portugal should help with Flatpickr Congratulations on your work, your project can revolutionize the way we develop sw. How can I contribute to the Rails Admin 3.1 project?

mshibuya commented 1 year ago

Thanks for reporting. I realized that for Importmap setup an additional step is necessary. Please follow this instruction I've updated and see if it works. https://github.com/railsadminteam/rails_admin/wiki/Translations#for-importmap-setup

dailson-igo commented 1 year ago

Thanks, @mshibuya ! All right now, using importmap and flatpickr with pt locale.