Wie programmiert man einen Übersetzer?
Es geht um eine Webseite, in die über eine. API von Openweathermap Wetterdaten eingebunden werden.
Die API liefert z.B. einen Sting mit dem Inhalt "broken clouds"
Diesen String möchte ich ins Deutsche oder sonst in eine andere Sprache über setzen.
Die anderssprachigen Wetterbeschreibungen sollen aus Konstanten gelesen werden die in einer inkludierten Datei definiert werden.
Die Frage ist jetzt: Wie komme ich dahin, dass in Abhängigkeit vom Inhalt der Variablen, die die englische Wetterbeschreibung enthält, die die richtige Konstante mit der entsprechenden Übersetzung verwendet wird.
4 Antworten
Das ist eine wunderbare Aufgabe für eine Datenbank. Du trägst in eine Spalte als "Schlüssel" diesen String ein und in weiteren Spalten, dann jeweils die Übersetzung in einer bestimmten Sprache. Diese Übersetzungen müsstest du dann natürlich manuell erstellen. Der Umfang sollte sich in deinem Fall aber in Grenzen halten.
Hier findest du alle Strings: https://openweathermap.org/weather-conditions
Vielen Dank da ich in dem Projekt eh schon MySQL setze ist die Datenbank Lösung keine schlechte Idee.
Mit dem Link hast Du ganz nebenbei auch eines meiner anderen Probleme gelöst, denn ein Klick auf die angezeigte Temperatur soll eine erweiterte Ansicht mit Icons anzeigen.
Also ich hätte da mal schnell zwei Methoden(beide Php) du setzt den String in eine Variable und fragst mit einer einfachen if(){}else{} Schleife ab welches Wort es ist:
$word = "day";
if($word == "night"){
$word = "Nacht";
}else{
if($word == "day"){
$word = "Tag";
}else{
...
}
}
Oder du machst es mit einer Datenbankabfrage in der du 3 Spalten für ip, de und en machst und es mit SELECT nachfragst
Entweder du machst es von dir selber aus, also für jede Möglichkeit selber übersetzten oder du nutzt die offene Google Translate funktion
Wenn es immer der gleiche string ist, kannst du es versuchen den string vom englisschen ins deutsche zu ersetzen. Sorry hab nicht so viel am hals mit php, aber eine replclace funktion oder if abfrage wirds da doch sicherlich geben. Vielleicht gibts auch ne api von google.