Originariamente inviato da daniele_dll
considera che internamente, php, non è UTF8, di conseguenza quel carattere che leggi tu, magari, nella sua composizione, contiene un valore corrispondente alla chiusura di un apice o magari al dollaro e cosi via con il risultato che php rimbambisce

Se vuoi un consiglio, o metti questi dati in un file esterno e li fai leggere, o li metti nel database e li leggi da li

Ovviamente la mia è solo un ipotesi, per potrebbe essere

Prova ad aprire il file e guardarlo con un editor esadecimale ... cosi vedi i singoli caratteri in formato ansi e capisci quale e dove potrebbe essere il problema più facilmente
grazie daniele_dll

si, allora i termini da tradurre sono davvero troppi affinchè nn abbia pars error ogni volta (taduzione di un sito con molti contenuti).

A questo punto, si potrebbe fare una eccezzione allo switch, per la lingua russa, facendogli aprire un file di testo, come suggerisci giustamente. in pratica per le altre lingue (italiano, tedesco e inglese), mantengono lo swich, per il russo un if?

come potrei strutturare il codice? se gli dico di aprire un file txt, deve avere utf-8?