PDA

Zobraziť plnú verziu: Vyriešené Akcenty nezobrazuje správne ...



freddie3218
07-03-11, 16:09
Dobrý deň.

Ja používam 4,08 vBulletin.

Používam vbet hlavne pre dva jazyky ... Angličtina a francúzština. Mám forum predvolený jazyk nastavená angličtina. Avšak, keď francúzsky užívateľa, preklad sa zobrazí správne v angličtine. Avšak, vo francúzštine prízvuk sa nezobrazujú. Namiesto toho sa zobrazí takto:


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.

Mal by sa vypísať takto:


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

My fórum je nastavený na zobrazenie oboch jazykov ako ISO-8859-1. Preto som sa v UTF-8

Tiež som sa podľa pokynov na inštaláciu veľmi blízko.

Jediná zmena som dal vBet je, že som zmenil predvolené príznaky pomocou CSS Sprite. Avšak, som sa pozrel na kód, a nič som mal účinok tak, že veci sa zobrazí.

Musím zmeniť mojej db na UTF-8, aby tento problém vyriešiť?

Nejakú radu ocenia. Vďaka. :)

freddie3218
08-03-11, 17:56
No .... Som vypol všetky ostatné plugin, a stále mám rovnaký problém. Vyzerá to na chybu v vbet

kamilkurczak
08-03-11, 19:35
Dobrý deň, používate UTF-8 fóra a databázy, alebo nie?
Ak nie - Mal som pre Vás riešenie. Aj Wil pripraviť a napísať tu.

Ak môžete - tu vložte adresu URL do vlákna s týmto problémom.
Vďaka

freddie3218
09-03-11, 00:15
Dobrý deň, používate UTF-8 fóra a databázy, alebo nie?
Ak nie - Mal som pre Vás riešenie. Aj Wil pripraviť a napísať tu.

Ak môžete - tu vložte adresu URL do vlákna s týmto problémom.
ThanksNo, nemám používať UTF-8 fóra alebo databázy. I používať ISO-8859-1.

Môžete vidieť problém žiť zobrazenie tejto téme:

1 dolár Toto je test (http://kokoku.ca/forums/showthread.php?t=418)

Vďaka. :)

freddie3218
10-03-11, 01:05
Všetky správy o tom, čo je príčinou, že?

kamilkurczak
10-03-11, 10:04
Dobrý deň,

Ja som to na mojom testovaní Testovací fórum (nie je v UTF) a nemôžem kopírovať, ale môžete skúsiť toto riešenie.
Niečo pre vás:
1. otvoriť, vytvoriť kópiu a upravte tento súbor:
forum root / includes / vbenterprisetranslator_functions_utils.php
2. v tejto funkcii nájdete:

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. a vyjadriť všetky riadky bez návratu, ako je tento:

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. uložiť a test!

To by malo fungovať iba na nové príspevky. všetky existujúce príspevky budete musieť upraviť ručne.
Nie som Shure, že ste fóra ISO, ale môžete vyskúšať. Ak tomu tak nie je dobré - prosím prepísať starý súbor zmien bu

freddie3218
10-03-11, 15:30
Dobrý deň,

To bol dobrý pokus. Avšak, to nefunguje.

Výstup teraz ukazuje: ".. Ceci est un testu S'il Nachádzate pláą ® T ignorer CE správa"

Správny výstup by mal byť: "Ceci est un testu S'il Nachádzate vrkoč ignorer CE správa .."

Preto som sa vrátil späť.

Tu je jedna vec, ktorú som si všimol:

Keď pridáte a editácia, sa nezobrazuje správne. Avšak, keď som narazila na WYSIWYG editor tlačidlo pre prechod do "základného režimu", potom sa zobrazí správne vo WYSIWYG editore. Avšak, keď sa snažím zachrániť to, že sa vráti k zobrazovaniu nesprávne znova. Zdá sa, že editor WYSIWYG nie je parsovanie veci správne, ešte pred uložením, keď som pomocou VBET v cudzom jazyku, alebo keď som pomocou [lang =] značiek. Avšak, keď som po cudzie slová bez použitia [lang = fr] značky, potom to bude zobrazovať správne pri ukladaní. Takže sa zdá, že VBET nie je WYSIWYG editor umožňuje analyzovať správne pred uložením ... V prípade, že nedáva zmysel.

kamilkurczak
10-03-11, 23:41
máte tento problém, keď chcete príspevok na preloženej stránke, alebo nie? Popíšte prosím, čo mám robiť, aby rovnaké výsledky testu na mojom fóre.

freddie3218
11-03-11, 07:19
máte tento problém, keď chcete príspevok na preloženej stránke, alebo nie? Popíšte prosím, čo mám robiť, aby rovnaké výsledky na svojej skúšobnej forum.I neviem, či je možné reprodukovať na forum, alebo nie. Avšak, toto je to, čo sa stane:

