diakrieten (ë ö ä ñ à ó enzovoort)  Naar boven

Ga naar pagina: 1 - 2 [+1]

  • In de NL vertaling van PostNuke zit een probleempje met de diakrieten (zie http://nl.wikipedia.…er:Patio/Diakrieten). Dit is zichtbaar in het woord "categorieën". Het probleem heeft ermee te maken, dat er vershillende karaktersets bestaan, die ieder op hun eigen manier met de accenten / diakrieten omgaan. De NL vertaling hier gebruikt waarschijnlijk ISO 1252. Als je dan deze vertaling gebruikt op een systeem dat UTF-8 praat dan gaat de diakrieten fout, worden als ? weergegeven.

    Er is een eenvoudige oplossing. In de vertalingen staan de tekens als "ë". Als je dit overal vervangt door de HTML notatie "ë" dan gaat het altijd overal goed, welke server instellingen je ook hebt.

    Als voorbeeld zijn hier twee Files als attachment bijgevoegd. Het zijn "language/nld/global.php" en "includes/language/blocks/nld/category.php".

    Code
    define('_ALL_CATEGORIES','Alle categorieën');


    Tsja... en nu zou het fijn zijn als iemand overal alle diakrieten kan vervangen door hun HTML-codering.
  • Ja, daar zeg je wat... Ik denk dat hier vast wel een handig scriptje voor te schrijven is... ;)

    Hoop dat dat lukt voordat de volgende .76x release uitkomt. Mijn ToDo lijst is weer aangevuld.

    __________
  • Hier is een lijstje met codes:

    Code
    "   Quotation mark  "
    &   Ampersand   &
    <   Less than   &amp;lt;
    >   Greater than    &amp;gt;
        Nonbreaking space   &amp;nbsp;
    À  Capital A, grave accent     &amp;Agrave;
    à  Small a, grave accent   &amp;agrave;
    Á  Capital A, acute accent     &amp;Aacute;
    á  Small a, acute accent   &amp;aacute;
    Â  Capital A, circumflex accent    &amp;Acirc;
    â  Small a, circumflex accent  &amp;acirc;
    Ã  Capital A, tilde    &amp;Atilde;
    ã  Small a, tilde  &amp;atilde;
    Ä  Capital A, dieresis or umlaut mark  &amp;Auml;
    ä  Small a, dieresis or umlaut mark    &amp;auml;
    Å  Capital A, ring     &amp;Aring;
    å  Small a, ring   &amp;aring;
    Æ  Capital AE dipthong (ligature)  &amp;AElig;
    æ  Small ae dipthong (ligature)    &amp;aelig;
    Ç  Capital C, cedilla  &amp;Ccedil;
    ç  Small c, cedilla    &amp;ccedil;
    È  Capital E, grave accent     &amp;Egrave;
    è  Small e, grave accent   &amp;egrave;
    É  Capital E, acute accent     &amp;Eacute;
    é  Small e, acute accent   &amp;eacute;
    Ê  Capital E, circumflex accent    &amp;Ecirc;
    ê  Small e, circumflex accent  &amp;ecirc;
    Ë  Capital E, dieresis or umlaut mark  &amp;Euml;
    ë  Small e, dieresis or umlaut mark    &amp;euml;
    Ì  Capital I, grave accent     &amp;Igrave;
    ì  Small i, grave accent   &amp;igrave;
    Í  Capital I, acute accent     &amp;Iacute;
    í  Small i, acute accent   &amp;iacute
    Î  Capital I, circumflex accent    &amp;Icirc;
    î  Small i, circumflex accent  &amp;icirc;
    Ï  Capital I, dieresis or umlaut mark  &amp;Iuml;
    ï  Small i, dieresis or umlaut mark    &amp;iuml;
    µ  Micro sign  &amp;micro;
    Ñ  Capital N, tilde    &amp;Ntilde;
    ñ  Small n, tilde  &amp;ntilde;
    Ò  Capital O, grave accent     &amp;Ograve;
    ò  Small o, grave accent   &amp;ograve;
    Ó  Capital O, acute accent     &amp;Oacute;
    ó  Small o, acute accent   &amp;oacute;
    Ô  Capital O, circumflex accent    &amp;Ocirc;
    ô  Small o, circumflex accent  &amp;ocirc;
    Õ  Capital O, tilde    &amp;Otilde;
    õ  Small o, tilde  &amp;otilde;
    Ö  Capital O, dieresis or umlaut mark  &amp;Ouml;
    ö  Small o, dieresis or umlaut mark    &amp;ouml;
    Ø  Capital O, slash    &amp;Oslash;
    ø  Small o, slash  &amp;oslash;
    ß  Small sharp s, German (sz ligature)     &amp;szlig;
    Ù  Capital U, grave accent     &amp;Ugrave;
    ù  Small u, grave accent   &amp;ugrave;
    Ú  Capital U, acute accent     &amp;Uacute;
    ú  Small u, acute accent   &amp;uacute;
    Û  Capital U, circumflex accent    &amp;Ucirc;
    û  Small u, circumflex accent  &amp;ucirc;
    Ü  Capital U, dieresis or umlaut mark  &amp;Uuml;
    ü  Small u, dieresis or umlaut mark    &amp;uuml;
    ÿ  Small y, dieresis or umlaut mark    &amp;yuml;
    ¨  Umlaut  &amp;uml;
    ¯  Macron accent   &amp;macr;
    ´  Acute accent    &amp;acute;
    ¸  Cedilla     &amp;cedil;
    ¡  Inverted exclamation    &amp;iexcl;
    ¿  Inverted question mark  &amp;iquest;
    ·  Middle dot  &amp;middot;
    «  Left angle quote    &amp;laquo;
    »  Right angle quote   &amp;raquo;
    ¶  Paragraph sign  &amp;para;
    §  Section sign    &amp;sect;
    ©  Copyright   &amp;copy;
    ®  Registered trademark    &amp;reg;
    ­  Soft hyphen     &amp;shy;
    ÷  Division sign   &amp;divide;
    ª  Feminine ordinal    &amp;ordf;
    º  Masculine ordinal   &amp;ordm;
    ¬  Not sign    &amp;not;
    °  Degree sign     &amp;deg;
    ±  Plus or minus   &amp;plusmn;
    ¤  General currency sign   &amp;curren;
    ¢  Cent sign   &amp;cent;
    £  Pound sterling  &amp;pound;
    ¥  Yen sign    &amp;yen;
  • Edit:
    Die lijst is niet eens compleet :P
    &euro;
    En er is ook nog een (P)
    Zullen er vast nog wel meer zijn ook denk ik.

    Dat probleem heb ik ook. Ben m'n site begonnen de standaard ISO-8859-1. Na een tijdje zit ik op een chat-room waar ik Stats voor draai, en die is UTF-8. Dus voor die pagina een eigen template gemaakt, en er hard UTF-8 ingezet. Als er nu op die pagina gereageerd wordt, en de nickname is dus geregged met ISO-8859-1, geven die diakriten een heel mooi vraagtekentje.

    De enige oplossing die ik hiervoor zie, is een script maken die alle tekstvelden uitleest en de waarde vervangt door utf8_encode($waarde), en dan m'n charset veranderen naar UTF-8.
  • RaZ: je zou nog beter kunnen converteren met de php-functie "htmlentities", omdat je dan onafhankelijk blijft van de gekozen karakterset.
  • Zit idd een kern van waarheid in, maar bij input velden van postnuke, wordt dat dus niet gedaan. dus als iemand een account regged, een een naam gebruikt als: Sú¶é®¶á¶á
    Wordt die natuurlijk op basis van het gekozen charset in de database geschreven. Dan zou je dat script dus in een cronjob moeten zetten (of voor windows de Scheduler).

    Dit geld dus voor alles wat de user kan inputten, of alle modules moeten herschreven worden die dus de data eerst omzet voor het de database in gaat.

    Als jij weet welke replace ik moet uitvoeren om UTF-8 om te zetten naar een html-entities zou ik dat helemaal geweldig vinden. omdat ik dus over m'n hele site maar 1 UTF-8 pagina heb, deze. De utf8_decode geeft ook de verkeerde tekens bij sommige nicknames.
  • Ik zie wat je bedoelt. Het lijkt erop dat er op die pagina ook een heleboel tekens staan, die je niet met htmlentities kunt coderen. In dat geval wordt het toch ook weer zoiets "&#utf-8-code;". In deze situatie is het m.i. beter om een geschikte karakterset te kiezen (toekomstvast: UTF-8 ) en daar je database en pagina's omheen te bouwen. In feite wat je al doet, door op te geven dat die pagina als UTF-8 gerenderd moet worden.
  • Yup.

    En als er een mooie mogelijkheid zou zijn, om dus alle user-input-velden in de database omtezetten naar UTF-8, dmv een script, zo ik per direct naar UFT-8 overgaan.

    Iemand die dus z'n regged, vult zijn/haar nickname in, op basis van ISO-8859-1, en zodra die een reactie plaats wordt die nickname dus finaal omzeep geholpen op die stats-pagina, omdat daar dus UTF-8 als charset staat. Dus voor Sú¶é®¶á¶á als die geregisteerd zou zijn, en een reactie plaatst, krijg je S???????? te zien. Als er nu gewoon altijd standaard UTF-8 gebruikt zou worden, zou het altijd werken lijkt me.

    Ik kwam er dus pas achter nadat ik EZComments op die module had geactiveerd. En toen draaide m'n site dus al enige maanden.

    Ik zag een tijdje terug wel iemand die postte dat z'n ISO-8859-1 dmv een phpmyAdmin omzeep was geholpen, de MySQL dump kwam er UTF-8 uit ipv ISO-8859-1. Als ik wist hoe ik dus die dump kon repliceren, Is het ook snel opgelost. Het enige wat me dan nog te doen staat, is de vertaling aanpassen..
  • Bedoel je dit draadje:
    http://zikula.n...light/iconv/

    De truuk is "iconv", zie ergens halverwege de discussie
  • Ik heb een dom php-scriptje gemaakt, dat de directory structuur doorloopt, alleen de php Files onderhanden neemt die in de "nld" directory staan, en in die files de diakrieten aanpast.

    Dit script kun je vanaf de command line runnen. Op Linux is dat:
    # php5 diak2html.php

    Nu loop ik tegen het volgende praktische "probleem" aan, dat mijn systeem een UTF-8 systeem is. Als ik in het php-script het karakter ä wil vervangen door &auml; dan gaat dat in dit script om de als UTF-8 gecodeerde ä. Die staan niet in de php-files, want daarin staat de ä als ISO-1252 of ISO-8859-1. Het script werkt hier prima voor files die al in UTF-8 staan.

    Misschien wil/kan iemand dit script over de files heen draaien op een Windows machine?

    Knip en plak het onderstaande in een file met de naam diak2html.php

    Code
    <?
    // diak2html.php
    //
    // author: A. Broekema
    // created: 2006 09 14
    // changed: 2006 09 14



    function ls ($dir_name)
    {
        global $f_out, $n_file;
        $dir = opendir ($dir_name);
        while ($file = readdir ($dir))
        {
            if ($file != "." &amp;&amp; $file != "..")
            {
                if (strcmp (basename ($dir_name), "nld") == 0)
                {
                    $file_ext = substr ($file, -4);
                    if (strcmp ($file_ext, ".php") == 0)
                    {
                        // process this file...
                        diak2html ("$dir_name/$file");
                    }
                }
                if (is_dir ("$dir_name/$file"))
                {
                    ls ("$dir_name/$file");
                }
            }
        }
        closedir ($dir);
    }    // end of ls.



    function diak2html ($me)
    {
        //printf ("processing $me ...\n");
        $fbak = $me . "~";    // backup file name
        rename ($me, $fbak);
       
        $hin = fopen ($fbak, "r");
        $hout = fopen ($me, "w+");
        while (!feof ($hin))
        {
            $buffer = fgets ($hin, 4096);
           
            $buffer = str_replace ("ä", "&amp;auml;", $buffer);
            $buffer = str_replace ("ë", "&amp;euml;", $buffer);
            $buffer = str_replace ("ï", "&amp;iuml;", $buffer);
            $buffer = str_replace ("ö", "&amp;ouml;", $buffer);
            $buffer = str_replace ("ü", "&amp;uuml;", $buffer);
            $buffer = str_replace ("à", "&amp;agrave;", $buffer);
            $buffer = str_replace ("è", "&amp;egrave;", $buffer);
            $buffer = str_replace ("ì", "&amp;igrave;", $buffer);
            $buffer = str_replace ("ò", "&amp;ograve;", $buffer);
            $buffer = str_replace ("ù", "&amp;ugrave;", $buffer);
            $buffer = str_replace ("á", "&amp;aacute;", $buffer);
            $buffer = str_replace ("é", "&amp;eacute;", $buffer);
            $buffer = str_replace ("í", "&amp;iacute;", $buffer);
            $buffer = str_replace ("ó", "&amp;oacute;", $buffer);
            $buffer = str_replace ("ú", "&amp;uacute;", $buffer);
            $buffer = str_replace ("É", "E", $buffer);
           
            fwrite ($hout, $buffer);
        }
        fclose ($hout);
        fclose ($hin);

        if (filesize ($me) == filesize ($fbak))
        {
            // niets veranderd, zet de originele file terug...
            rename ($fbak, $me);
        }
        else
        {
            // diakrieten zijn vervangen
            printf ("$me is aangepast\n");
        }
    }


    $dir_name = ".";
    ls ($dir_name);

    ?>
  • Ik ga er mee aan de slag

    __________
  • Via een kleine omweg (lees: truuk) is het mij toch gelukt. Hoe? Wel, knip de code van het bericht hierboven uit het forum en plak het in notepad op een windows machine. Verplaats deze windows file naar de linux machine, runnen, klaar.

    Teb: de resultaat-file zit in je mailbox.
  • Op mijn windows server krijg ik behoorlijk wat waarschuwingen bij het rename gedeelte.

    Desalniettemin is het script (na een minieme aanpassing in de laatste regel) ook toegevoegd aan de repository van pn-dutch, in de module Utilities (for future reference)

    Onderstaande lijst met Files is inmiddels gecommit naar de CVS server. Andries, enorm bedankt. Dit script zal zeker in de toekomst nog van pas gaan komen.
    QuoteDistro-nld/OpenStar/language/nld/v4blib.php
    Distro-nld/OpenStar/modules/Admin/pnlang/nld/admin.php
    Distro-nld/OpenStar/modules/pnRender/pnlang/nld/osbarometer.php
    Modules/Avatar/pnlang/nld/user.php
    Modules/CmodsDownload/lang/nld/global.php
    Modules/CmodsWebLinks/lang/nld/global.php
    Modules/EZComments/pnlang/nld/admin.php
    Modules/EZComments/pnlang/nld/ezcomments.php
    Modules/EZComments/pnlang/nld/global.php
    Modules/EZComments/pnlang/nld/init.php
    Modules/EZComments/pnlang/nld/user.php
    Modules/EZComments/pnlang/nld/userapi.php
    Modules/formicula/pnlang/nld/admin.php
    Modules/formicula/pnlang/nld/forms.php
    Modules/formicula/pnlang/nld/user.php
    Modules/pagesetter/pnlang/nld/admin.php
    Modules/pagesetter/pnlang/nld/common.php
    Modules/pagesetter/pnlang/nld/listmenu.php
    Modules/photoshare/pnlang/nld/admin.php
    Modules/photoshare/pnlang/nld/user.php
    Modules/pnForum/pnlang/nld/global.php
    Modules/pnmantis/pnlang/nld/admin.php
    Modules/pnTresMailer/modules/lang/nld/global.php
    Modules/postbbcode/pnlang/nld/admin.php
    Modules/postbbcode/pnlang/nld/global.php
    Modules/postbbcode/pnlang/nld/init.php
    Modules/postbbcode/pnlang/nld/user.php
    Modules/postbbcode/pnlang/nld/userapi.php
    Modules/postguestbook/pnlang/nld/guestbook.php
    Modules/postguestbook/pnlang/nld/init.php
    Modules/postguestbook/pnlang/nld/user.php
    Modules/postguestbook/pnlang/nld/userapi.php
    Modules/SnakePending/pnlang/nld/admin.php
    Modules/SnakePending/pnlang/nld/pending.php
    PN7xx/html/includes/language/blocks/nld/category.php
    PN7xx/html/includes/language/blocks/nld/online.php
    PN7xx/html/install/lang/nld/global.php
    PN7xx/html/modules/AddStory/lang/nld/global.php
    PN7xx/html/modules/Admin/pnlang/nld/admin.php
    PN7xx/html/modules/Banners/lang/nld/global.php
    PN7xx/html/modules/Blocks/pnlang/nld/admin.php
    PN7xx/html/modules/Credits/pnlang/nld/user.php
    PN7xx/html/modules/Downloads/lang/nld/global.php
    PN7xx/html/modules/Header_Footer/pnlang/nld/user.php
    PN7xx/html/modules/Messages/pnlang/nld/user.php
    PN7xx/html/modules/Modules/pnlang/nld/admin.php
    PN7xx/html/modules/Modules/pnlang/nld/init.php
    PN7xx/html/modules/pn_bbcode/pnlang/nld/init.php
    PN7xx/html/modules/pn_bbsmile/pnlang/nld/global.php
    PN7xx/html/modules/Reviews/lang/nld/global.php
    PN7xx/html/modules/Search/lang/nld/global.php
    PN7xx/html/modules/Settings/lang/nld/global.php
    PN7xx/html/modules/Stats/lang/nld/global.php
    PN7xx/html/modules/Top_List/lang/nld/global.php
    PN7xx/html/modules/Web_Links/lang/nld/global.php
    PN7xx/html/modules/Xanthia/pnlang/nld/admin.php
    PN7xx/html/themes/PiterpanV2/lang/nld/global.php
    PN7xx/html/themes/pnDefault/lang/nld/global.php
    PN7xx/html/themes/PostNukeBlue/lang/nld/global.php
    PN7xx/html/themes/SeaBreeze/lang/nld/global.php


    __________
  • andriesBedoel je dit draadje: http://zikula.n...light/iconv/

    De truuk is "iconv", zie ergens halverwege de discussie

    Cool, ik heb dan wel geen linux thuis, maar wel shell toegang dus gaan we zeker doen. Maar die windows 1251, ff uit me hoofd. Ik gebruik de standaard setting die postnuke gaf tijdens de installatie, ISO-8859-1. lijkt me dat de parameters dan anders zijn, ofniet?

    Teb
    [..]
    Desalniettemin is het script (na een minieme aanpassing in de laatste regel) ook toegevoegd aan de repository van pn-dutch, in de module Utilities (for future reference)

    Onderstaande lijst met Files is inmiddels gecommit naar de CVS server. Andries, enorm bedankt. Dit script zal zeker in de toekomst nog van pas gaan komen.
    [..]

    Misschien wel handig als je deze in de Downloads zet. In iedergeval de core voor .7.6.2. Ik zie nergens een link naar de CVS, maar wil wel die taalbestanden, en het script als het kan.

    Ik wil asap naar UTF-8 als het even kan (alleen moet ik dus ook nog zien te vinden waar in de database de charset wordt weggeschreven. en wat is dat phpymadmin een rampending zeg. Ben eerst 10 minuten bezig op dingen in te vullen, en nog lukt het niet. Ik wil enkel 1 setting veranderen, moet ik dan eerst 2 dagen een cursus phpmyadmin volgen? cry )
  • RaZMisschien wel handig als je deze in de Downloads zet. In iedergeval de core voor .7.6.2. Ik zie nergens een link naar de CVS, maar wil wel die taalbestanden, en het script als het kan.
    Link details CVS pn-dutch staat al behoorlijke tijd in de Web-Links.

    Met TortoiseCVS kun je ook een export maken van alleen de huidige PN7xx Files. Zie de Wiki en de CVS pagina voor verdere uitleg. Of je kunt de volledige repository (inclusief alle files die niet nodig zijn) gewoon downloaden via de SCM pagina ([Download The Nightly CVS Tree Snapshot]) op [url=http://noc.post...ts/pn-dutch/]pn-dutch[/url]. Eventuele bugs graag melden in de bugtracker ;)

    Bij de eerstvolgende release (patch) van PostNuke zal dit verwerkt zijn in de bijbehorende vertaling. Aangezien die niet lang meer zal duren, zal er ook geen russentijdse patch komen waar dit in verwerkt is.

    RaZen wat is dat phpymadmin een rampending zeg.
    [...]
    Ik wil enkel 1 setting veranderen, moet ik dan eerst 2 dagen een cursus phpmyadmin volgen? cry )
    Ehh... :S

    PhpMyAdmin is niet moeilijk, je kunt eigenlijk via een webinterface de databaseserver zo voledig manipuleren. Maar inderdaad, als je niets van MySQL weet wordt het ook lastig om PhpMyAdmin te begrijpen. Wellicht dat http://www.mysql.com (en dan de command line opdrachten) je verder helpen, zeker als je zelf je db server draait heb je geen phpmyadmin nodig. Is handig, maar niet vereist.

    __________

Ga naar pagina: 1 - 2 [+1]

Deze lijst is gebaseerd op gebruikers die de afgelopen 10 minuten online waren

 

Taal

Preferred language