View Full Version: Løst Accents ikke vises riktig ...
freddie3218
07-03-11, 16:09
Hei.
Jeg bruker vBulletin 4,08.
Jeg bruker vbet for i hovedsak to språk ... Engelsk og fransk. Jeg har forumet standard språk satt til engelsk. Men når en fransk bruker poster, viser oversettelsen riktig i engelsk. Men i fransk aksent ikke display. I stedet viser det slik:
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.
Det skal vise slik:
Dans quelle langue vous allez écrire vos messages. Forum traduira automatiquement vos messages à d'autres utilisateurs langues.
Mitt forum er satt opp for å vise både språk som ISO-8859-1. Derfor er jeg ikke bruker UTF-8
Også fulgte jeg monteringsanvisningen nøye.
Den eneste modifiseringen jeg gjort for å vBet er at jeg endret standard flagg ved hjelp av CSS-Sprite. Men, så jeg på koden, og ingenting jeg gjorde skulle effekt slik at ting blir vist.
Må jeg konvertere mine db til UTF-8 for å løse dette problemet?
Eventuelle råd vil bli verdsatt. Thanks. :)
freddie3218
08-03-11, 17:56
Vel .... Jeg funksjonshemmet hver annen plugin, og jeg har fortsatt samme problem. Ser ut som en bug i vbet
kamilkurczak
08-03-11, 19:35
hei, bruker dere UTF-8 forumet og database eller ikke?
Hvis ikke - jeg burde ha en løsning for deg. Jeg wil forberede den og skrive her.
Hvis du kan - vennligst lime her er en url til tråden med dette problemet.
Thanks
freddie3218
09-03-11, 00:15
hei, bruker dere UTF-8 forumet og database eller ikke?
Hvis ikke - jeg burde ha en løsning for deg. Jeg wil forberede den og skrive her.
Hvis du kan - vennligst lime her er en url til tråden med dette problemet.
ThanksNo, jeg bruker en UTF-8 forumet eller database. Jeg bruker ISO-8859-1.
Du kan se problemet leve ved å se denne tråden:
$ 1 Dette er en test (http://kokoku.ca/forums/showthread.php?t=418)
Thanks. :)
freddie3218
10-03-11, 01:05
Noen nyheter på hva som forårsaker det?
kamilkurczak
10-03-11, 10:04
hello,
Jeg tester det på min test forumet (i ikke UTF) og jeg kan ikke reprodusere det, men du kan prøve denne løsningen.
Jeg har noe for deg:
1. åpne, lage en kopi og redigere denne filen:
Forumet root / includes / vbenterprisetranslator_functions_utils.php
2. i denne funksjonen finne:
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. og kommentere alle linjer uten retur som dette:
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. Lagre og test!
dette skal fungere kun for nye innlegg. alle eksisterende poster, bør du redigere for hånd.
Jeg Shure at du har en ISO-forumet, men du kan teste det. Hvis ikke god - vennligst overskrive disse endringene bu gammel fil
freddie3218
10-03-11, 15:30
Hei,
Det var en god prøve. Imidlertid vil det ikke fungere.
Utgangen viser nå: ".. Ceci est un test S'il vous plaà ® t ignorer ce message"
Den riktige utgang bør være: "Ceci est un test S'il vous plait ignorer ce melding.."
Derfor tilbake jeg tilbake.
Her er en ting jeg la merke til:
Når postering og redigering, betyr det ikke vises riktig. Men hvis jeg traff WYSIWYG editor for å gå inn i "basic mode", så vil det vises riktig i WYSIWYG editor. Men når jeg prøver å lagre den, går det å vise feil igjen. Det virker som om WYSIWYG editor ikke er parsing ting riktig før du lagrer når jeg bruker VBET på et fremmed språk, eller når jeg bruker [lang =] tags. Men, hvis jeg legge ut en utenlandsk frase uten å bruke [lang = fr] koder, så vil det vises riktig når du lagrer. Så det virker som VBET ikke er slik at WYSIWYG editor for å analysere riktig før du lagrer ... hvis det gjør noen mening.
kamilkurczak
10-03-11, 23:41
du har dette problemet når du ønsker å legge ut på oversatt side eller ikke? beskriv hva jeg bør gjøre for å ha de samme resultatene på min test forumet.
freddie3218
11-03-11, 07:19
du har dette problemet når du ønsker å legge ut på oversatt side eller ikke? beskriv hva jeg bør gjøre for å ha de samme resultatene på min test forum.I vet ikke om du kan gjengi dette på forumet eller ikke. Men dette er hva som skjer:
VBulletin versjon 4.08
Jeg har to språk på nettstedet mitt: engelsk og fransk. Jeg deaktivert alle andre språk, og alle andre flagg.
All engelsk og fransk er oversatt hele nettstedet riktig, med riktig aksenter. Den eneste gangen aksenter ikke vises riktig er hvis noen bruker det franske språket og innlegg i fransk ... ha "fransk språk" valgt i sin brukerprofil. I dette tilfellet vil VBET tilordne riktige BBcode taggene automatisk når de legger. IE: "[lang = fr]" Men når de sender sine innlegg, vil aksenter på innlegget deres ikke vises riktig. Hvis de trykker på "rediger innlegg"-knappen, vil de se sin post i det avanserte WYSIWYG editor vises feil (jeg har alle kontoer satt opp til å bruke WYSIWYG editor, selv i raske svar, som standard, slik at alle brukere kan legge bilder fra deres harddisk). Men hvis de slå "bryteren editor mode"-knappen frem og tilbake, vil de se sin post vises riktig. Likevel, når de prøver å lagre endringene i innlegget sitt, vil det igjen vise feil når de lagrer sine innlegg.
Dette problemet skjer bare når brukeren benytter den "franske språket" i sin brukerprofil innstillinger og legge ut i det franske språk ... dermed vbet legge til [lang = fr] til et innlegg automatisk.
Min forumet standardspråket er engelsk.
Hvis du trenger å ta en titt rundt på forumet mitt ... pm meg, og jeg vil sende deg nødvendig informasjon for å sjekke ut min admin panel oppsett.
Jeg håper denne informasjonen er nyttig.
Thanks.
kamilkurczak
11-03-11, 10:06
Ja. Jeg kan bekrefte det på min test forumet!
Dette er en vBET bug så jeg trenger å flytte denne tråden inn bug rapportering delen.
Jeg la merke til at det er en koding problem med bokstaver med ASCII-kode under en
Jeg kan gjengi det på min test forumet slik at jeg kan fikse det uten tilgang til forumet ditt:)
Jeg vil prøve å finne den beste løsningen for deg.
freddie3218
12-03-11, 06:02
Ja. Jeg kan bekrefte det på min test forumet!
Dette er en vBET bug så jeg trenger å flytte denne tråden inn bug rapportering delen.
Jeg la merke til at det er en koding problem med bokstaver med ASCII-kode under en
Jeg kan gjengi det på min test forumet slik at jeg kan fikse det uten tilgang til forumet ditt:)
Jeg vil prøve å finne den beste løsningen for deg.
Vel den gode nyheten er at jeg fikset problemet selv. Den dårlige nyheten er at jeg ikke kan bekrefte at denne løsningen vil fungere som en erstatning funksjon ... som det fungerer bare på mine fora.
Uansett, her er den nye funksjonen:
function vbet_encodeToSafeUTF8(&$string) {
$string = utf8_decode($string);
return $string;
}
Denne funksjonen konverterer UTF-8 til ISO-8859-1
kamilkurczak
12-03-11, 13:31
takk for dette gode nyheter. Jeg skal teste den og bekreft
kamilkurczak
13-03-11, 13:15
hello,
Din løsning er ikke god i generelt. Hvorfor? Dette er arbeider med bokstaver med ASCII-kode i henhold til 256 (konvertert og vist god), men bokstaver med ASCII-kode enn 256 har jeg "?" tegn.
Så vi må kombinere våre to løsninger i ett;)
eksempel:
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;
}
denne linjen:
[\304-\337] definere enn bokstaver med ASCII-kode i henhold 256 vil ikke bli dekodet av funksjon mitt men bare ved
utf8_decode
Jeg teste den still.I er ikke helt sikker på at alt fungerer riktig nå.
Du kan teste det også!
freddie3218
14-03-11, 05:10
For mitt formål, fungerer løsningen fint ... som jeg bare oversette inn i to langauges ... Engelsk og fransk. Begge er ISO-8859-1 (latin1) språk. Derfor "utf_decode"-funksjonen fungerer fint.
Men med et globalt omfang i sikte, vil utf_decode fungere sannsynligvis ikke fungerer for andre språk utenfor "latin1".
Jeg er ikke mye av en vBulletin programmerer. Imidlertid vil jeg tilby ett forslag:
Kanskje ved hjelp av en "Hvis" statement kan passe ditt formål bedre hvis løsningen ikke fungerer. I eksempelet nedenfor ville "translated_language_var" være målet språk å oversette til.
IE:
$latin1 = array(English,French,Spanish,Italian....etc);
if (in_array(translated_language_var,$latin1)){
$string = utf_decode($string);
}else{
original solution;
}
return $string;
Kanskje bruke noe som dette ville være en sikker metode for å holde alt trygt ...??? Jeg er sikker på at du lett kan bruke denne pseudo-kode og gjøre det arbeidet for vBulletin. :)
kamilkurczak
27-03-11, 22:30
løst - vil bli inkludert i neste Slipp
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.