PDA

View Full Version: Rezolvate Accente nu afişează corect ...



freddie3218
07-03-11, 16:09
Bună.

Sunt folosind vbulletin 4.08.

Eu folosesc pentru vBET în principal, două limbi ... Limbile engleză şi franceză. Am limba maternă pe forum pentru setată la limba engleză. Cu toate acestea, ori de câte ori un utilizator posturi franceză, traducerea se afişează corect în limba engleză. Cu toate acestea, în franceză accentele nu se afişează. În schimb, se afişează astfel:


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.

Acesta ar trebui să afişeze ca aceasta:


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

Pe forum pentru meu este configurat pentru a afişa ambele limbi ca ISO-8859-1. Prin urmare, eu nu sunt folosind UTF-8

De asemenea, am urmat instrucţiunile de instalare foarte îndeaproape.

Singura modificare am făcut să vBET este că am schimbat indicatorii implicit cu ajutorul CSS-Sprite. Cu toate acestea, m-am uitat la codul, şi nimic nu ar trebui să am făcut efectul modul în care lucrurile sunt afişate.

Trebuie să-mi converti db la UTF-8 pentru a rezolva această problemă?

Orice sfat va fi apreciat. Multumesc. :)

freddie3218
08-03-11, 17:56
Ei bine .... Am dezactivat orice alte plugin, şi eu încă mai au aceeaşi problemă. Se pare ca un bug în vBET

kamilkurczak
08-03-11, 19:35
salut, nu utilizaţi UTF-8 şi pe forum pentru baze de date sau nu?
Dacă nu - eu ar trebui să aibă o solutie pentru tine. Am Wil-l pregătească şi să scrie aici.

Daca puteti - vă rugăm să inseraţi aici o adresă URL la firul cu această problemă.
Mulţumiri

freddie3218
09-03-11, 00:15
salut, nu utilizaţi UTF-8 şi pe forum pentru baze de date sau nu?
Dacă nu - eu ar trebui să aibă o solutie pentru tine. Am Wil-l pregătească şi să scrie aici.

Daca puteti - vă rugăm să inseraţi aici o adresă URL la firul cu această problemă.
ThanksNo, eu nu folosesc un UTF-8 sau pe forum pentru baza de date. Eu folosesc ISO-8859-1.

Puteţi vedea problema viu prin care vizionează acest subiect:

1 dolar Acesta este un test (http://kokoku.ca/forums/showthread.php?t=418)

Multumesc. :)

freddie3218
10-03-11, 01:05
Orice ştiri despre ceea ce este cauza?

kamilkurczak
10-03-11, 10:04
Buna ziua,

Sunt o testare pe forum mea de test (în care nu UTF), şi eu nu pot să-l reproducă, dar poti incerca aceasta solutie.
Am ceva pentru tine:
1. deschis, faceţi o copie şi editaţi acest fişier:
pe forum pentru root / include / vbenterprisetranslator_functions_utils.php
2. găsi în această funcţie:

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. şi să comenteze toate liniile fără întoarcere ca aceasta:

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. salva şi de testare!

acest lucru ar trebui să lucreze doar pentru noi posturi. toate posturile existente, trebuie să editaţi de mână.
Eu nu sigur că aveţi o pe forum pentru ISO, dar îl puteţi testa. Dacă nu bun - vă rugăm să suprascriu aceste modificări fişierul vechi bu

freddie3218
10-03-11, 15:30
Bună,

Asta a fost o încercare bună. Cu toate acestea, aceasta nu funcţionează.

De ieşire acum prezinta: ".. Ceci est ONU de testare S'il vous plaà ® t ignorer CE mesaj"

De ieşire corectă ar trebui să fie: "Ceci est ONU de testare S'il vous impleti ignorer CE mesajul.."

Prin urmare, am revenit.

Aici este un singur lucru am observat:

Atunci când detaşarea şi editarea, aceasta nu se afişează corect. Cu toate acestea, dacă apăs pe butonul editorul WYSIWYG pentru a merge în "modul de bază", atunci el va afişa corect în editorul WYSIWYG. Cu toate acestea, atunci când încerc să-l salveze, ea revine la arată incorect din nou. Se pare că editorul WYSIWYG nu este parsarea lucrurile corect înainte de a salva atunci când eu sunt, folosind vBET într-o limbă străină, sau atunci când eu sunt, folosind [lang =] tag-uri. Cu toate acestea, dacă am posta o frază străină fără a utiliza [lang = fr] Tags, atunci se va afişa corect atunci când salvarea. Deci se pare că nu este vBET permite editorul WYSIWYG pentru a analiza în mod corect înainte de a salva ... în cazul în care face nici un sens.

kamilkurczak
10-03-11, 23:41
aveţi această problemă atunci când doriţi pentru a posta pe pagina tradusă sau nu? Vă rugăm să descrieţi ceea ce ar trebui să fac pentru a avea aceleaşi rezultate pe forum pentru mea de test.

freddie3218
11-03-11, 07:19
aveţi această problemă atunci când doriţi pentru a posta pe pagina tradusă sau nu? Vă rugăm să descrieţi ceea ce ar trebui să fac pentru a avea aceleaşi rezultate pe forum.I mea de test nu ştiu dacă vă pot reproduce acest pe forum sau nu. Cu toate acestea, acest lucru este ceea ce se întâmplă:

VBulletin Version 4.08
Am două limbi pe site-ul meu: engleză şi franceză. Am dezactivat toate celelalte limbi, şi toate celelalte steaguri.
Toate limbile engleză şi franceză este tradus tot site-ul în mod corespunzător, cu accente corespunzătoare. Singura dată accentele nu se afişează corect este dacă cineva foloseşte limba franceză şi posturi în limba franceză ... având în "limba franceză", alese în profilul de utilizator lor. În acest caz, vBET va atribui etichete corespunzătoare BBcode automat atunci cand acestia trimit un mesaj. IE: "[lang = fr]" Cu toate acestea, odată ce acestea prezintă posta lor, accente pe postul lor nu va apărea în mod corespunzător. În cazul în care apăsaţi pe "post edit" buton, ei vor vedea posta lor în editorul WYSIWYG avansate afişate în mod necorespunzător (am toate conturile configurate să folosească editorul WYSIWYG, chiar şi în răspuns rapid, în mod implicit, astfel încât toţi utilizatorii pot ataşa imagini de la lor de hard-drive). Cu toate acestea, în cazul în care comuta "modul de editor comutator" buton înainte şi înapoi, ei vor vedea posta lor apar în mod corespunzător. Cu toate acestea, atunci când încercaţi să salvaţi modificările pentru a posta lor, se va afişa din nou în mod necorespunzător, atunci când a salva postul lor.

Această problemă se întâmplă numai atunci când utilizatorul este folosind "limbii franceze" din setările lor de profilul de utilizator şi detaşarea în limba franceză ... făcând astfel vBET adăuga [lang = fr] într-un post în mod automat.

Limba mea implicit forum este limba engleză.

Dacă aveţi nevoie să aruncăm o privire în jurul valorii de pe forumul meu ... pm-mă, şi eu vă va trimite informaţiile necesare pentru a verifica configurarea mea panoul de administrare.

Sper că această informaţie este de ajutor.

Multumesc.

kamilkurczak
11-03-11, 10:06
Da. Pot să-l confirma pe forum mea de test!
Acesta este un bug vBET, aşa că am nevoie pentru a muta acest subiect în secţiunea de raportare a erorilor.

Am observat că există o problemă de codificare cu litere cu codul ASCII în cadrul unui

Pot să-l reproduc pe forumul meu de încercare, aşa că am poate repara fara acces la forumul dvs.:)

Eu va încerca să găsească cea mai bună soluţie pentru dumneavoastră.

freddie3218
12-03-11, 06:02
Da. Pot să-l confirma pe forum mea de test!
Acesta este un bug vBET, aşa că am nevoie pentru a muta acest subiect în secţiunea de raportare a erorilor.

Am observat că există o problemă de codificare cu litere cu codul ASCII în cadrul unui

Pot să-l reproduc pe forumul meu de încercare, aşa că am poate repara fara acces la forumul dvs.:)

Eu va încerca să găsească cea mai bună soluţie pentru dumneavoastră.
Ei bine, vestea bună este că am rezolvat problema singur. Vestea proastă este că eu nu pot confirma faptul că această soluţie va funcţiona ca o funcţie de înlocuire ... ca ea functioneaza doar pe forumuri mea.

Indiferent, aici este noua functie:



function vbet_encodeToSafeUTF8(&$string) {

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


Această funcţie transformă UTF-8 la ISO-8859-1

kamilkurczak
12-03-11, 13:31
mulţumesc pentru această veste bună. Voi testa şi confirmaţi

kamilkurczak
13-03-11, 13:15
Buna ziua,
Soluţia nu este bună în general. De ce? Acest lucru este de lucru cu litere cu cod ASCII în conformitate cu 256 (convertite şi afişat bun), dar scrisori cu cod ASCII peste 256 am "?" semne.

Deci, avem nevoie de a combina cele doua solutii intr-unul;)

de exemplu:

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

această linie:
[\304-\337] define decât scrisori cu cod ASCII în conformitate cu 256 nu vor fi decodate de către funcţia mea, ci numai de către
utf8_decode

Sunt o testare still.I nu sunt în totalitate sigur că totul funcţionează corect acum.
Îl puteţi testa prea!

freddie3218
14-03-11, 05:10
În scopul meu, solutia functioneaza bine ... ca eu sunt doar traducerea în două langauges ... Limbile engleză şi franceză. Ambele sunt ISO-8859-1 (latin1) limbi. Prin urmare, "utf_decode" funcţia merge bine.

Cu toate acestea, cu un domeniu de aplicare la nivel mondial, având în vedere, funcţia utf_decode nu va funcţiona, probabil, pentru alte limbi in afara de "latin1".

Eu nu sunt de mult de un programator vBulletin. Cu toate acestea, voi oferi o sugestie:

Poate folosind un "Dacă" situaţia poate potrivi cu scopurile mai bine dacă soluţia ta nu funcţionează. In exemplul de mai jos, "translated_language_var" ar fi limba de destinaţie să se traducă în.

IE:


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

if (in_array(translated_language_var,$latin1)){

$string = utf_decode($string);

}else{

original solution;
}

return $string;

Poate că folosind ceva de genul asta ar fi o metodă de sigur pentru a menţine totul în condiţii de siguranţă ...??? Sunt sigur că ai putea folosi cu uşurinţă acest cod pseudo-şi face de lucru pentru vbulletin. :)

kamilkurczak
27-03-11, 22:30
rezolvate - vor fi incluse în următoarea DISEMINAREA

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