Dev: Nervige Meldung "Module translation not found:"

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Dev: Nervige Meldung "Module translation not found:"

Beitrag von Oldperl » Sa 1. Mär 2014, 12:46

Hi @all,

in der 4.9 (aktuell 4.9.3) gibt jeder mit der mi18n-Funktion zu übersetzende Text bei fehlender Übersetzung die Meldung "Module translation not found:" vor dem zu übersetzenden Text aus. Leider kann man diese Meldung nicht abschalten.
Während der Entwicklung von Modulen kann diese zusätzliche Meldung rechte nervig sein, zumal wenn man on the fly gleich auch noch das Design mit integriert und nicht gleich jeden String übersetzen will.
Da ich nicht mit Übersetzungsplatzhaltern arbeite und mir persönlich ausreicht wenn der original Text angezeigt wird habe ich mir dafür eine kleine Funktion gebastelt. So ist auch kein Eingriff im Core notwendig (Update-sicher). Diese kann man in jedem Modul In- und Output mit einbauen.

Code: Alles auswählen

if(!function_exists("dce_mi18n")) {
    /**
     * wrapper for mi18n function not returning
     * message "translation not found"
     * 
     * @param string $sText string to translate
     * @return string translated string or if not present given string
     */
    function dce_mi18n($sText) {
        $sTranslated = mi18n($sText);
        if(strstr($sTranslated, "Module translation not found:") === FALSE) {
            return $sTranslated;
        }
        return $sText;
    }
}
Ob man diese Meldung unbedingt braucht, und wenn ja wofür, kann ich nicht beurteilen. Es wäre aber schön wenn sie in zukünftigen Versionen, zum Beispiel per getEffectiveSetting(), abschaltbar wäre.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Dev: Nervige Meldung "Module translation not found:"

Beitrag von Faar » Sa 1. Mär 2014, 13:54

Besonders nervt es auch, wenn Doppelpunkte und andere Zeichen nicht in die Übersetzung aufgenommen werden können. Wer schon mal was in Chinesisch übersetzt hat, weiß, dass dort die Punkte, Doppelpunkte und Kommas und andere Zeichen teils ganz anders gesetzt werden als in deutschen Sätzen. Man muss daher auch die Satzzeichen und manche andere Dinge mit dem Zusammenhang übersetzen, oder mit $s markieren.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: Dev: Nervige Meldung "Module translation not found:"

Beitrag von rethus » Do 4. Dez 2014, 12:24

Ich möchte mich hier auch mal dafür aussprechen, dass dieses nervige Verhalten im Contenido-CORE anders geregelt wird.

Ich finde es absolut ausreichend, wenn diese Meldung (dass keine Übersetzung vorhandene ist) im BACKEND zu sehen ist, NICHT aber im FrontEnd.
Im Backend würde ich mir dann auch eher eine kleine Farbige Box (wie die roten Fehlerboxen) oben auf der Seite wünschen, die dies anzeigt und listet (welche Übersetzungen fehlen), anstatt das gesamte Layout durch diese Messages zu zerschießen.

Damit bleib es dann beim Entwickler das zu sehen, und etwas dagegen zu tun. Tut er nichts, wird halt der orginaltext in mi18n() ausgegeben.

Bitte nehmt das als Wish für den CORE auf.
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: Dev: Nervige Meldung "Module translation not found:"

Beitrag von rethus » Di 6. Jan 2015, 16:18

Meine Lösung & Vorschlag für künftige Releases:

