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".
Tsja... en nu zou het fijn zijn als iemand overal alle diakrieten kan vervangen door hun HTML-codering.
diakrieten (ë ö ä ñ à ó enzovoort)
-
- Rang: zGebruiker
- Geregistreerd: 11.11.02
- Laatst gezien: 18.01.07
- Berichten: 17
-
- Rang: Site Admin
- Geregistreerd: 25.02.03
- Laatst gezien: 09.03.12
- Berichten: 1207
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.
__________
-
- Rang: zGebruiker
- Geregistreerd: 11.11.02
- Laatst gezien: 18.01.07
- Berichten: 17
-
- Rang: zPro
- Geregistreerd: 18.03.06
- Laatst gezien: 06.01.09
- Berichten: 267
Edit:
Die lijst is niet eens compleet :P
€
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. -
- Rang: zGebruiker
- Geregistreerd: 11.11.02
- Laatst gezien: 18.01.07
- Berichten: 17
RaZ: je zou nog beter kunnen converteren met de php-functie "htmlentities", omdat je dan onafhankelijk blijft van de gekozen karakterset. -
- Rang: zPro
- Geregistreerd: 18.03.06
- Laatst gezien: 06.01.09
- Berichten: 267
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. -
- Rang: zGebruiker
- Geregistreerd: 11.11.02
- Laatst gezien: 18.01.07
- Berichten: 17
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. -
- Rang: zPro
- Geregistreerd: 18.03.06
- Laatst gezien: 06.01.09
- Berichten: 267
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.. -
- Rang: zGebruiker
- Geregistreerd: 11.11.02
- Laatst gezien: 18.01.07
- Berichten: 17
Bedoel je dit draadje:
http://zikula.n...light/iconv/
De truuk is "iconv", zie ergens halverwege de discussie -
- Rang: zGebruiker
- Geregistreerd: 11.11.02
- Laatst gezien: 18.01.07
- Berichten: 17
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 ä 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
-
- Rang: Site Admin
- Geregistreerd: 25.02.03
- Laatst gezien: 09.03.12
- Berichten: 1207
Ik ga er mee aan de slag
__________
-
- Rang: zGebruiker
- Geregistreerd: 11.11.02
- Laatst gezien: 18.01.07
- Berichten: 17
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. -
- Rang: Site Admin
- Geregistreerd: 25.02.03
- Laatst gezien: 09.03.12
- Berichten: 1207
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.
__________
-
- Rang: zPro
- Geregistreerd: 18.03.06
- Laatst gezien: 06.01.09
- Berichten: 267
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?
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?
)
-
- Rang: Site Admin
- Geregistreerd: 25.02.03
- Laatst gezien: 09.03.12
- Berichten: 1207
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.
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.
__________
- Gemodereerd door :
- Support
Gebruikers aanwezig
Deze lijst is gebaseerd op gebruikers die de afgelopen 10 minuten online waren

Reacties