jekyll-multiple-languages-plugin
jekyll-multiple-languages-plugin copied to clipboard
no implicit conversion of nil into String since 1.8.0
I updated to the latest version of jekyll-multiple-languages-plugin (1.8.0) and now I'm experiencing this error:
$ bundle exec jekyll build --trace
Configuration file: <website-root>/_config.yml
Source: <website-root>
Destination: <website-root>/_site
Incremental build: disabled. Enable with --incremental
Generating...
Building site for language: "de" to: <website-root>/_site
Jekyll Feed: Generating feed for posts
Loading translation from file <website-root>/_i18n/de.yml
Missing i18n key: de:<omitted>
Using translation '' from default language: de
Liquid Exception: no implicit conversion of nil into String in <website-root>/_layouts/default.html
bundler: failed to load command: jekyll (<website-root>/.bundle/ruby/3.0.0/bin/jekyll)
<website-root>/.bundle/ruby/3.0.0/gems/jekyll-multiple-languages-plugin-1.8.0/lib/jekyll-multiple-languages-plugin.rb:632:in `initialize': no implicit conversion of nil into String (TypeError)
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-multiple-languages-plugin-1.8.0/lib/jekyll-multiple-languages-plugin.rb:632:in `initialize'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-multiple-languages-plugin-1.8.0/lib/jekyll-multiple-languages-plugin.rb:649:in `new'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-multiple-languages-plugin-1.8.0/lib/jekyll-multiple-languages-plugin.rb:649:in `translate'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-multiple-languages-plugin-1.8.0/lib/jekyll-multiple-languages-plugin.rb:406:in `render'
from <website-root>/.bundle/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/block_body.rb:103:in `render_node_to_output'
from <website-root>/.bundle/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/block_body.rb:91:in `render'
from <website-root>/.bundle/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/template.rb:208:in `block in render'
from <website-root>/.bundle/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/template.rb:242:in `with_profiling'
from <website-root>/.bundle/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/template.rb:207:in `render'
from <website-root>/.bundle/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/template.rb:220:in `render!'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:39:in `block (3 levels) in render!'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:59:in `measure_counts'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:38:in `block (2 levels) in render!'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:63:in `measure_bytes'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:37:in `block in render!'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:70:in `measure_time'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:36:in `render!'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/inclusion.rb:16:in `render'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/tags/include.rb:208:in `block in render'
from <website-root>/.bundle/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/context.rb:123:in `stack'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/tags/include.rb:206:in `render'
from <website-root>/.bundle/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/block_body.rb:103:in `render_node_to_output'
from <website-root>/.bundle/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/block_body.rb:91:in `render'
from <website-root>/.bundle/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/template.rb:208:in `block in render'
from <website-root>/.bundle/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/template.rb:242:in `with_profiling'
from <website-root>/.bundle/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/template.rb:207:in `render'
from <website-root>/.bundle/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/template.rb:220:in `render!'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:39:in `block (3 levels) in render!'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:59:in `measure_counts'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:38:in `block (2 levels) in render!'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:63:in `measure_bytes'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:37:in `block in render!'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:70:in `measure_time'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:36:in `render!'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/renderer.rb:131:in `render_liquid'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/renderer.rb:194:in `render_layout'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/renderer.rb:163:in `place_in_layouts'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/renderer.rb:93:in `render_document'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/renderer.rb:63:in `run'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/site.rb:547:in `render_regenerated'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/site.rb:532:in `block (2 levels) in render_docs'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/site.rb:531:in `each'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/site.rb:531:in `block in render_docs'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/site.rb:530:in `each_value'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/site.rb:530:in `render_docs'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/site.rb:210:in `render'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/site.rb:80:in `process'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-multiple-languages-plugin-1.8.0/lib/jekyll-multiple-languages-plugin.rb:185:in `block in process'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-multiple-languages-plugin-1.8.0/lib/jekyll-multiple-languages-plugin.rb:171:in `each'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-multiple-languages-plugin-1.8.0/lib/jekyll-multiple-languages-plugin.rb:171:in `process'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/command.rb:28:in `process_site'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/commands/build.rb:65:in `build'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/commands/build.rb:36:in `process'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/command.rb:91:in `block in process_with_graceful_fail'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/command.rb:91:in `each'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/command.rb:91:in `process_with_graceful_fail'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/lib/jekyll/commands/build.rb:18:in `block (2 levels) in init_with_program'
from <website-root>/.bundle/ruby/3.0.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `block in execute'
from <website-root>/.bundle/ruby/3.0.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `each'
from <website-root>/.bundle/ruby/3.0.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `execute'
from <website-root>/.bundle/ruby/3.0.0/gems/mercenary-0.4.0/lib/mercenary/program.rb:44:in `go'
from <website-root>/.bundle/ruby/3.0.0/gems/mercenary-0.4.0/lib/mercenary.rb:21:in `program'
from <website-root>/.bundle/ruby/3.0.0/gems/jekyll-4.2.1/exe/jekyll:15:in `<top (required)>'
from <website-root>/.bundle/ruby/3.0.0/bin/jekyll:25:in `load'
from <website-root>/.bundle/ruby/3.0.0/bin/jekyll:25:in `<top (required)>'
from /usr/lib/ruby/gems/3.0.0/gems/bundler-2.2.26/lib/bundler/cli/exec.rb:58:in `load'
from /usr/lib/ruby/gems/3.0.0/gems/bundler-2.2.26/lib/bundler/cli/exec.rb:58:in `kernel_load'
from /usr/lib/ruby/gems/3.0.0/gems/bundler-2.2.26/lib/bundler/cli/exec.rb:23:in `run'
from /usr/lib/ruby/gems/3.0.0/gems/bundler-2.2.26/lib/bundler/cli.rb:477:in `exec'
from /usr/lib/ruby/gems/3.0.0/gems/bundler-2.2.26/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
from /usr/lib/ruby/gems/3.0.0/gems/bundler-2.2.26/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
from /usr/lib/ruby/gems/3.0.0/gems/bundler-2.2.26/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
from /usr/lib/ruby/gems/3.0.0/gems/bundler-2.2.26/lib/bundler/cli.rb:31:in `dispatch'
from /usr/lib/ruby/gems/3.0.0/gems/bundler-2.2.26/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
from /usr/lib/ruby/gems/3.0.0/gems/bundler-2.2.26/lib/bundler/cli.rb:25:in `start'
from /usr/lib/ruby/gems/3.0.0/gems/bundler-2.2.26/exe/bundle:49:in `block in <top (required)>'
from /usr/lib/ruby/gems/3.0.0/gems/bundler-2.2.26/lib/bundler/friendly_errors.rb:128:in `with_friendly_errors'
from /usr/lib/ruby/gems/3.0.0/gems/bundler-2.2.26/exe/bundle:37:in `<top (required)>'
from /usr/bin/bundle:23:in `load'
from /usr/bin/bundle:23:in `<main>'
$ bundle exec jekyll --version
jekyll 4.2.1
Unfortunately I don't know anything about ruby to debug this issue...
Downgrading to 1.7.0 fixes this issue for me (gem 'jekyll-multiple-languages-plugin', "<1.8.0"
in Gemfile).
Same problem here. Thanks for the workaround @sedrubal!
Same issue here
In my case, it's obviously related to jekyll paginate v2
. Because when generating "Page 2
", this plugin thinks that there is a empty string.
Version 1.7.0 works.
Downgrading to 1.7.0 fixes this issue for me (gem 'jekyll-multiple-languages-plugin', "<1.8.0" in Gemfile).
Thanks a lot for the quick-solution!
Missing i18n key: de:<omitted>
Using translation '' from default language: de
Liquid Exception: no implicit conversion of nil into String in
This message is what you see when a string is missing from the default language. There is no check to see if the lookup from the default language (which could be the same as the current language) gives nil. This should probably display a warning that there is no translation but not crash or give a cryptic error message like this.