Umlaute in contenido.po

Gesperrt
Brazo Alkher
Beiträge: 103
Registriert: Fr 28. Jan 2005, 15:15
Wohnort: Unna
Kontaktdaten:

Umlaute in contenido.po

Beitrag von Brazo Alkher » So 1. Mär 2009, 20:10

Hi,

wie in der Contenido 4.6er Serie ist auch ein Fehler in der 4.8er Serie in der Sprachdatei "contenido.po" vorhanden.
Wenn für die 1. Sprache des 1. Mandanten ein anderer Zeichensatz als ISO-8859-1 gewählt wurde, z.B. UTF-8, dann werden die Umlaute in Texten die z.B. über i18n() geladen werden mit einem komischen Sonderzeichen dargestellt.

Die Lösung ist das alle Umlaute HTML-Codiert gespeichert werden müssen.

Komischerweise sind einige Texte schon so in der "contenido.po" abgespeichert. z.B:

Code: Alles auswählen

msgid "Changed"
msgstr "Geändert"

Code: Alles auswählen

msgid "Published"
msgstr "Veröffentlicht"
Aber halt nicht alle. Anbei die von mir angepasste Version, ausgehend von der Version aus dem Install-Paket von Contenido 4.8.11

P.S: die andere Variante ist, wie jemand schon im Forum geschrieben hat, die Datei einfach im UTF-8 Format anzuspeichern. Jedoch hat man dann das selbe Problem wenn man mehrere Sprachen (auch in mehreren Mandanten) und unterschiedlichen Zeichensätzen hat.
Dateianhänge
contenido.zip
(38.96 KiB) 79-mal heruntergeladen

Brazo Alkher
Beiträge: 103
Registriert: Fr 28. Jan 2005, 15:15
Wohnort: Unna
Kontaktdaten:

Re: Umlaute in contenido.po

Beitrag von Brazo Alkher » Mi 4. Mär 2009, 12:33

Weiterhin fehlt eine Übersetzung, zumindest in der deutschen Datei:

Code: Alles auswählen

msgid "Uncheck all"
msgstr "Markierungen aufheben"

Brazo Alkher
Beiträge: 103
Registriert: Fr 28. Jan 2005, 15:15
Wohnort: Unna
Kontaktdaten:

Re: Umlaute in contenido.po

Beitrag von Brazo Alkher » Mi 4. Mär 2009, 12:38

Dann ist mir noch aufgefallen, das bei ALT-Parametern für Links und Bilder aus "löschen" "l&amo;ouml;schen" generiert wird.
Das sieht natürlich auch nicht schön aus. Dafür gibt es aber auch eine einfach Lösung:

Datei: pear\HTML\Common.php - Funktion: function _getAttrString($attributes) (ab Zeile 134)
folgendes:

Code: Alles auswählen

    function _getAttrString($attributes)
    {
        $strAttr = '';

        if (is_array($attributes)) {
            foreach ($attributes as $key => $value) {
                $strAttr .= ' ' . $key . '="' . htmlspecialchars($value) . '"';
            }
        }
        return $strAttr;
    } // end func _getAttrString
in folgendes ändern:

Code: Alles auswählen

	function _getAttrString($attributes)
	{
		$strAttr	= '';

		if (is_array($attributes))
		{
			foreach ($attributes as $key => $value)
			{
				##################################################
				# Versuch keine doppelte htmlentities() zu haben
				##################################################
				$newValue	= htmlspecialchars($value);
				$newValue	= preg_replace('/(\&)amp\;(amp\;)/i',		'${1}${2}',	$newValue);
				$newValue	= preg_replace('/(\&)amp\;([aou]uml\;)/i',	'${1}${2}',	$newValue);

				$strAttr	.= ' '.$key.'="'.$newValue.'"';
			}
		}

		return $strAttr;
	} // end func _getAttrString

GaMbIt_
Beiträge: 674
Registriert: Do 16. Mär 2006, 16:17
Kontaktdaten:

Re: Umlaute in contenido.po

Beitrag von GaMbIt_ » Mi 4. Mär 2009, 13:30

Das ja mal super...
Ich hab auch gerade ein Projekt wo eine UTF-8 Ausgabe erforderlich ist und habe die .po Datei in UTF-8 abgespeichert...
Funktioniert, aber eben nur für UTF-8...

Solche Infos und Tipps bitte alle ins Wiki... das ist wie geschaffen für solche Lösungen...
http://www.contenido-wiki.org/
Nützliche Contenido Infos gibts hier: Contenido Wiki

Brazo Alkher
Beiträge: 103
Registriert: Fr 28. Jan 2005, 15:15
Wohnort: Unna
Kontaktdaten:

Re: Umlaute in contenido.po

Beitrag von Brazo Alkher » Do 5. Mär 2009, 21:10

ich finde nicht das das ein "Tipp" ist sondern eher ein Bug von Contenido :)

Gesperrt