Zum Inhalt springen

Keine Umlaute mit GIFBUILDER

Erstellt am 17. August 2006 · 49 Antworten · letzte Antwort am 24. September 2010 · Seite 2 von 3

Tags: Bilder, Frage

semidark ·

Hallo Clemens,

ich muss gestehen das ich alle meine extensions mit cr präfixe wegen meinem Firmennamen Creatible #paralyzed# . Was aber dein enorme Vorarbeit in keinster art und weise schmälern soll 😉

Habe gerade gesehen das die Extension nun im TER zu finden und habe zu meiner freude festgestellt das es bereits ein paar mal runtergeladen wurde.

Also hier noch ein bisserl mehr werbung 🙂
http://typo3.org/extensions/repository/view/cr_bugfix_5078/0.0.1/

Gruß Semidark

Unbekannter Benutzer ·

Vielen Dank, die Umlaute funktionieren prima.

Leider habe ich noch Probleme mit Sonderzeichen in Verbindung mit windngs2.ttf

Hier will ich das Zeichen £ nutzen. Es wird mit nur ein kleiner Rahmen angezeigt..... :-(

Könnt ihr mir helfen oder einen Tipp geben?

Ich habe alles auf UTF8 umgestellt.

Vielen Dank.

BastianBalthasarBux ·

tja, alle zeichen funzen damit nicht.
im moment hab ich auch noch ein problem mit kyrillisch.
man muss evtl. die conv-map erweitern.

hat jemand zufällig eine funktionierende convmap für kyrillisch?? 😃

kann dafür die für japanisch liefern. 😉

rizzla ·

Hervorragend - war genau das was ich gesucht habe um das Problem der fehlende / fehlerhaften Umlaute in gerendertem Text aus der Welt zu schaffen.

Danke für eure Mühe!

semidark ·

@ulrich,

wenn da ein Kästchen anstatt des Zeichens gerendert wird liegt es sehr warscheinlich am verwendeten Font.

Hast du Überprüft ob das Pfundzeichen im Font vorhanden ist?

@rizzla,
NP

Gruß Semidark

BastianBalthasarBux ·

Aus gegebenem Anlass (pm anfrage).
Ich habe meine ricEncode funktion upgedated, und nun sollts auch mit japanisch hinhauen.
Ich hoffe wir kriegen feedback.
Anbei die funktion, vielleicht könnt ma ja die ext updaten! 😉

function ricEncode($content) {
	    $enc = mb_detect_encoding($content, "auto");
            $convmap = array(
              0x0080, 0x00ff, 0, 0x00ff,
              0x0400, 0x04ff, 4, 0x04ff,
              0xe000, 0xe03e, 0x1040, 0xffff,
              0xe03f, 0xe0bb, 0x1041, 0xffff,
              0xe0bc, 0xe0fa, 0x1084, 0xffff,
              0xe0fb, 0xe177, 0x1085, 0xffff,
              0xe178, 0xe1b6, 0x10c8, 0xffff,
              0xe1b7, 0xe233, 0x10c9, 0xffff,
              0xe234, 0xe272, 0x110c, 0xffff,
              0xe273, 0xe2ef, 0x110d, 0xffff,
              0xe2f0, 0xe32e, 0x1150, 0xffff,
              0xe32f, 0xe3ab, 0x1151, 0xffff);
            return mb_encode_numericentity($content,$convmap, $enc);
        }

lgc

ps: ich such immernoch kyrillisch!!! also wenn jemand was weiss, her damit! 😉

BastianBalthasarBux ·

könntest die Änderungen auch noch in der gifbuilder ux nachziehen? derzeit ists nur in der stdgraphic drin.
simples beispiel: www.babelnet.at -> urban nomad -> oben das banner mit der schrift.

danke! lgc

btw: ich such immer noch kyrillisch! 😉

Forrest Gump ·

Hallo zusammen,

ich setzte mal meinen Post von hier #519908 in diesem Thread fort.

Auch ich hatte das Problem mit den Umlauten. Hinzu kam bei mir allerdings noch, dass die PHP-Funktion recode_string() bei mir nicht aktiviert ist, das ergibt einen Fehler im Install Tool - Image Processing - 5: GD library functions. Ich musste hier auf die PHP-Funktion iconv() ausweichen. Der Bugfix cr_bugfix_5078_0.0.1.t3x hat mir leider nicht weitergeholfen.

Ich habe allerdings eine Lösung für mich gefunden, die evtl. auch anderen weiterhelfen kann:

Als erstes habe ich die Funktion recode_string in der class.t3lib_stdgraphic.php lokalisert (Zeile 2013).

  // Recode string accoding to TTFLocaleConv. Deprecated.
if ($this->TTFLocaleConv) {
  $string = recode_string($this->TTFLocaleConv,$string);
}

Da mein Typo3 komplett auf UTF-8 eingestellt ist, macht die Funktion eigentlich keinen Sinn, da sie von UTF-8 nach UTF-8 codiert, da ich ja auch TTFLocaleConv in der localconf.php auf UTF-8 eingestellt habe (Vielleicht steht deswegen ja auch "Deprecated" im Kommentar?). Der eingehende $string ist bei mir auf jeden Fall im UTF-8 Format. Ich kann es mit recode_string() leider nicht überprüfen, aber wenn ihr TTFLocaleConv im Install Tool od. in der localconf.php auf ISO-8859-15 einstellt, müssten die Umlaute eigentlich schon richtig angezeigt werden.

Für meine Situation musste ich den PHP-Code von oben ändern in:

  // Recode string according to TTFLocaleConv with iconv(). Deprecated. Try to batch.
if ($this->TTFLocaleConv) {
  $string = iconv($this->nativeCharset,$this->TTFLocaleConv,$string);
}

$this->nativeCharset entspricht der Einstellung in der localconf.php
$TYPO3_CONF_VARS['BE']['forceCharset'] = 'utf-8';

$this->TTFLocaleConv entspricht der Einstellung in der localconf.php
$TYPO3_CONF_VARS['GFX']['TTFLocaleConv'] = 'ISO-8859-15';

Jetzt funktioniert es bei mir. Bitte schreibt mir was ihr davon haltet bzw. was ich nicht bedacht habe. Würd mich auch freuen zu hören, wenn's jemandem geholfen hat.

Beste Grüße Andreas

Infos:

### DEBUG SYSTEM INFORMATION - START ###
HTTP_USER_AGENT : Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14
HTTP_ACCEPT_LANGUAGE: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
CONST: PHP_OS : Linux
CONST: TYPO3_OS :
CONST: php_sapi_name: cgi-fcgi
OTHER: TYPO3_VERSION: 4.2.0
OTHER: PHP_VERSION : 5.2.0-8+etch10
imagecreatefromgif(): 1
imagecreatefrompng(): 1
imagecreatefromjpeg(: 1
imagegif() : 1
imagepng() : 1
imagejpeg() : 1
imagettftext() : 1
OTHER: IMAGE_TYPES : 15
OTHER: memory_limit : 32M
SERVER: SERVER_PORT : 80
SERVER: SERVER_SOFTW: Apache/2.2.3 (Debian) PHP/4.4.4-8+etch4
SERVER: GATEWAY_INTE: CGI/1.1
SERVER: PATH_TRANSLA:
T3CV_GFX: image_proc: 1
T3CV_GFX: gdlib : 1
T3CV_GFX: gdlib_png : 0
T3CV_GFX: gdlib_2 : 1
T3CV_GFX: im : 1
T3CV_GFX: im_path : /var/www/foobar/html/cgi-bin/im429/
T3CV_GFX: im_path_lz:
T3CV_GFX: im_version:
T3CV_GFX: im_negate_: 0
T3CV_GFX: im_imvMask: 0
T3CV_GFX: im_combine: combine
### DEBUG SYSTEM INFORMATION - END ###

localconf.php (Auszug): (Zeilenumbruch nach 100 Zeichen eingefügt, sonst müsste man im ganzen Thread horizontal scrollen.)

$TYPO3_CONF_VARS["SYS"]["compat_version"] = '4.2';
$TYPO3_CONF_VARS['BE']['elementVersioningOnly'] = '1';
$TYPO3_CONF_VARS['BE']['fileDenyPattern'] = '';
$TYPO3_CONF_VARS['BE']['fileExtensions']['webspace']['allow'] = 'php';
$TYPO3_CONF_VARS['BE']['fileExtensions']['webspace']['deny'] = '';
$TYPO3_CONF_VARS['BE']['forceCharset'] = 'utf-8';
$TYPO3_CONF_VARS['BE']['interfaces'] = 'backend,frontend';
$TYPO3_CONF_VARS['BE']['sessionTimeout'] = '36000';
$TYPO3_CONF_VARS['BE']['trackBeUser'] = '1';
$TYPO3_CONF_VARS['BE']['useOnContextMenuHandler'] = '0';
$TYPO3_CONF_VARS['EXT']['allowSystemInstall'] = '1';
$TYPO3_CONF_VARS['EXT']['extConf']['css_styled_content'] =
'a:2:{s:15:"setPageTSconfig";s:1:"1";s:19:"removePositionTypes";s:1:"1";}';  //  Modified or
inserted by TYPO3 Extension Manager.
$TYPO3_CONF_VARS['EXT']['extConf']['pixe_feediting'] =
'a:8:{s:7:"enable.";a:10:{s:12:"old_index_ts";s:1:"1";s:12:"fe_clipboard";s:1:"1";s:26:"allowFramesF
orPopUpWindows";s:1:"0";s:13:"TemplaVoilaFE";s:1:"0";s:21:"TemplaVoilaMoveUpDown";s:1:"0";s:14:"extr
a_fe_icons";s:1:"1";s:11:"addEditMenu";s:1:"1";s:12:"addEditPanel";s:1:"0";s:9:"userSetup";s:1:"0";s
:14:"changedBEForms";s:1:"0";}s:12:"section_list";s:292:"page_section|edit,new_page,move_page,histor
y,info,access,functions;content_section|new_contentelement,column_overview,list,new_record;media_sec
tion|file,images,dam_file,dam_upload,dam_index;miscellaneous_section|formsonpage,preview,user_setup,
open_backend,logout;help_section|help_about,typo3";s:8:"fe_theme";s:15:"modern_skin_new";s:23:"image
PathForFormsOnPage";s:0:"";s:22:"CSSFilesForFormsOnPage";s:6:"t3skin";s:17:"CSSForFormsOnPage";s:0:"
";s:8:"logoutId";s:2:"53";s:9:"subFolder";s:0:"";}';     // Modified or inserted by TYPO3 Extension
Manager.
$TYPO3_CONF_VARS['EXT']['extConf']['rtehtmlarea'] =
'a:18:{s:21:"noSpellCheckLanguages";s:23:"ja,km,ko,lo,th,zh,b5,gb";s:15:"AspellDirectory";s:15:"/usr
/bin/aspell";s:17:"defaultDictionary";s:2:"en";s:14:"dictionaryList";s:2:"en";s:20:"defaultConfigura
tion";s:120:"Minimal (Most features disabled. Administrator needs to enable them using TypoScript.
For advanced administrators
only.)";s:12:"enableImages";s:1:"0";s:20:"enableInlineElements";s:1:"0";s:24:"enableAccessibilityIco
ns";s:1:"0";s:16:"enableDAMBrowser";s:1:"0";s:18:"enableClickEnlarge";s:1:"0";s:22:"enableMozillaExt
ension";s:1:"1";s:14:"enableInOpera9";s:1:"1";s:16:"forceCommandMode";s:1:"0";s:15:"enableDebugMode"
;s:1:"0";s:23:"enableCompressedScripts";s:1:"0";s:20:"mozAllowClipboardURL";s:0:"";s:18:"plainImageM
axWidth";s:1:"0";s:19:"plainImageMaxHeight";s:1:"0";}';      // Modified or inserted by TYPO3
Extension Manager.
$TYPO3_CONF_VARS['EXT']['extConf']['skin_grey_2'] =
'a:14:{s:7:"enable.";a:13:{s:13:"TinyMCEStyles";s:1:"0";s:27:"allowCollapseExpandNavFrame";s:1:"1";s
:13:"ModuleIconSet";s:11:"modern_skin";s:17:"ModuleIconSetPath";s:0:"";s:14:"ModuleIconSize";s:2:"16
";s:7:"IconSet";s:11:"modern_skin";s:15:"stylesheetTheme";s:11:"modern_skin";s:19:"styleSheetFile_po
st";s:0:"";s:12:"own_CSS_file";s:3:"add";s:14:"ownCSSforUsers";s:1:"0";s:9:"userSetup";s:1:"0";s:10:
"newTopmenu";s:1:"0";s:19:"shortcutframe_ontop";s:1:"0";}s:17:"login_stylesheets";s:0:"";s:6:"random
";s:1:"0";s:13:"rotateImgPath";s:0:"";s:16:"changedIntroPage";s:1:"1";s:7:"onClick";s:1:"0";s:14:"st
yleSheetFile";s:0:"";s:17:"defaultMainModule";s:3:"web";s:14:"saveModuleInfo";s:1:"1";s:11:"maxSubIt
ems";s:1:"6";s:10:"leftOffset";s:2:"45";s:14:"subLabelLenght";s:1:"0";s:18:"dims_leftmenuframe";s:3:
"150";s:13:"dims_navframe";s:3:"220";}';    // Modified or inserted by TYPO3 Extension Manager.
$TYPO3_CONF_VARS['EXT']['extConf']['tm_shared_lib'] =
'a:2:{s:7:"enable.";a:5:{s:9:"userSetup";s:1:"0";s:12:"resetModules";s:1:"0";s:32:"allowHideWarningM
essagesAltIntro";s:1:"1";s:21:"dragndrop_for_tinyrte";s:1:"0";s:17:"allowMenuSwitcher";s:1:"0";}s:15
:"backendmenutype";s:12:"leftsidemenu";}';        // Modified or inserted by TYPO3 Extension
Manager.
$TYPO3_CONF_VARS['EXT']['extConf']['tt_news'] =
'a:15:{s:13:"useStoragePid";s:1:"1";s:13:"noTabDividers";s:1:"1";s:25:"l10n_mode_prefixLangTitle";s:
1:"1";s:22:"l10n_mode_imageExclude";s:1:"1";s:20:"hideNewLocalizations";s:1:"0";s:13:"prependAtCopy"
;s:1:"1";s:17:"requireCategories";s:1:"1";s:5:"label";s:5:"title";s:9:"label_alt";s:8:"datetime";s:1
0:"label_alt2";s:5:"short";s:15:"label_alt_force";s:1:"1";s:11:"treeOrderBy";s:5:"title";s:21:"categ
orySelectedWidth";s:1:"0";s:17:"categoryTreeWidth";s:1:"0";s:18:"categoryTreeHeigth";s:2:"30";}';      
// Modified or inserted by TYPO3 Extension Manager.
$TYPO3_CONF_VARS['EXT']['extList'] =
'aboutmodules,automaketemplate,belog,beuser,context_help,css_styled_content,extra_page_cm_options,fe
login,func_wizards,impexp,info_pagetsconfig,install,kb_md5fepw,kc_loginstatus,lorem_ipsum,lowlevel,p
hpmyadmin,pixe_feediting,rtehtmlarea,setup,simulatebe,sys_action,sys_note,t3skin,taskcenter,tm_share
d_lib,tsconfig_help,tstemplate,tstemplate_analyzer,tstemplate_ceditor,tstemplate_info,tstemplate_obj
browser,tt_news,viewpage,wizard_crpages,wizard_sortpages';
$TYPO3_CONF_VARS['FE']['debug'] = '0';
$TYPO3_CONF_VARS['FE']['disableNoCacheParameter'] = '0';
$TYPO3_CONF_VARS['FE']['lifetime'] = '3600';
$TYPO3_CONF_VARS['FE']['lockIP'] = '4';
$TYPO3_CONF_VARS['FE']['permalogin'] = '1';
$TYPO3_CONF_VARS['FE']['publish_dir'] = 'publish/';
$TYPO3_CONF_VARS['GFX']["im_path"] = '/var/www/foobar/html/cgi-bin/im429/';
$TYPO3_CONF_VARS['GFX']["im_path_lzw"] = '';
$TYPO3_CONF_VARS['GFX']['enable_typo3temp_db_tracking'] = '1';
$TYPO3_CONF_VARS['GFX']['gdlib_2'] = '1';
$TYPO3_CONF_VARS['GFX']['gif_compress'] = '0';
$TYPO3_CONF_VARS['GFX']['im_path_lzw'] = '';
$TYPO3_CONF_VARS['GFX']['im_version_5'] = '0';
$TYPO3_CONF_VARS['GFX']['jpg_quality'] = '70';
$TYPO3_CONF_VARS['GFX']['noIconProc'] = '0';
$TYPO3_CONF_VARS['GFX']['png_truecolor'] = '1';
$TYPO3_CONF_VARS['GFX']['thumbnails_png'] = '2';
$TYPO3_CONF_VARS['GFX']['TTFdpi'] = '96';
$TYPO3_CONF_VARS['GFX']['TTFLocaleConv'] = 'ISO-8859-15';
$TYPO3_CONF_VARS['SYS']['displayErrors'] = '1';
$TYPO3_CONF_VARS['SYS']['setDBinit'] = 'SET CHARACTER SET utf8;'.chr(10).'SET NAMES
utf8;'.chr(10).'SET SESSION character_set_server=utf8;';
$TYPO3_CONF_VARS['SYS']['sitename'] = 'TYPO3 4.2';
$TYPO3_CONF_VARS['SYS']['sqlDebug'] = '0';
$TYPO3_CONF_VARS['SYS']['systemLog'] = 'file,/var/www/foobar/html/_typo3/fileadmin/log/log.txt,2';
$TYPO3_CONF_VARS['SYS']['t3lib_cs_convMethod'] = 'iconv';
$TYPO3_CONF_VARS['SYS']['t3lib_cs_utils'] = 'iconv';
$TYPO3_CONF_VARS['SYS']['UTF8filesystem'] = '1';
$typo_db_extTableDef_script = 'extTables.php';
Forrest Gump ·

