diff --git a/_contrib/updatetx.rb b/_contrib/updatetx.rb index 14462cbae6..1c8c93f6fd 100755 --- a/_contrib/updatetx.rb +++ b/_contrib/updatetx.rb @@ -28,11 +28,11 @@ def prompt(*args) next if file == '.' or file == '..' contents = File.read(dir + '/' + file) # Drop HTML code applied to current language only ( until next {% when / else / endcase %} statement ) - contents.gsub!(Regexp.new("{% when '" + lang + "' %}((?!.*?{% endcase %})(?!.*?{% else %}).)*?{% when", Regexp::MULTILINE),'{% when') - contents.gsub!(Regexp.new("{% when '" + lang + "' %}((?!.*?{% endcase %}).)*?{% else %}", Regexp::MULTILINE),'{% else %}') + contents.gsub!(Regexp.new("{% when '" + lang + "' %}((?!{% endcase %})(?!.*?{% else %}).)*?{% when", Regexp::MULTILINE),'{% when') + contents.gsub!(Regexp.new("{% when '" + lang + "' %}((?!{% endcase %}).)*?{% else %}", Regexp::MULTILINE),'{% else %}') contents.gsub!(Regexp.new("{% when '" + lang + "' %}.*?{% endcase %}", Regexp::MULTILINE),'{% endcase %}') # Drop complete {% case / endcase %} statements when not used by any language anymore - contents.gsub!(Regexp.new("{% case page.lang %}(((?!{% when ).)*?){% else %}(.*?){% endcase %}", Regexp::MULTILINE),'\1 \3') + contents.gsub!(Regexp.new("{% case page.lang %}(((?!{% endcase %})(?!{% when ).)*?){% else %}(.*?){% endcase %}", Regexp::MULTILINE),'\1 \3') contents.gsub!(Regexp.new("{% case page.lang %}(((?!{% when ).)*?){% endcase %}", Regexp::MULTILINE),'\1') # Drop language in statements applied to many languages ( e.g. {% when 'ar' or 'fr' .. %} ) contents.gsub!(Regexp.new("{% when '" + lang + "' or (.*?) %}"),'{% when \1 %}')