View Full Version: Opgelost Accenten niet goed weergegeven ...
freddie3218
07-03-11, 16:09
Hi.
Ik gebruik vBulletin 4,08.
Ik gebruik vbet voor met name twee talen ... Engels en Frans. Ik heb de forum standaard taal ingesteld op Engels. Echter, wanneer een Franse gebruiker posts, de vertaling correct wordt weergegeven in het Engels. Echter, in het Frans de accenten niet weergegeven. In plaats daarvan toont het als volgt:
Dans quelle langue vous allez & #233;crire vos messages. Forum traduira automatiquement vos messages & #224; d'autres utilisateurs langues. En outre, il se traduira par des postes dans d'autres langues & #224; votre langue par d& #233;faut.
Het moet weer als volgt uit:
Dans quelle langue vous allez écrire vos messages. Forum traduira automatiquement vos messages à d'autres utilisateurs langues.
Mijn forum is opgezet om beide talen weer te geven als ISO-8859-1. Ik ben dan ook geen gebruik van UTF-8
Ook volgde ik de installatie-instructies op de voet.
De enige wijziging ik heb gemaakt om te vBet is dat ik de standaard vlaggen met behulp van CSS-Sprite veranderd. Toch keek ik naar de code, en niets wat ik deed zou de manier waarop dingen worden getoond effect.
Moet ik mijn db te converteren naar UTF-8 om dit probleem op te lossen?
Elk advies wordt op prijs gesteld. Dank. :)
freddie3218
08-03-11, 17:56
Goed .... Ik heb met een handicap elke andere plug-in, en ik heb nog steeds hetzelfde probleem. Ziet eruit als een bug in vbet
kamilkurczak
08-03-11, 19:35
hallo, gebruik je UTF-8 forum en database of niet?
Zo niet - ik moet een oplossing voor je. Ik Wil bereiden en te schrijven hier.
Als u - neem plak hier een url om de draad met deze kwestie.
Bedankt
freddie3218
09-03-11, 00:15
hallo, gebruik je UTF-8 forum en database of niet?
Zo niet - ik moet een oplossing voor je. Ik Wil bereiden en te schrijven hier.
Als u - neem plak hier een url om de draad met deze kwestie.
ThanksNo, ik gebruik geen UTF-8 forum of database. Ik gebruik ISO-8859-1.
U kunt zien dat het probleem leeft door het bekijken van deze draad:
$ 1 Dit is een test (http://kokoku.ca/forums/showthread.php?t=418)
Dank. :)
freddie3218
10-03-11, 01:05
Nog nieuws over wat de oorzaak is?
kamilkurczak
10-03-11, 10:04
hello,
Ik ben het testen van het op mijn test forum (in niet UTF) en ik kan het niet te reproduceren, maar u kunt deze oplossing proberen.
Ik heb iets voor u:
1. open, een kopie te maken en bewerken van dit bestand:
forum root / includes / vbenterprisetranslator_functions_utils.php
2. in deze functie vinden:
function vbet_encodeToSafeUTF8(&$string) {
//TODO how to check does utf-8 is involved? how often this function is used?
// if (! ereg('[\200-\237]', $string) and ! ereg('[\241-\377]', $string))
// if (!preg_match('/[\200-\237]/', $string) and !preg_match('/[\241-\377]/', $string))
// if (!preg_match('/[\200-\237\241-\377]/e', $string))
// return $string;
// decode three byte unicode characters
$string = preg_replace('/([\340-\357])([\200-\277])([\200-\277])/e',
'\'&#\'.((ord(\'\\1\')-224)*4096 + (ord(\'\\2\')-128)*64 + (ord(\'\\3\')-128)).\';\'',
$string);
//decode two byte unicode characters
$string = preg_replace('/([\300-\337])([\200-\277])/e',
'\'&#\'.((ord(\'\\1\')-192)*64+(ord(\'\\2\')-128)).\';\'',
$string);
return $string;
}
3. en becommentarieer alle lijnen zonder terug te keren zoals deze:
function vbet_encodeToSafeUTF8(&$string) {
//TODO how to check does utf-8 is involved? how often this function is used?
// if (! ereg('[\200-\237]', $string) and ! ereg('[\241-\377]', $string))
// if (!preg_match('/[\200-\237]/', $string) and !preg_match('/[\241-\377]/', $string))
// if (!preg_match('/[\200-\237\241-\377]/e', $string))
// return $string;
// decode three byte unicode characters
// $string = preg_replace('/([\340-\357])([\200-\277])([\200-\277])/e',
// '\'&#\'.((ord(\'\\1\')-224)*4096 + (ord(\'\\2\')-128)*64 + (ord(\'\\3\')-128)).\';\'',
// $string);
//decode two byte unicode characters
//$string = preg_replace('/([\300-\337])([\200-\277])/e',
// '\'&#\'.((ord(\'\\1\')-192)*64+(ord(\'\\2\')-128)).\';\'',
// $string);
return $string;
}
4. op te slaan en te testen!
deze mogen alleen werkzaamheden voor nieuwe berichten. alle bestaande berichten moet je bewerken met de hand.
Ik niet shure dat je een ISO-forum hebben, maar je kunt testen. Als dat niet goed - neem overschrijven deze veranderingen bu oude bestand
freddie3218
10-03-11, 15:30
Hi,
Dat was een goed te proberen. Toch werkt het niet.
De uitvoer toont nu: ".. Ceci est un-test s'il vous Plaa ® t ignorer ce message"
De juiste uitgang zou moeten zijn: "Ceci est un-test s'il vous plaît ignorer ce bericht.."
Daarom keerde ik terug terug.
Hier is een ding dat ik zag:
Bij het plaatsen en bewerken, is het niet correct weergegeven. Echter, als ik de WYSIWYG editor-knop in te gaan "basic mode" hit, dan zal het juist weer te geven in de WYSIWYG editor. Echter, wanneer ik probeer om het op te slaan, keert het terug te laten zien verkeerd weer. Het lijkt erop dat de WYSIWYG-editor is niet meer correct parsen voordat u deze opslaat wanneer ik VBET in een vreemde taal, of als ik met de [lang =] tags. Echter, als ik een vreemde uitdrukking bericht zonder gebruik te maken van de [lang = fr] tags, dan zal het correct weer te geven bij het opslaan. Dus het lijkt erop dat VBET niet is waardoor de WYSIWYG-editor om correct te ontleden voor het opslaan ... als dat maakt elke zin.
kamilkurczak
10-03-11, 23:41
je hebt dit nummer als je wilt posten op vertaalde pagina of niet? Geef een beschrijving van wat ik moet doen om dezelfde resultaten op mijn test forum hebben.
freddie3218
11-03-11, 07:19
je hebt dit nummer als je wilt posten op vertaalde pagina of niet? Geef een beschrijving van wat ik moet doen om dezelfde resultaten op mijn test forum.I hebben weet niet of je dit reproduceren op uw forum of niet. Echter, dit is wat er gebeurt:
VBulletin versie 4.08
Ik heb twee talen op mijn site: Engels en Frans. Ik met een handicap alle andere talen, en alle andere vlaggen.
Alle Engels en Frans is vertaald door de hele site goed, met de juiste accenten. De enige keer dat de accenten niet goed weergegeven wordt als iemand met behulp van de Franse taal en berichten in het Frans ... met de "Franse taal" gekozen in hun gebruikersprofiel. In dit geval zal VBET automatisch de juiste BBcode labels als ze post. IE: "[lang = nl]" Maar als ze eenmaal hun post in te dienen, de accenten op hun post niet goed worden weergegeven. Als ze op de "edit post"-knop, ze zullen hun post te zien in de geavanceerde WYSIWYG-editor onjuist weergegeven (ik heb alle accounts opgericht om de WYSIWYG editor gebruiken, zelfs in snelle antwoord, standaard zodat alle gebruikers kunnen foto's toevoegen uit hun harde-schijf). Echter, als zij schakelt u de "switch editor mode" knop heen en weer, zullen ze zien dat hun functie goed weergegeven. En toch, wanneer zij proberen om de veranderingen in hun post op te slaan, zal het weer niet goed weer te geven als ze hun post op te slaan.
Dit probleem gebeurt alleen wanneer de gebruiker met behulp van de "FRANSE TAAL 'in hun gebruikersprofiel instellingen en detachering in de Franse taal ... waardoor vbet de [lang = fr] automatisch toe te voegen aan een post.
Mijn forum standaard taal is Engels.
Als u een kijkje te nemen rond op mijn forum ... pm me, en ik zal u de nodige informatie om te controleren of mijn admin panel instellen.
Ik hoop dat deze informatie nuttig is.
Dank.
kamilkurczak
11-03-11, 10:06
Ja. Ik kan bevestigen dat op mijn test forum!
Dit is een vBET bug dus ik moet deze draad te verplaatsen naar het rapporteren van bugs sectie.
Ik heb gemerkt dat er een encoding probleem met brieven met ASCII-code onder een
Ik kan reproduceren op mijn test forum, dus ik kan het probleem te verhelpen, zonder toegang tot je forum:)
Ik zal proberen om de beste oplossing voor u te vinden.
freddie3218
12-03-11, 06:02
Ja. Ik kan bevestigen dat op mijn test forum!
Dit is een vBET bug dus ik moet deze draad te verplaatsen naar het rapporteren van bugs sectie.
Ik heb gemerkt dat er een encoding probleem met brieven met ASCII-code onder een
Ik kan reproduceren op mijn test forum, dus ik kan het probleem te verhelpen, zonder toegang tot je forum:)
Ik zal proberen om de beste oplossing voor u te vinden.
Wel, het goede nieuws is dat ik het probleem opgelost mezelf. Het slechte nieuws is dat ik niet kan bevestigen dat deze oplossing zal werken als een vervanging van de functie ... als het werkt alleen op mijn forums.
Hoe dan ook, hier is de nieuwe functie:
function vbet_encodeToSafeUTF8(&$string) {
$string = utf8_decode($string);
return $string;
}
Deze functie converteert UTF-8 naar ISO-8859-1
kamilkurczak
12-03-11, 13:31
bedankt voor dit goede nieuws. Ik zal testen en te bevestigen
kamilkurczak
13-03-11, 13:15
hello,
Uw oplossing is niet goed in het algemeen. Waarom? Dit is het werken met brieven met ASCII-code onder 256 (omgerekend en weergegeven goede), maar brieven met ASCII-code over 256 ik heb "?" borden.
Dus moeten we onze twee oplossingen te combineren in een;)
voorbeeld:
function vbet_encodeToSafeUTF8(&$string) {
$string = preg_replace('/([\340-\357])([\200-\277])([\200-\277])/e',
'\'&#\'.((ord(\'\\1\')-224)*4096 + (ord(\'\\2\')-128)*64 + (ord(\'\\3\')-128)).\';\'',
$string);
//decode two byte unicode characters
$string = preg_replace('/([\304-\337])([\200-\277])/e',
'\'&#\'.((ord(\'\\1\')-192)*64+(ord(\'\\2\')-128)).\';\'',
$string);
$string = utf8_decode($string);
return $string;
}
deze lijn:
[\304-\337] definiëren dan de letters met ASCII-code onder 256 zal niet worden gedecodeerd door mijn functie, maar alleen door
utf8_decode
Ik ben het testen still.I ben er niet helemaal zeker van dat alles goed werkt nu.
U kunt ook dit te testen!
freddie3218
14-03-11, 05:10
Voor mijn doeleinden, de oplossing werkt prima ... als ik alleen maar vertalen in twee langauges ... Engels en Frans. Beide zijn ISO-8859-1 (latin1) talen. Daarom is de "utf_decode" functie werkt prima.
Echter, met een wereldwijd bereik in het licht, zal de utf_decode functie waarschijnlijk niet werken voor andere talen buiten "latin1".
Ik ben niet veel van een vBulletin programmeur. Ik zal echter bieden een suggestie:
Misschien met behulp van een "If" verklaring kan past bij uw doelstellingen beter als je oplossing niet werkt. In het onderstaande voorbeeld, zou de "translated_language_var" worden de bestemming taal te vertalen in.
IE:
$latin1 = array(English,French,Spanish,Italian....etc);
if (in_array(translated_language_var,$latin1)){
$string = utf_decode($string);
}else{
original solution;
}
return $string;
Misschien met behulp van iets als dit zou een zekere methode om alles veilig te zijn ...??? Ik weet zeker dat je gemakkelijk deze pseudo-code te gebruiken en maken het werk voor vBulletin. :)
kamilkurczak
27-03-11, 22:30
opgelost, - zal worden opgenomen in de volgende release-
Automatic Translations (Powered by Google, Microsoft®,
Yandex, SDL Language Cloud, IBM Watson and Apertium):
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.