Visualizza la versione completa: Risolto Accenti non visualizza correttamente ...
freddie3218
07-03-11, 16:09
Ciao.
Sto usando vBulletin 4.08.
Io uso vbet principalmente per due lingue ... Inglese e francese. Ho la lingua predefinita impostata su forum inglese. Tuttavia, ogni volta che un utente francese, la traduzione viene visualizzata correttamente in inglese. Tuttavia, in francese gli accenti non vengono visualizzati. Al contrario, viene visualizzato in questo modo:
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.
Si dovrebbe mostrare come questo:
Dans quelle langue vous allez écrire vos messages. Forum traduira automatiquement vos messages à d'autres utilisateurs langues.
Il mio forum è impostato per visualizzare entrambe le lingue come ISO-8859-1. Quindi, io non sto usando UTF-8
Inoltre, ho seguito le istruzioni di installazione molto da vicino.
L'unica modifica che ho fatto a vBet è che ho cambiato le bandiere di default usando CSS Sprite. Tuttavia, ho guardato il codice, e nulla ho fatto dovrebbe effetto il modo in cui le cose vengono visualizzati.
Devo convertire il mio db in UTF-8 per risolvere questo problema?
Qualche consiglio sarà apprezzato. Grazie. :)
freddie3218
08-03-11, 17:56
Bene .... Ho disabilitato tutti i plugin, e ho ancora lo stesso problema. Sembra che un bug nel vbet
kamilkurczak
08-03-11, 19:35
ciao, si usa UTF-8 e il database del forum o no?
In caso contrario - avrei una soluzione per voi. I wil lo prepara e scrivere qui.
Se si può - si prega di pasta: ecco un url al thread con questo problema.
Grazie
freddie3218
09-03-11, 00:15
ciao, si usa UTF-8 e il database del forum o no?
In caso contrario - avrei una soluzione per voi. I wil lo prepara e scrivere qui.
Se si può - si prega di pasta: ecco un url al thread con questo problema.
ThanksNo, io non uso UTF-8 forum o database. Io uso ISO-8859-1.
Potete vedere il problema dal vivo visualizzando questa discussione:
1 $ Questo è un test (http://kokoku.ca/forums/showthread.php?t=418)
Grazie. :)
freddie3218
10-03-11, 01:05
Tutte le notizie su quali sono le cause?
kamilkurczak
10-03-11, 10:04
ciao,
Sto testando sul mio forum di prova (non in UTF) e non riesco a riprodurre, ma si può provare questa soluzione.
Ho qualcosa per voi:
1. aperto, fare una copia e modificare questo file:
forum root / includes / vbenterprisetranslator_functions_utils.php
2. in questa funzione trovare:
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. e commentare tutte le linee senza ritorno come questo:
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. salvare e prova!
questo dovrebbe funzionare solo per i nuovi posti. tutti i posti esistenti è necessario modificare a mano.
Io non shure che hai un forum ISO, ma potete provarlo. Se non è buona - si prega di sovrascrivere i file di cambiamenti bu vecchio
freddie3218
10-03-11, 15:30
Ciao a tutti,
E 'stata una buona prova. Tuttavia, non funziona.
L'uscita ora mostra: ".. Ceci est prova ONU S'il vous plaa ® t ignorer messaggio ce"
L'uscita corretta dovrebbe essere: "Ceci est prova ONU S'il vous plait ignorer messaggio ce.."
Pertanto, mi è ritornata.
Ecco una cosa che ho notato:
Durante la pubblicazione e la modifica, non viene visualizzata correttamente. Tuttavia, se ho colpito il tasto editor WYSIWYG per entrare in modalità "base", allora sarà visualizzato correttamente nel editor WYSIWYG. Tuttavia, quando cerco di salvarlo, ritorna a mostrare ancora una volta in modo errato. Sembra che l'editor WYSIWYG non è l'analisi di cose correttamente prima di salvare quando sto usando VBET in una lingua straniera, o quando sto usando il [lang =] tag. Tuttavia se inserisco una frase straniera senza utilizzare il [lang = fr] tag, allora sarà visualizzato correttamente durante il salvataggio. Così sembra che VBET non permette l'editor WYSIWYG per analizzare correttamente prima di salvare ... se questo ha un senso.
kamilkurczak
10-03-11, 23:41
avete questo problema quando si desidera inviare a pagina tradotta o no? descrivere che cosa dovrei fare per avere gli stessi risultati sul mio forum di prova.
freddie3218
11-03-11, 07:19
avete questo problema quando si desidera inviare a pagina tradotta o no? descrivere che cosa dovrei fare per avere gli stessi risultati sul mio forum.I prova non so se è possibile riprodurre questo sul tuo forum o meno. Tuttavia, questo è ciò che accade:
VBulletin versione 4.08
Ho due lingue sul mio sito: inglese e francese. Ho disabilitato tutte le altre lingue, e tutte le altre bandiere.
Tutti inglese e francese è tradotto in tutto il sito correttamente, con gli accenti corretta. L'unica volta che gli accenti non vengono visualizzati correttamente è se qualcuno sta usando la lingua francese e file contenuti in francese ... avere la "lingua francese" scelto nel proprio profilo utente. In questo caso, VBET assegnerà i tag BBcode corretto automaticamente in caso di distacco. IE: "[lang = fr]" Tuttavia, una volta presentare il loro posto, gli accenti sul suo messaggio non sarà visualizzato correttamente. Se si preme il "post modifica" pulsante, vedranno il loro posto nel editor avanzato WYSIWYG visualizzata correttamente (tutti gli account che ho impostato per usare l'editor WYSIWYG, anche in risposta veloce, per impostazione predefinita in modo che tutti gli utenti possono allegare immagini da il loro hard-drive). Tuttavia, se attivare o disattivare il "redattore selettore di modalità" pulsante avanti e indietro, vedranno i loro messaggi visualizzati correttamente. Eppure, quando cercano di salvare le modifiche al loro posto, sarà ancora una volta mostra in modo improprio quando salvare il loro posto.
Questo problema si verifica solo quando l'utente sta usando la "lingua francese" nelle impostazioni del proprio profilo utente e la pubblicazione in lingua francese ... rendendo così vbet aggiungere il [lang = it] per un post automaticamente.
La mia lingua di default del forum è l'inglese.
Se avete bisogno di dare un'occhiata in giro sul mio forum ... pm a me, e io vi invierà le informazioni necessarie per controllare il mio impostazione pannello di amministrazione.
Spero che questa informazione è utile.
Grazie.
kamilkurczak
11-03-11, 10:06
Sì. Posso confermare il mio forum di prova!
Si tratta di un bug vBET quindi ho bisogno di spostare questa discussione nella sezione bug report.
Ho notato che c'è un problema di codifica con le lettere con codice ASCII sotto un
Io posso riprodurlo sul mio forum di prova in modo che possa essere risolto senza accesso al tuo forum:)
Cercherò di trovare la migliore soluzione per voi.
freddie3218
12-03-11, 06:02
Sì. Posso confermare il mio forum di prova!
Si tratta di un bug vBET quindi ho bisogno di spostare questa discussione nella sezione bug report.
Ho notato che c'è un problema di codifica con le lettere con codice ASCII sotto un
Io posso riprodurlo sul mio forum di prova in modo che possa essere risolto senza accesso al tuo forum:)
Cercherò di trovare la migliore soluzione per voi.
Beh, la buona notizia è che ho risolto il problema da solo. La cattiva notizia è che non posso confermare che questa soluzione funzionerà come una funzione di sostituzione ... come funziona solo sul mio forum.
Indipendentemente da ciò, ecco la nuova funzione:
function vbet_encodeToSafeUTF8(&$string) {
$string = utf8_decode($string);
return $string;
}
Questa funzione converte UTF-8 a ISO-8859-1
kamilkurczak
12-03-11, 13:31
grazie per questa buona notizia. Io la prova e confermare
kamilkurczak
13-03-11, 13:15
ciao,
La soluzione non è buona in generale. Perché? Questo sta lavorando con le lettere con codice ASCII sotto 256 (convertito e visualizzato bene), ma le lettere con codice ASCII superiore a 256 ho "?" segni.
Quindi abbiamo bisogno di unire le nostre due soluzioni in un unico;)
esempio:
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;
}
questa riga:
[\304-\337] definire di lettere con codice ASCII meno di 256 non verrà decodificato dalla mia funzione, ma solo da
utf8_decode
Lo sto test still.I non sono del tutto sicuro che tutto funziona correttamente ora.
Lo si può testare anche!
freddie3218
14-03-11, 05:10
Per i miei scopi, la soluzione funziona benissimo ... come sto solo traducendo in due linguaggi di ... Inglese e francese. Entrambi sono ISO-8859-1 (latin1) lingue. Pertanto la funzione "utf_decode" funziona bene.
Tuttavia, con una portata globale in vista, la funzione utf_decode probabilmente non funzionerà per le altre lingue al di fuori di "latin1".
Io non sono un gran programmatore vBulletin. Tuttavia, mi offrirà un suggerimento:
Forse con un "Se" dichiarazione può soddisfare i vostri scopi meglio se la soluzione non funziona. Nell'esempio qui sotto, il "translated_language_var" sarebbe la lingua di destinazione di tradurre 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;
Magari utilizzando qualcosa come questo sarebbe un metodo sicuro per tenere tutto sicuro ...??? Sono sicuro che si potrebbe facilmente utilizzare questo pseudo codice e farlo funzionare per vBulletin. :)
kamilkurczak
27-03-11, 22:30
risolto - sarà incluso nella prossima relase
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.