Localisation and WordPress

WordPress has no ability to switch language based on URL or query string parameter. In fact it does no dynamic language switching at all. Wherever you’ve seen this working, it would have been using a plugin.

You say you don’t want to use a plugin, which means you’ll have to write all the switching logic yourself. It’s possible using the locale filter, but I’d recommend you look for a plugin to do this for you.

Alternatively set up WordPress multisite with a site for Italian and a site for English. You can use your directory paths like /it/ for this.

As a side point – be careful with locale codes. gb_UK is not valid. British English would be en_GB. (language_REGION)