PDA

View Full Version: Opgelos Aksente word wat nie sigbaar is ...



freddie3218
07-03-11, 16:09
Hi.

Ek gebruik vBulletin 4,08.

Ek gebruik vbet vir hoofsaaklik twee tale ... Engels en Frans. Ek het die forum standaard taal ingestel op Engels. Maar wanneer 'n Franse gebruiker poste, die vertaling vertoon korrek in Engels. Maar, in die Franse die aksent vertoon nie. In plaas daarvan, dit vertoon soos hierdie:


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.

Dit moet vertoon soos hierdie:


Dans quelle langue vous allez écrire vos messages. Forum traduira automatiquement vos messages à d'autres utilisateurs langues.

My forum is gestig om albei tale te vertoon as ISO-8859-1. Daarom, is ek nie met UTF-8

Ook, ek die installasie-instruksies gevolg baie nou saam.

Die enigste verandering wat ek gemaak het vBet, is dat ek die standaard vlae met behulp van CSS-Sprite verander. Maar ek kyk na die kode, en niks wat ek gedoen het, moet die uitwerking dat dinge vertoon.

Moet ek my DB om te skakel na UTF-8 om hierdie probleem op te los?

Enige advies sal waardeer word. Dankie. :)

freddie3218
08-03-11, 17:56
Wel .... Ek gestremdes elke ander plugin, en ek het nog steeds dieselfde probleem. Lyk soos 'n bug in vbet

kamilkurczak
08-03-11, 19:35
Hallo, gebruik jy nie UTF-8 forum en databasis of nie?
Indien nie - ek moet 'n oplossing vir jou. Ek wil dit voor te berei en skryf hier.

As jy nie kan - asseblief die inhoud hier om 'n URL na die draad met hierdie probleem.
Danksy

freddie3218
09-03-11, 00:15
Hallo, gebruik jy nie UTF-8 forum en databasis of nie?
Indien nie - ek moet 'n oplossing vir jou. Ek wil dit voor te berei en skryf hier.

As jy nie kan - asseblief die inhoud hier om 'n URL na die draad met hierdie probleem.
ThanksNo, weet ek nie gebruik om 'n UTF-8 forum of databasis. Ek gebruik ISO-8859-1.

Jy kan sien die probleem leef deur die lees van hierdie draad:

$ 1 Dit is 'n toets (http://kokoku.ca/forums/showthread.php?t=418)

Dankie. :)

freddie3218
10-03-11, 01:05
Enige nuus oor wat is wat dit veroorsaak?

kamilkurczak
10-03-11, 10:04
Hallo,

Ek toets dit op my toets forum (in nie UTF) en ek kan dit nie om voort te plant, maar jy kan hierdie oplossing probeer.
Ek het iets vir jou:
1. oop, maak 'n kopie en wysig hierdie lêer:
forum root / / vbenterprisetranslator_functions_utils.php
2. in hierdie funksie vind:

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 lewer kommentaar van al die lyne sonder terugkeer soos hierdie een:

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. stoor en te toets!

Dit moet net werk vir nuwe poste. alle bestaande poste moet jy met die hand wysig.
Shure ek nie dat jy 'n ISO-forum, maar jy kan dit toets. As dit nie goed - hierdie veranderinge oorskryf bu ou lêer

freddie3218
10-03-11, 15:30
Hi,

Dit was 'n goeie drie. Dit beteken egter nie werk nie.

Die uitset toon nou: ".. Ceci est un toets S'il vous plaà ® t ignorer ce boodskap"

Die regte afvoer moet wees: "Ceci est un toets S'il vous vleg ignorer ce boodskap."

Daarom, het ek teruggekeer terug.

Hier is een ding ek opgemerk:

By die plekke en redigering, beteken dit nie korrek vertoon. Maar, as ek die redakteur van die WYSIWYG knoppie om te gaan in die "basiese modus" getref het, dan is dit korrek vertoon in die WYSIWYG-redakteur. Maar toe ek probeer om dit op te slaan, is dit terug na die toon verkeerd weer. Dit blyk dat die redakteur van WYSIWYG nie pars eer van die dinge korrek voordat spaar wanneer ek VBET in 'n vreemde taal gebruik, of wanneer ek met behulp van die lang =] tags. Maar, as ek 'n vreemde sin sonder die gebruik van die lang = fr] tags post, dan sal dit korrek vertoon wanneer jy dit stoor. So blyk dit dat VBET nie toelaat dat die WYSIWYG editor te korrek te parse voordat dit op te slaan ... as dit enige sin maak.

kamilkurczak
10-03-11, 23:41
Jy het hierdie probleem wanneer jy wil om te post op vertaalde bladsy is of nie? beskryf asseblief wat ek moet doen om dieselfde resultate op my toets forum te.

freddie3218
11-03-11, 07:19
Jy het hierdie probleem wanneer jy wil om te post op vertaalde bladsy is of nie? beskryf wat ek moet doen om dieselfde resultate op my toets forum.I te weet nie as jy dit op jou forum of nie kan voortplant. Dit is egter wat gebeur:

