Ich würde gerne eine Abfrage erstellen, die mir aus language_phrases_cache alle Datensätze anzeigt, die mit language_id=2 vorhanden sind, aber nicht mit language_id=1 Hintergrund: Sprachdateien zu pflegen ist nicht ganz einfach, weil man nicht mitbekommt wenn neue Konstanten eingepflegt werden. Damit würde man zumindest die fehlenden Konstanten aufspüren können. Selbst in der aktuellen Honeygrid-Version gibt es im Sprachcache mehrere Hundert Konstanten weniger mit language_id= 1 als mit language_id=2.
Das wird wohl nicht viel bringen. Christian wie viele Sprachen hast du denn? Vielleicht kommst du hiermit weiter, wenn du 2 Sprachen hast: Code: SELECT *, COUNT(*) c FROM language_phrases_cache GROUP BY phrase_name HAVING c < 2 Das dürfte dir die Phrases anzeigen, für die es weniger als 2 language Einträge gibt.
Das Zeigt mir alle Datensätze an mit language_id=2. Das ist aber nicht das was ich will. Ich will dass mir alle Datensätze für language_id=2 angezeigt werden für die es keine Sprachvariablen mit language_id=1 gibt.
... oder was Verschachteltes? Ungeprüft: Code: SELECT phrase_name from language_phrases_cache where language_id = 1 and phrase_name not in (select phrase_name from language_phrases_cache where language_id =2)
Ach so dann umgekehrt: Code: SELECT phrase_name from language_phrases_cache where language_id = 2 and phrase_name not in (select phrase_name from language_phrases_cache where language_id =1)
Code: SELECT * FROM language_phrases_cache WHERE language_id != 1 oder habe dich noch immer nicht ganz verstanden
Das sieht schon schön aus, einen Teil könnte man damit wenigstens erschlagen. Ich habe 3 Sprachen. Englisch, Deutsch und Französisch. Mir geht es in der Hauptsache um Französisch, aber ich habe dabei festgestellt daß im Shop auch sehr viele Englische Konstanten fehlen. Ich möchte gerne ein Tool haben, mit dem man übersichtlich (!) die Konstanten in allen Sprachen bearbeiten kann und dabei gerade die fehlenden Konstanten identifizieren kann. Das Highlight wäre dann, wenn man aus dem Sprachcache die Sprachdateien neu erzeugen könnte, um dann saubere Sprachdateien zu haben. Aber das wäre der letzte Schrit.
Ihr habt Euch scheinbar beide noch nicht wirklich die Tabelle angeschaut. Eindeutig ist eine Sprachvariable nur in Kombination von section_name und phrase_name. Dazu kommt die language_id.
Ich hab sie mir angeschaut. Was passt bei mir nicht? Es werden alle phrase_names angezeigt, für die es in Englisch einen Eintrag gibt, aber in deutsch nicht. So wolltest du es!
Ich hab's umgestellt und es funktioniert tatsächlich. Danke! Es fehlen in meinem französischen Modul nur 1,2% er Konstanten und die meisten davon gehören ins Backend und müssen nicht unbedingt übersetzt werden. Im Originalen Englischen fehlen übrigens doppelt so viele...
Ich würde noch dies in den Ring werfen: Code: SELECT l1.*, l2.* FROM `language_phrases_cache` l1 left outer join language_phrases_cache l2 on l1.language_id = 2 and l2.language_id = 1 and l1.phrase_name = l2.phrase_name and l1.section_name = l2.section_name WHERE l1.language_id = 2 and l2.language_id is null