erdmannfreunde / contao-grid-bundle

GNU General Public License v3.0
3 stars 4 forks source link

Übersetzung/Label für Grid-Klassen ermöglichen #8

Open denniserdmann opened 2 years ago

denniserdmann commented 2 years ago

Immer wieder kommt der Wunsch auf, dass Klassen wie col-md-4 in für nichtentwickler verständliche Sprache übersetzt werden könnte.

Wäre es ohne BC möglich, die Klassen zusätzlich mit „Übersetzungen“ auszustatten?

richardhj commented 2 years ago

Technisch ist es sehr einfach, weil wir nur das DCA erweitern müssen:

$GLOBALS['TL_DCA']['tl_content']['fields']['grid_columns'] = [
    'options_callback' => [GridColsOptionsListener::class, 'onOptionsCallback'],
    'reference' => [
        'col-md' => 'Medium Screen',
        'col-md-5' => '5/12 Spalte (Medium Screen)'
    ],
];

Konzeptionell wird es schwieriger, weil wir nicht immer von der Standard-Konfiguraiton mit 12 Spalten ausgehen können, da die CSS-Klassen konfigurierbar sind. Können wir mit dem Bundle Übersetzungen mitliefern?

Ausserdem würden wir die human-readable CSS-Klassen sicherlich als Opt-In bereitstellen, konfigurierbar über die config.yml, und hier ist die Frage, ob das nicht wieder zu technsich für Nicht-Entwickler ist.

denniserdmann commented 2 years ago

Ja, der Gedanke war, das über die config.yml als Opt-In zu lösen. Da kann der Entwickler dann auch auf die abweichende Spalten-Anzahl eingehen und seine eigenen Übersetzungen schreiben.

Eine andere Idee war, ob man die Grid-Klassen über die symfony/twig/contao translations auch im Backend übersetzen könnte. Dann könnte jeder Entwickler sich seine Übersetzungen über eine grid.de.yml zusammenstellen. Geht das?

Vielleicht so?

$GLOBALS['TL_DCA']['tl_content']['fields']['grid_columns'] = [
    'options_callback' => [GridColsOptionsListener::class, 'onOptionsCallback'],
    'reference' => [
        'col-md'     => $this->translator->trans('GRID.col-md', [], 'contao_default'),
        'col-md-5'   => $this->translator->trans('GRID.col-md-5', [], 'contao_default')
    ],
];

Besser wäre natürlich automatisiert.

richardhj commented 2 years ago

Habe die ersten Übersetzungen in a173a13a561fc000e15af69973d287f0d84ed6ad angelegt.

Opt-In:

erdmannfreunde_contao_grid:
  translated_labels: true

Überschreiben der Übersetzungen: einfach über /contao/languages/xx/default.php