class Middleman::CoreExtensions::Internationalization
def build_resource(path, source_path, page_id, locale)
def build_resource(path, source_path, page_id, locale) old_locale = ::I18n.locale ::I18n.locale = locale localized_page_id = ::I18n.t("paths.#{page_id}", default: page_id, fallback: []) partially_localized_path = '' File.dirname(path).split('/').each do |path_sub| next if path_sub == '' partially_localized_path = "#{partially_localized_path}/#{(::I18n.t("paths.#{path_sub}", default: path_sub).to_s)}" end path = "#{partially_localized_path}/#{File.basename(path)}" prefix = if (options[:mount_at_root] == locale) || (options[:mount_at_root].nil? && locales[0] == locale) '/' else replacement = options[:locale_map].fetch(locale, locale) options[:path].sub(':locale', replacement.to_s).sub(':lang', replacement.to_s) # Backward compat end # path needs to be changed if file has a localizable extension. (options[mount_at_root] == locale) path = ::Middleman::Util.normalize_path( File.join(prefix, path.sub(page_id, localized_page_id)) ) path = path.sub(options[:templates_dir] + '/', '') ::I18n.locale = old_locale LocalizedPageDescriptor.new(path, source_path, locale) end