Salut.
Perso je ne fait rien avec les routes, je fonctionne avec les sessions et la base de données. Après expliquer comment faire un système d'internationalisation, va prendre un peut de temps, car ça demande de faire pas mal de petit trucs. Mais je vais essayer.
Déjà, je vais me basé sur un projet perso qui intègre ce système et qui est open-source, ça va faliciter l'expliquation et pour toi, la compréhension.
Le projet : https://github.com/Xety/Xeta
Il faut déjà commencer par la configuration que tu trouveras ici, cette configuration va nous servir pour faire un menu avec les langues disponibles, comme ceci :

Puis, comme tu peux le voir dans ce code, j'ai une route nommé set-lang, cette route sert tout simplement à switcher de language, tu trouveras le code de la route ici elle prend un param :lang qui défini la nouvelle langue à utiliser par défaut.
Maintenant, il faut qu'on définisse l'action dans le controller Page (ou un autre comme tu veux) :
Oui c'est bizarre mais je ne fait strictement rien dans action mis à part le rediriger sur la page où il étais avant. Je pense que tu te pose la question de comment je switch de langue alors? ^^
Voici la réponse, en faite j'ai une classe uniquement réservé pour ça, et cette classe est appelé à chaque requête sur le site., Donc pour l'appeler à chaque requête, il faut la définir dans l'AppController, comme ceci. Maintenant, voici la classe en question , c'est elle qui fait toute la logique de switch de la langue. Elle est assez bien documenté, mais j'utilise aussi la base de données en plus des cookies c'est pour cella qu'elle est assez "grosse". Avec juste un système de cookie, il y a moyen de faire bien plus simple.
Une dernière chose, Cake3 intègre un middleware par défaut qui te permet de sélectionner la langue automatiquement par rapport au header du client et qui est définit dans l'Appplication.php ici.
Et pour finir, il faut bien sûr que tu utilises les fonctions d'internationalisation dans ton code comme __(), __d(), __x() et j'en passe. Tu trouveras toutes ces fonctions sur la doc de Cake dans la rubrique Internationalisation. Et après il faut que tu extrais ces phrase avec la console de Cake, tu trouveras de la doc sur çaici. Et pour finir, il faut traduire ces fichiers, et pour cela, tu as le magnifique POEdit.
Voilà, tu as tout se qu'il te faut pour faire un beau système d'internationalisation pour ton site.