Die Frage ist, ob Du damit wirklich weiterkommst. Man unterscheidet zwischen Internationalisierung und Lokalisierung.
Internationalisierung ist Schritt 1, da wird der Code so aufbereitet, dass er lokalisierbar ist. Es ist ja oftmals nicht nur mit den Echos getan. Was ist mit kulturspezifischen Dingen, was mit der Interpretation von Eingaben. Sowas darf nicht hardcoded sein.
Lokalisierung ist dann die Bereitstellung von speziellen Ressourcen für eine konkrete Region/Sprache (en-UK, de-CH...).
Du beabsichtigst, eine Lokalisierung durchzuführen, ohne vorher eine Internationalisierung durchgeführt zu haben. Kann man in einfachen Fällen machen...
Deine ECHOs sind in irgendeiner Sprache formuliert. Du willst den Text aus Sprache X automatisch auf die Übersetzung in Sprache Y mappen. Ein MD5 Hash als Ressourcen-ID ist eine Möglichkeit. Risiko ist, dass zwei Texte den gleichen Hash bekommen, aber das merkst Du beim Übersetzen und kannst dann in einen der beiden Texte eine kleine Änderung hineinpfuschen
Ich würde es aber lassen. Du musst ohnehin alle Texte heraussuchen und Übersetzungen bereitstellen. Es ist dann nicht SOO viel Arbeit, die Echos durch eine eigene Funktion localEcho zu ersetzen (siehe Clean Code Diskussion: myEcho ist ein schlechter Name) und ihr dann die Ressourcen-ID zu übergeben. Die ID kann ein String sein, der halbwegs sprechend ist, aber knapp und knackig formuliert. Ich finde es nicht so schlau, den Klartext irgendeiner Sprache als ID zu verwenden.
Rolf