VBulletin weergawe 4,08
Ek het twee tale op my site: Engels en Frans. Ek gestremd is al die ander tale, en alle ander vlae.
Alle Engelse en die Franse die hele werf is vertaal gewoon, met die regte aksent. Die enigste tyd wat die aksent te doen nie korrek vertoon word as iemand met behulp van die Franse taal en poste in die Franse ... met die Franse taal "wat gekies is in hul gebruiker profiel. In hierdie geval, sal VBET toewys die behoorlike BBCode tags outomaties wanneer hulle post. Naamlik: "[lang = fr]" Maar, sodra hulle hul pos, die aksent op hul pos sal nie behoorlik verskyn. As hulle die "edit post" knoppie druk, sal hulle hul advertensie te sien in die gevorderde WYSIWYG-redakteur vertoon onbehoorlik (Ek het al die rekeninge opstel van die WYSIWYG editor te gebruik, selfs in vinnige antwoord, by verstek sodat alle gebruikers foto's kan aanheg van hulle hardeskyf). Maar as hulle wissel van die "skakelaar redakteur af" knoppie heen en weer, sal sien hulle hul boodskap korrek vertoon. Tog, wanneer hulle probeer om die veranderinge aan hul boodskap te red, sal dit weer onbehoorlik te vertoon wanneer hulle hul boodskap red.

Hierdie probleem gebeur slegs wanneer die gebruiker is met behulp van die "Franse taal" in hul gebruiker profiel instellings en plaas in die Franse taal ... waardeur vbet voeg die lang = fr] outomaties na 'n post.

My forum standaard taal is Engels.

As jy nodig het om 'n blik te neem om op my forum ... pm my, en Ek sal vir jou die nodige inligting te check out my admin paneel opstelling.

Ek hoop hierdie inligting is nuttig.

Dankie.

kamilkurczak
11-03-11, 10:06
Ja. Ek kan bevestig dat dit op my toets forum!
Dit is 'n vBET bug sodat ek nodig het om hierdie draad te skuif na die fout reporting artikel.

Ek het opgemerk dat daar 'n kodering probleem met die briewe met die ASCII kode onder ä

Ek kan voortplant dit op my toets forum, so ek kan dit regmaak sonder toegang tot jou forum:)

Ek sal probeer om die beste oplossing te vind vir jou.

freddie3218
12-03-11, 06:02
Ja. Ek kan bevestig dat dit op my toets forum!
Dit is 'n vBET bug sodat ek nodig het om hierdie draad te skuif na die fout reporting artikel.

Ek het opgemerk dat daar 'n kodering probleem met die briewe met die ASCII kode onder ä

Ek kan voortplant dit op my toets forum, so ek kan dit regmaak sonder toegang tot jou forum:)

Ek sal probeer om die beste oplossing te vind vir jou.
Wel, die goeie nuus is dat ek die probleem is vasgestel myself. Die slegte nuus is dat ek nie kan bevestig dat hierdie oplossing sal werk as 'n plaasvervanger-funksie ... as dit werk net op my forums.

Ongeag, hier is die nuwe funksie:



function vbet_encodeToSafeUTF8(&$string) {

$string = utf8_decode($string);
return $string;
}


Hierdie funksie vat UTF-8 tot ISO-8859-1

kamilkurczak
12-03-11, 13:31
Dankie vir hierdie goeie nuus. Ek sal dit toets en te bevestig

kamilkurczak
13-03-11, 13:15
Hallo,
Jou oplossing is nie goed in die algemeen. Hoekom nie? Dit werk met die letters met die ASCII kode onder 256 (omskep en goed vertoon), maar meer as 256 briewe met die ASCII kode Ek het "?" tekens.

Ons moet dus ons twee oplossings te kombineer in een;)

byvoorbeeld:

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;
}

hierdie lyn:
[\304-\337] definieer as die briewe met die ASCII kode onder 256 sal nie deur my funksioneer nie, maar slegs deur gedekodeer
utf8_decode

Ek toets dit still.I is nie heeltemal seker dat alles korrek werk nou nie.
Jy kan dit te toets!

freddie3218
14-03-11, 05:10
Vir my doeleindes, is die oplossing werk goed ... Ek is maar net vertaal in twee langauges ... Engels en Frans. Albei is ISO-8859-1 (latin1) tale. Daarom is die "utf_decode"-funksie werk goed.

Maar, met 'n globale omvang met die oog op die utf_decode funksie sal waarskynlik nie werk vir ander tale buite "latin1".

Ek is nie veel van 'n vBulletin programmeerder. Ek sal egter 'n voorstel:

Miskien is met behulp van 'n "Indien" verklaring kan jou doeleindes pas beter as u' n oplossing nie werk nie. In die voorbeeld hieronder, sou die "translated_language_var" die bestemming taal te vertaal in.

Internet Explorer:


$latin1 = array(English,French,Spanish,Italian....etc);

if (in_array(translated_language_var,$latin1)){

$string = utf_decode($string);

}else{

original solution;
}

return $string;

Miskien is die gebruik van iets soos hierdie sou 'n seker manier om alles veilig te hou word ...??? Ek is seker dat jy dit maklik kan gebruik om hierdie pseudo-kode, en maak dit werk vir vBulletin. :)

kamilkurczak
27-03-11, 22:30
opgelos sal ingesluit word in die volgende Communique

Automatic Translations (Powered by Google, Microsoft®, Yandex, SDL Language Cloud, IBM Watson and Apertium):
AfrikaansAlbanianArabicBelarusianBulgarianCatalanChineseCroatianCzechDanishDutchEnglishEstonianFilipinoFinnishFrenchGalicianGermanGreekHaitian CreoleHebrewHindiHungarianIcelandicIndonesianIrishItalianJapaneseKoreanLatvianLithuanianMacedonianMalayMalteseNorwegianPersianPolishPortugueseRomanianRussianSerbianSlovakSlovenianSpanishSwahiliSwedishTaiwaneseThaiTurkishUkrainianVietnameseWelshYiddish
Translations by vBET Translator 4.10.1