includes/functions.i18n.php (http://api.contenido.org/con493/source- ... ml#399-439)

function mi18n($key) an entsprechender Stelle folgendermaßen abändern (Achtung, ungetestet!!!, denke aber die Idee wird deutlich):

Code: Alles auswählen


function mi18n($key) {
[...]
    // consider key as untranslated if translation has length 0
    // Don't trim translation, so that a string can be translated as ' '!
    if (0 === strlen($translation)) {
        $translation = $key;
        $mod_load =  new cApiModule($cCurrentModule);
        $module_name= $mod_load->getField('alias');
        cWarning('Module translation [Module: '.$module_name.' ]not found for: $key ' );
    }
[...]
}
Zu bedenken ist hier, das dadurch die Logs total zugemüllt werden.


Eine wohl bessere Variante wäre wie von mir oben angegeben, dass bei Aufruf des Moduls über das Backend, eine Info ausgegeben wird.
Die jedoch am einfachsten umzusetzende Lösung ist, nur im Backend den Hinweis auf die fehlende Übersetzung (wie gehabt direkt an Ort und Stelle, und nicht in einer auffälligen Box auf der Seite) zu positioneieren:

Code: Alles auswählen


function mi18n($key) {
[...]
     // consider key as untranslated if translation has length 0
    // Don't trim translation, so that a string can be translated as ' '!
    if (0 === strlen($translation)) {
        $translation = $key;
        if(Registry::isBackendEditMode();) $translation = 'Module translation not found: ' .$translation; 
    }
[...]
}
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

Re: Dev: Nervige Meldung "Module translation not found:"

Beitrag von frederic.schneider_4fb » Do 8. Jan 2015, 10:01

Ich möchte Euch für die Diskussion und die zahlreichen Ideen danken. Ich habe das eben intern diskutiert: Wir nehmen sehr gerne den Vorschlag auf, die Meldung zukünftig via einer getEffectiveSetting()-Funktion deaktivierbar zu machen. Das Ticket hierzu findet Ihr unter: https://issues.contenido.org/browse/CON-2012. Wir haben die Funktion allerdings noch keiner Version zugeordnet.
Frederic Schneider
Entwickler bei der four for business AG

frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

Re: Dev: Nervige Meldung "Module translation not found:"

Beitrag von frederic.schneider_4fb » Do 22. Jan 2015, 10:02

In CONTENIDO 4.9.7 wird es diese von mir am 8. Januar angekündigte Einstellung neu geben. Sie ist standardmäßig aktiviert, sodass es sich für die normale Anwendung nichts ändern wird. Wem diese Anzeige jedoch stört, kann sie dann zukünftig in den Systemeinstellungen deaktivieren!
Frederic Schneider
Entwickler bei der four for business AG

McHubi
Beiträge: 1209
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Dev: Nervige Meldung "Module translation not found:"

Beitrag von McHubi » Do 22. Jan 2015, 17:22

Danke! :D
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)

rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: Dev: Nervige Meldung "Module translation not found:"

Beitrag von rethus » Fr 23. Jan 2015, 09:08

Super.
Kannst du noch kurz sagen, wie der Parameter in den Mandanteneinstellungen heißen wird? Dann können künftig "suchende" hier auf einen Blick fündig werden.
Im Ticket steht dies auch nicht, soweit ich das gesehen habe.
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

Re: Dev: Nervige Meldung "Module translation not found:"

Beitrag von frederic.schneider_4fb » Di 27. Jan 2015, 10:39

Die entsprechende Implementierung lautet:

Code: Alles auswählen

getEffectiveSetting('debug', 'module_translation_message', 'true')
Sprich: Typ "debug", Name "module_translation_message", standardmäßig (falls nicht gesetzt) auf "true" (aktiv). Deaktiviert lautet der Wert dann "false". Ab CONTENIDO 4.9.7 zu finden unter Administration -> System -> System-Konfiguration, Abschnitt "Entwicklung", ganz unten (vgl. Screenshot), als auch unter Administration -> System -> Experteneinstellungen.
Dateianhänge
_CONTENIDO_4.9.7_-_2015-01-27_10.39.10.jpg
Darstellung in CONTENIDO 4.9.7 (Entwicklerversion)
_CONTENIDO_4.9.7_-_2015-01-27_10.39.10.jpg (15.05 KiB) 6052 mal betrachtet
Frederic Schneider
Entwickler bei der four for business AG

rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: Dev: Nervige Meldung "Module translation not found:"

Beitrag von rethus » Di 27. Jan 2015, 10:57

perfekt.
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Dev: Nervige Meldung "Module translation not found:"

Beitrag von Oldperl » Di 27. Jan 2015, 15:21

Vielen Dank für die zeitnahe Umsetzung im Core.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

procon
Beiträge: 80
Registriert: So 27. Jan 2013, 13:24
Wohnort: Lennestadt
Kontaktdaten:

Re: Dev: Nervige Meldung "Module translation not found:"

Beitrag von procon » Do 5. Feb 2015, 14:36

Sehr cool - danke! :!:

Antworten