Once someone learns basic concepts, such as if..then..else, loops, pointers, and recursion for example, many programming language skills come down to syntax, libraries, and debugging. I jumped from programming COBOL for 15 years to C, C++, and Java without any issues, so I'd guess that someone who is a decent developer to begin with shouldn't have too much of a problem shifting gears to most other languages. I've also worked in a smattering of other languages (PL/I, FORTRAN) and far too many '3rd generation' tools. I even once modified code for a proprietary language I didn't even have a manual for.
Logic, pointer theory, and spatial relationships are probably the hardest things for anyone to understand. Those that can comprehend basic logic constructs and are able to 'see' code in their head can probably easily shift from language to language with ease. Those that struggle with any language probably will have a difficult time picking up new ones.
I think the biggest deterrent to learning new languages today isn't syntax or how the language works, it's the libraries and associated debugging skills. I had far more trouble learning C, C++, and Java libraries than I did learning the actual language. Modern IDEs make it a bit easier with predictive typing and on-screen syntax checking. But trying to figure out how to read a file or output to the screen can be extremely difficult in some languages because of all the possible options with all of the different libraries. Fortunately, anyone skilled in Google can usually find code examples rather quickly.
And then there is debugging, which I think is still an art. Many years (decades??) ago, I had a developer come to me with a persistent bug he couldn't fix. After he explained it to me, he started to show me the code. I stopped him, and told him to go look at a specific part of the program, he was missing a period. He thought I was pulling his leg, but left and came back shortly and asked how I knew what the problem was without even looking at the code. I remember saying to him 'Scott .. the only difference between you and me is I've already made that mistake several times'. Debugging, like libraries, in any language takes significant experience to get good at.