Hallo zusammen,

man, ich hab ja n dollen Provider, innerhalb eines Tages hat er mir recode_string() aktiviert.

Mein Tip für alle, die mit utf-8 arbeiten ($TYPO3_CONF_VARS['BE']['forceCharset'] = 'utf-8';): Lasst die Variable "$TYPO3_CONF_VARS['GFX']['TTFLocaleConv'] = '';" einfach leer. Dann werden die Schriftarten mit UTF-8 angesteuert und liefern die richtigen Zeichen. Der Code:

if ($this->TTFLocaleConv) {
  $string = recode_string($this->TTFLocaleConv,$string);
}

Wird dann einfach nicht mehr ausgeführt, dann braucht man auch keine Funktion recode_string(). Mein Patch von oben wäre damit auch überflüssig.

Gruß Andreas

bitte melden, sollte ich Müll erzählen.

BastianBalthasarBux ·

@forrest, forrest gump: du hast ein völlig anderes problem.

beim ursprünglichen problem nützt auch die ttflocaleconv leer lassen nix!

nur zur anmerkung. 😉

lgc

Forrest Gump ·

Hallo zusammen,

ich denke schon, dass ich hier eine Problemlösung für den Thread habe.

Thread: Keine Umlaute mit GIFBUILDER

hebi schrieb

