despite being a “standard”, its the most horrible choice. as soon as you get into more intense work, it fails HARD. with “intense work” we mean a site with about 4000 - 5000 pages PER LANGUAGE.
Its not their fault per se, because one cannot easily just drop backwards compatiblity and everything, but the code itself is pure dungeons of doom nightmarish.
Whats worked best so far is PolyLang. Its kind of the one plugin you just drop in, change a few settings, and it works rock-solid, no matter what you throw at it, whether it’d be small sites or batshit crazy ones with a multitude of plugins, WooCommerce in ultra-customized mode (including 2000+ products), and external API bindings. Their WooCommerce integration / add-on has been flawless so far, too.
There are obviously similar plugins like this, but PolyLang is the one out of the grabbag of 20 - 30ish ones that has been the one with the least complains - both from a developer and adminstrative / user point of view.
Other option is multisite (with or without MLP), but that has its downsides as well - not really recommended for smaller sites.
Guess I finally gotta do a write-up of all the options for i18n / l10n soon - this issue is coming up more and more, and everyone just blurts how fancy and cool WPML is (which it is decidedly NOT). Maybe as an interim thing to work on while I’m still preparing the WooCommerce fork