Overview of the issue
On the WPML → Languages page, if you have set the Language URL format to Language name added as a parameter, the secondary language pages might not get cached. This happens because some page caching plugins won’t cache pages if there is a URL argument.
In some caching plugins, it’s easy to resolve this issue. You have to make sure that the caching plugin is set to cache URL queries.
For example, if you’re using the Hummingbird caching plugin, go to the Hummingbird → Caching page. There, under the Setting section, enable the Cache URL queries option.