Ich denke, der beste Ansatz für Sprachanpassungen ist nicht der Include-Weg, sondern das Einlesen der Meldungen beim Start des Skriptes.
Die Meldungen können dann in einer einfachen Testdatei gespeichert sein und damit zu jeder Zeit angepasst werden.
Damit entfallen dann auch die Verzeichnisprobleme.
Ich persönlich würde die Sprachdateien so speichern:
Zur Laufzeit würde ich die Existenz der Datei prüfen, und ggf., wenn nicht vorhanden, eine Standardsprache verwenden.
Die Meldungsdatei könnte z. B. so aussehen:
Solche eine Datei kann zeilenweise eingelesen, bei ";" gesplittet und in ein Meldungsobjekt gespeichert werden.
Ein Vorteil des Verfahrens wäre es, dass Anwender oder Vertreiber des Skriptes die Meldungen leicht in der gewünschten Sprache ergänzen können.