VBulletin verzia 4.08
Mám dva jazyky, na mojich stránkach: angličtina a francúzština. Som vypol všetky ostatné jazyky, a všetky ostatné príznaky.
Všetky anglicky a francúzsky, je preložený na celom webe správne, so správnym prízvukom. Jediný čas akcenty nezobrazujú správne, ak je niekto používa francúzsky jazyk a pracovných miest vo francúzskom ... mať "francúzsky jazyk" zvolený vo svojom užívateľskom profile. V tomto prípade bude VBET priradiť vlastné BBcode tagy automaticky po post. IE: "[lang = fr]" Avšak, potom, čo predloží svoje miesto, bude akcenty na príspevok sa nezobrazí správne. Ak sa tlačidlo "Upraviť príspevok" tlačítko, uvidí svoje miesto vo vyspelých WYSIWYG editor zobrazená nesprávne (mám všetky účty nastavené použitia WYSIWYG editoru, a to aj rýchlu odpoveď, v predvolenom nastavení tak, aby všetci užívatelia mohli pripojiť fotografie z ich hard-disk). Avšak, ak sa prepínať "switch editor MODE" tam a späť, uvidí ich príspevok objavia správne. Napriek tomu, keď sa snažia zachrániť zmeny v ich miesto, bude to opäť zobrazí zle, keď sa zachrániť ich príspevok.

Tento problém iba sa stane, keď používateľ používa "francúzskeho jazyka" v nastaveniach užívateľského profilu a vysielanie vo francúzštine ... čím vbet pridať [lang = fr] k pošte automaticky.

My forum predvoleným jazykom je angličtina.

Ak potrebujete sa pozrieť na moje forum okolo ... pm mi a ja Vám zašleme potrebné informácie, aby Pozri sa na môj admin panel nastavenia.

Dúfam, že táto informácia je užitočná.

Vďaka.

kamilkurczak
11-03-11, 10:06
Áno. Môžem potvrdiť, že na svoje skúšobné forum!
Jedná sa o bug, tak som vBET musieť presunúť túto tému do sekcie hlásenie chýb.

Všimol som si, že tam je problém s kódovaním listy s ASCII kódu pod

Môžem reprodukovať na svoje skúšobné forum, tak som si opraviť bez prístupu k forum:)

Pokúsim sa nájsť najlepšie riešenie pre vás.

freddie3218
12-03-11, 06:02
Áno. Môžem potvrdiť, že na svoje skúšobné forum!
Jedná sa o bug, tak som vBET musieť presunúť túto tému do sekcie hlásenie chýb.

Všimol som si, že tam je problém s kódovaním listy s ASCII kódu pod

Môžem reprodukovať na svoje skúšobné forum, tak som si opraviť bez prístupu k forum:)

Pokúsim sa nájsť najlepšie riešenie pre vás.
Dobrou správou je, že som na to prišiel sám. Zlou správou je, že nemôžem potvrdiť, že toto riešenie bude fungovať ako náhrada funkcie ... ako to funguje len na mojom fóre.

Bez ohľadu na to, tu je nová funkcia:



function vbet_encodeToSafeUTF8(&$string) {

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


Táto funkcia prevádza UTF-8 do ISO-8859-1

kamilkurczak
12-03-11, 13:31
Vďaka za dobrú správu. Budem testovať a potvrdiť

kamilkurczak
13-03-11, 13:15
Dobrý deň,
Vaše riešenie nie je dobré v všeobecne. Prečo? To je práca s listy s ASCII kód, pod 256 (previesť a zobraziť dobre), ale listy s ASCII kódu cez 256 som sa "?" znamenie.

Takže musíme spojiť naše dve riešenia v jednom;)

Príklad:

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

tento riadok:
[\304-\337] definovať, ako listy s ASCII kód, pod 256 nebude dekódovať moje funkcie, ale iba
utf8_decode

Som otestovanie still.I nie som úplne istý, že všetko funguje správne teraz.
Môžete vyskúšať tiež!

freddie3218
14-03-11, 05:10
Pre moje účely, riešenie funguje ... ako som len prekladať do dvoch langauges ... Angličtina a francúzština. Obaja sú ISO-8859-1 (latin1) jazyky. Preto "utf_decode" funkcie funguje dobre.

Avšak, s globálnym rozsahom z hľadiska bude utf_decode funkcie pravdepodobne nebude fungovať v iných jazykoch, mimo "latin1".

Nie som moc vBulletin programátora. Avšak, ponúkam jeden návrh:

Možno, že pomocou "IF" môže vyhovovať vašim účely lepšie, ak vaše riešenie nefunguje. V nižšie uvedenom príklade by "translated_language_var" za cieľový jazyk, preložiť do.

IE:


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

if (in_array(translated_language_var,$latin1)){

$string = utf_decode($string);

}else{

original solution;
}

return $string;

Možno, že používate niečo podobné by sa určite spôsobom, aby všetko bezpečné ...??? Som si istý, mohol ľahko použiť pseudo kód, a aby to fungovalo na vBulletin. :)

kamilkurczak
27-03-11, 22:30
vyriešený - budú zahrnuté do ďalšej UVOĽŇOVANIE

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