Hallo, habe folgendes Problem:

Bei der Darstellung von grafischen Menüs oder grafischen Texten mit GIFBUILDER werden die deutschen Umlaute nicht richtig wiedergegeben. Wenn ich die Umlaute als HTML-Entitäten angebe, werden diese als solche ausgegeben (z.B. &uuml😉

In allen anderen Fällen (TMENU, usw.) ist die Anzeige aber in Ordnung.

Meine Versionen:
Typo3 4.0 auf SuSE 10.1

Weiß wer eine Lösung für das Problem?

ulrich.manns

Ich habe alles auf UTF8 umgestellt.

$TYPO3_CONF_VARS['BE']['forceCharset'] = 'utf-8';
$TYPO3_CONF_VARS['GFX']['TTFLocaleConv'] = '';

Damit werden die Schriftarten per Gifbuilder mit UTF-8 angesteuert und liefern die richtigen Ergebnisse, wenn die Zeichen in der Schriftart enthalten sind, und Umlaute und "ß" sind eindeutig in den Standard-Schriftarten enthalten. Wenn du eine kyrillische Tastatur hast und steuerst verdana.ttf an, wirst du wohl kaum kyrillische Zeichen bekommen, da musst du schon eine andere Schriftart ansteuern. Oder?

Gruß Andreas

BastianBalthasarBux ·

Also nochmal von vorne:
Der Fehler liegt in der gdlib/imagemagick, bzw. in der vorkompilierten version von php5 auf allen openSuSE Versionen von 10.0 bis mindestens 10.2.

Daher nützt es nichts das ttflocaleconf leerzulassen (das ist ja bei utf8 umstellung mal die grundvoraussetzung, daher gehe ich davon aus, dass dies bei allen ist). -> Das war aber offensichtlich dein ursprüngliches Problem.

Das problem wäre behebbar, wenn man die php5 neu kompiliert, was aber auf einem Produktivserver mit 15-20 Kunden eher uncool rüberkommt.

Weiters tritt das problem mit den neuesten gm versionen nicht mehr auf bei mir.

Zum Thema Schriftarten: Ob kyrillische Zeichen in der Schriftart vorhanden sind oder nicht, liegt natürlich an der schriftart selbst. Aber bei einer arial.ttf auf einem ms windows system sind sie mit sicherheit drin.

bofh999 ·
BastianBalthasarBux schrieb

Das problem wäre behebbar, wenn man die php5 neu kompiliert, was aber auf einem Produktivserver mit 15-20 Kunden eher uncool rüberkommt.

Und sowas schimpf sich Webhoster,.. sorry aber diese Aussage ist inkompetent und vermittelt den Eindruck das dieser Lösungsweg nicht praktikabel für Produkttiv Server sei.

Erstens kompilieren selbst affektiert einmal gar nichts auf dem server.
Erst ab dem make install wird das neue php als Modul geschrieben.
Es gibt auch keine Unterbrechnung beim Produkttivbetrieb da ein apache warm restart nichts unterbricht wohl aber die das neue PHP als Modul läd.

Das klingt eher danach als ob noch nie PHP kompiliert worden wäre (was ansich in keiner weise ein Problem darstellt egal wiviel Kunden auf dem Server sind)

Im übrigen brächte PHP kompilieren auch nichts. Wenn schon dann gd neu kompilieren.
Auch hier gäbe es keine Probleme. Ist im übrigen auch der bessere Weg

Denn wenn man tatsächlich andere Leute bezahlen lässt für sein Service sollten dinge wie CharsetSupport wohl auch stimmen.

BastianBalthasarBux ·

tja, spätestens wenn beim händischen kompilieren von php ein fehler gemacht wurde (weil zb. eine kleinigkeit vergessen wurde), und das dann nach einem warmstart geladen wurde krachts halt.
aber mir is eh wurscht, soll doch jeder machen wie er mag.
nur hinterher nicht hier im forum hoilen! 😉

btw: man könnte das neu kompilierte php auch (und das wäre viel sicherer) als cgi einbinden. -> das kann man dann pro vhost einbinden. ist halt langsamer.

und wer ist hier webhoster? ich zb. hoste ausschliesslich eigenentwickelte projekte. und zwar deswegen, weil ich mit so anfängern zu tun hatte, die eben genau das gemacht haben, nämlich php neu kompiliert und niemandem was gesagt. oder auch andere änderungen am server. und irgendwann stinkt es einem halt, wenn man die fehler von anderen ausbaden darf. bei den eigenen, naja, da kann man sich dann wenigstens an der eigenen nase packen.

ps: bei mir ists eh händisch kompiliert. -> aber bitte jetzt keine fragen wie das geht, da müsst ma ja bei adam und eva anfangen ...

bofh999 ·

stimmt ich geb dir recht
da muss man bei adam und eva anfangen.

nur typo3 und standart deb pakete is nicht das ware. überhaupt sollte man bei php auf pakete verzichten. sog gut es ist durch die verbreitung treten eben sehr häufig sec. probleme auf. (über bugfixes schweigen wiruns mal aus :-)

was das vergessen betrifft so hilfts einfach die configure wurscht als file abspeichern und gleich als solches ausführbar setzen.
zusatzmodule einfach hinzufügen hilft beim vergessen 😃
i leide ja auch unter alzheimer

muss ma ja ohnehin häufig machen wenn man nur benötigte extensions aktivieren will.