Projekt

Allgemein

Profil

Aktionen

GX-Bug #66424

geschlossen

Fallback für individuelle Sprachen

Von Timo Backhaus vor etwa 4 Jahren hinzugefügt. Vor fast 4 Jahren aktualisiert.

Status:
Erledigt
Priorität:
Hoch
Zugewiesen an:
Alexandre Ataides
Kategorie:
Sprachsystem
Zielversion:
% erledigt:

0%

Geschätzter Aufwand:
Steps to reproduce:
Betroffene Versionen:
4.0.0.1
Release Notes Langtext:

Alle Phrasenbegriffe werden für alle Sprachen initialisiert, wobei als Fallback Deutsch oder die erste (Sortierung nach language_id) verfügbare Übersetzung verwendet wird


Beschreibung

Wenn in einem Shop eine neue individuelle Sprache erstellt worden ist, dann liegen auf dem Server eigenständige Section Dateien für die neue Sprache. Bei einem Update werden diese Section Dateien jedoch nicht aktualisiert, sodass neue Spraachphrasen in der individuelle Sprache fehlen. Dies führt zu diversen Fehlermeldungen und Logeinträgen, wodurch die neue Sprache nicht mehr zu gebrauchen ist. Wir brauchen daher einen Fallback, damit die fehlenden Phrasen aus einer Basissprache (Deutsch oder Englisch) geladen werden.


If a new individual language has been created in a shop, there are independent section files for the new language on the server. However, these section files are not updated during an update, so that new language phrases are missing in the individual language. This leads to various error messages and log entries, so that the new language is no longer usable. Therefore we need a fallback to load the missing phrases from a base language (German or English).

Quick&Dirty Solution:
src/system/core/caching/PhraseCacheBuilder.inc.php:build()

$db = StaticGXCoreLoader::getDatabaseQueryBuilder();

        $foreignLanguages = $db->select('*')
                ->from('languages')
                ->where('languages_id > 2')
                ->get()
                ->result_array();  

        if(is_array($foreignLanguages) && count($foreignLanguages) > 0)
        {
            $originalPhrases = array();
            $query = $db->query("SELECT * FROM language_phrases_cache WHERE language_id=2");
            while ($row = $query->unbuffered_row('array'))
            {
                $originalPhrases[$row['section_name'] . '___' . $row['phrase_name']] = $row;
            }

            foreach($foreignLanguages as $language)
            {           
                $foreignPhrases = array();
                $query = $db->query("SELECT * FROM language_phrases_cache WHERE language_id=" . $language['languages_id']);
                while ($row = $query->unbuffered_row('array'))
                {
                    $foreignPhrases[$row['section_name'] . '___' . $row['phrase_name']] = $row;
                }     

                $diff = array_diff_key($originalPhrases, $foreignPhrases);

                foreach($diff as $key => $phraseItem)
                {
                    $diff[$key]['language_id'] = $language['languages_id'];
                }    
                $diff = array_values($diff); 

                $db->insert_batch('language_phrases_cache', $diff);
            }
        }

Wichtig: Diese Lösung betrifft nur das Laden der fehlenden Phrasen. Die Funktion Texte anpassen muss noch zusätzlich überarbeitet werden.



Zugehörige Tickets

Kopiert nach GX-Entwicklung - GX-Bug #67343: Fallback für individuelle SprachenErledigtAlexandre Ataides

Aktionen
Aktionen #1

Von Timo Backhaus vor etwa 4 Jahren aktualisiert

Aktionen #2

Von Ulrich Wenk vor fast 4 Jahren aktualisiert

  • Beschreibung aktualisiert (Vergleich)
  • Status wurde von Gemeldet zu Anerkannt geändert
Aktionen #3

Von Jonatas Fischer vor fast 4 Jahren aktualisiert

  • Status wurde von Anerkannt zu In Bearbeitung geändert
  • Zugewiesen an wurde auf Jonatas Fischer gesetzt
Aktionen #4

Von Jonatas Fischer vor fast 4 Jahren aktualisiert

  • Status wurde von In Bearbeitung zu Testing geändert
  • Zugewiesen an wurde von Jonatas Fischer zu Core-Entwickler geändert
  • Release Notes Langtext aktualisiert (Vergleich)
Aktionen #5

Von Moritz Bunjes vor fast 4 Jahren aktualisiert

  • Zielversion wurde von 133 zu 4.1.3.0 beta1 geändert
Aktionen #6

Von Till Tepelmann vor fast 4 Jahren aktualisiert

  • Tags wurde auf stable gesetzt
Aktionen #7

Von Marvin Muxfeld vor fast 4 Jahren aktualisiert

  • Kopiert nach GX-Bug #67343: Fallback für individuelle Sprachen wurde hinzugefügt
Aktionen #8

Von Marvin Muxfeld vor fast 4 Jahren aktualisiert

  • Tags stable wurde gelöscht
Aktionen #9

Von Alexandre Ataides vor fast 4 Jahren aktualisiert

  • Zugewiesen an wurde von Core-Entwickler zu Alexandre Ataides geändert
Aktionen #10

Von Alexandre Ataides vor fast 4 Jahren aktualisiert

  • Status wurde von Testing zu Erledigt geändert
Aktionen

Auch abrufbar als: Atom PDF