From d9fc7a95e1fc1768e2161cd52eea7b1f52216518 Mon Sep 17 00:00:00 2001 From: Thomas Reynolds Date: Mon, 28 Sep 2015 14:52:16 -0700 Subject: [PATCH] Fix a bad i18n regression --- .../source/localizable/partials/index.html.erb | 4 +++- .../lib/middleman-core/core_extensions/i18n.rb | 18 ++++++++++-------- .../sitemap/extensions/proxies.rb | 5 +++++ .../lib/middleman-core/sitemap/resource.rb | 2 +- 4 files changed, 19 insertions(+), 10 deletions(-) diff --git a/middleman-core/fixtures/i18n-test-app/source/localizable/partials/index.html.erb b/middleman-core/fixtures/i18n-test-app/source/localizable/partials/index.html.erb index 7369572a..26e427ee 100644 --- a/middleman-core/fixtures/i18n-test-app/source/localizable/partials/index.html.erb +++ b/middleman-core/fixtures/i18n-test-app/source/localizable/partials/index.html.erb @@ -1,6 +1,8 @@ +<%= ::I18n.locale %> + Site: <%= partial :site %> Country: <%= partial :country %> Greeting: <%= partial :greeting %> State: <%= partial :state %> Flag: <%= partial "images/flag.svg" %> -President: <%= partial "images/president.svg" %> \ No newline at end of file +President: <%= partial "images/president.svg" %> diff --git a/middleman-core/lib/middleman-core/core_extensions/i18n.rb b/middleman-core/lib/middleman-core/core_extensions/i18n.rb index 3d719e43..3555f398 100644 --- a/middleman-core/lib/middleman-core/core_extensions/i18n.rb +++ b/middleman-core/lib/middleman-core/core_extensions/i18n.rb @@ -50,9 +50,6 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension @maps = {} @mount_at_root = options[:mount_at_root].nil? ? langs.first : options[:mount_at_root] - # Don't output localizable files - app.ignore File.join(options[:templates_dir], '**') - configure_i18n logger.info "== Locales: #{langs.join(', ')} (Default #{@mount_at_root})" @@ -96,7 +93,7 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension # Try /localizable partials_path = File.join(locals_dir, partial_name) - lang_suffix = current_resource.metadata[:locals] && current_resource.metadata[:locals][:lang] + lang_suffix = ::I18n.locale extname = File.extname(partial_name) maybe_static = extname.length > 0 @@ -138,7 +135,7 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension end # If it's a "localizable template" - localizable_folder_resources.map do |resource| + localizable_folder_resources.each do |resource| page_id = File.basename(resource.path, File.extname(resource.path)) langs.each do |lang| # Remove folder name @@ -146,18 +143,23 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension new_resources << build_resource(path, resource.path, page_id, lang) end + resource.ignore! + # This is for backwards compatibility with the old provides_metadata-based code # that used to be in this extension, but I don't know how much sense it makes. - next if resource.options[:lang] + # next if resource.options[:lang] - resource.add_metadata options: { lang: @mount_at_root }, locals: { lang: @mount_at_root } + # $stderr.puts "Defaulting #{resource.path} to #{@mount_at_root}" + # resource.add_metadata options: { lang: @mount_at_root }, locals: { lang: @mount_at_root } end # If it uses file extension localization - file_extension_resources.map do |resource| + file_extension_resources.each do |resource| result = parse_locale_extension(resource.path) ext_lang, path, page_id = result new_resources << build_resource(path, resource.path, page_id, ext_lang) + + resource.ignore! end @lookup = new_resources.each_with_object({}) do |desc, sum| diff --git a/middleman-core/lib/middleman-core/sitemap/extensions/proxies.rb b/middleman-core/lib/middleman-core/sitemap/extensions/proxies.rb index 110d9890..f20f82b8 100644 --- a/middleman-core/lib/middleman-core/sitemap/extensions/proxies.rb +++ b/middleman-core/lib/middleman-core/sitemap/extensions/proxies.rb @@ -141,6 +141,11 @@ module Middleman target_resource.content_type end + + def to_s + "#<#{self.class.to_s} path=#{@path} target=#{@target}>" + end + alias_method :inspect, :to_s end end end diff --git a/middleman-core/lib/middleman-core/sitemap/resource.rb b/middleman-core/lib/middleman-core/sitemap/resource.rb index 4a247cb8..9aa80864 100644 --- a/middleman-core/lib/middleman-core/sitemap/resource.rb +++ b/middleman-core/lib/middleman-core/sitemap/resource.rb @@ -194,7 +194,7 @@ module Middleman end def to_s - "#" + "#<#{self.class.to_s} path=#{@path}>" end alias_method :inspect, :to_s # Ruby 2.0 calls inspect for NoMethodError instead of to_s end