function(foreachTest result list_var_1 list_var_2 list_var_3)
    set(_options MUTE)
    set(_one_value_args)
    set(_multi_value_args)
    cmake_parse_arguments(PARSE_ARGV 3 _arg "${_options}" "${_one_value_args}" "${_multi_value_args}")

    set(_has_any_output FALSE)
    list(APPEND CMAKE_MESSAGE_INDENT "| ")
    foreach(first second third IN ZIP_LISTS ${list_var_1} ${list_var_2} ${list_var_3})
        if(NOT first)
            set(first "[undefiend]")
        endif()
        if(NOT second)
            set(second "[undefiend]")
        endif()
        if(NOT third)
            set(third "[undefiend]")
        endif()
        if(NOT _arg_MUTE)
            message(STATUS "${first}, ${second}, ${third}")
        endif()
        set(_has_any_output TRUE)
    endforeach()
    set(${result} ${_has_any_output} PARENT_SCOPE)
endfunction()

function(foreachTestDecorated list_var_1 list_var_2 list_var_3)
    list(APPEND CMAKE_MESSAGE_INDENT "  ")
    message(STATUS "Begin output")
    foreachTest(_has_any_output ${list_var_1} ${list_var_2} ${list_var_3})
    if(NOT _has_any_output)
        message(STATUS "--> empty-output <--")
    endif()
    message(STATUS "End output")
endfunction()

list(APPEND english one two three)
list(APPEND bahasa satu dua tiga)
list(APPEND russian raz dva tri)

message(STATUS "foreach(... IN ZIP_LISTS):")
foreachTestDecorated(english bahasa russian)
