КПК

Перегляд повної версії: Вирішений Акценти не будуть правильно відображатися ...



freddie3218
07-03-11, 16:09
Привіт.

Я використовую VBulletin 4.08.

Я використовую в основному для vbet двома мовами ... Англійською та французькою мовами. У мене язик форуму за замовчуванням встановлена англійська. Тим не менш, всякий раз, коли французький повідомлень користувача, переклад відображається правильно англійською мовою. Проте, по-французьки акценти не відображаються. Замість цього, він відображає так:


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.

Він повинен відображати приблизно так:


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

Мій форум налаштований для відображення обох мовах, як ISO-8859-1. Тому я не використовую UTF-8

Крім того, я дотримувався інструкції з установки дуже уважно.

Єдина зміна я зробив, щоб vBet є те, що я змінив за замовчуванням прапори використанням CSS-спрайтів. Тим не менш, я подивився на код, і я нічого не робив має вплинути таким чином, щоб речі не відображається.

Чи повинен я конвертувати мої БД для UTF-8, щоб вирішити цю проблему?

Будь-які поради будуть оцінені. Дякуємо. :)

freddie3218
08-03-11, 17:56
Ну .... Я відключив усі інші плагін, і я до цих пір така ж проблема. Схоже, помилка в vbet

kamilkurczak
08-03-11, 19:35
привіт, ви використовуєте UTF-8, форум і базу даних чи ні?
Якщо немає - я повинен був для вас рішення. Я Віль підготувати і написати тут.

Якщо ви можете - будь ласка, текст сюди URL, щоб нитка з цією проблемою.
Спасибі

freddie3218
09-03-11, 00:15
привіт, ви використовуєте UTF-8, форум і базу даних чи ні?
Якщо немає - я повинен був для вас рішення. Я Віль підготувати і написати тут.

Якщо ви можете - будь ласка, текст сюди URL, щоб нитка з цією проблемою.
ThanksNo, я не використовую UTF-8, форум або бази даних. Я використовую ISO-8859-1.

Ви можете бачити, проблема жити перегляду цієї теми:

$ 1 це тест (http://kokoku.ca/forums/showthread.php?t=418)

Дякуємо. :)

freddie3218
10-03-11, 01:05
Будь-які новини про те, що викликає його?

kamilkurczak
10-03-11, 10:04
привіт,

Я тестую його на моєму тестовому форумі (в не UTF) і я не можу відтворити її, але ви можете спробувати це рішення.
Я щось для вас:
1. відкритою, щоб скопіювати і відредагувати цей файл:
форум корінь / входить / vbenterprisetranslator_functions_utils.php
2. У цій функції знайти:

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. і коментувати всі рядки без повернення, як це:

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. зберегти і тест!

це повинно працювати тільки для нових повідомлень. всіх існуючих повідомлень Ви повинні відредагувати вручну.
Я не впевнені, що у вас є форум ISO, але ви можете перевірити це. Якщо це не так добре - будь ласка, переписати ці зміни бу старий файл

freddie3218
10-03-11, 15:30
Привіт,

Це був хороший спробувати. Тим не менш, вона не працює.

Вихід тепер показує: ".. Сесі EST ООН тест S'il Vous plaà ® т ignorer се повідомлення"

Правильний висновок повинен бути таким: "Сесі EST ООН тест S'il Vous косу ignorer се повідомлення.".

Тому я повернувся назад.

Ось одна річ, яку я помітив:

При написанні і редагуванні, вона не відображається правильно. Однак, якщо я натискаю кнопку WYSIWYG-редактор, щоб увійти в "базовому режимі", то це буде коректно відображатися у вікні редактора WYSIWYG. Проте, коли я намагаюся зберегти його, він повертається до показу неправильно знову. Здається, що візуальний редактор не розбір речі правильно, перш ніж економити, коли я використовую VBET іноземною мовою, або коли я використовую [мова =] теги. Однак, якщо я відправляю іноземні фрази без використання [мова = FR] теги, то вона буде відображатися правильно при збереженні. Так що, схоже, що VBET не дозволяє візуальний редактор для розбору правильно, перш ніж економити ... якщо це має сенс.

kamilkurczak
10-03-11, 23:41
у вас є ця проблема, коли ви хотіли б розмістити на перекладена сторінка чи ні? будь ласка, опишіть, що я повинен зробити, щоб мати ті ж результати на моїй тестовій форумі.

freddie3218
11-03-11, 07:19
у вас є ця проблема, коли ви хотіли б розмістити на перекладена сторінка чи ні? будь ласка, опишіть, що я повинен зробити, щоб мати ті ж результати на моєму forum.I тест не знаю, якщо ви можете відтворити це на форум чи ні. Тим не менш, саме це і відбувається:

Vbulletin версії 4,08
У мене є дві мови на моєму сайті: англійська та французька. Я відключив усі інші мови, і всі інші прапори.
Все англійською та французькою мовами в перекладі всієї Інтернет-сторінки, з правильним акцентом. Єдиний раз, коли акценти не відображаються належним чином, якщо хтось використовує французьку мову та повідомлень французькою мовою ... з "французьку мову" обрали в їх профілі користувача. У цьому випадку, VBET призначить належний тегів BBcode автоматично, коли вони відправляють. IE: "[мова = FR]" Однак, як тільки вони представлять свої посади, акценти на їх повідомлення не буде відображатися правильно. Якщо вони натисніть кнопку "Редагувати повідомлення" кнопку, вони побачать на посаду в просунутий редактор WYSIWYG відображатися неправильно (у мене є всі облікові записи налаштовані на використання візуального редактора, навіть у швидку відповідь, за умовчанням, так що всі користувачі можуть додати фотографії з їх на жорсткому диску). Однак, якщо вони перемикатися "перемикача режим редагування" кнопки вперед і назад, вони побачать, що їх повідомлення відображатися правильно. Проте, коли вони намагаються зберегти зміни в свій пост, він буде знову дисплей неправильно, коли вони зберегти свій пост.

Ця проблема відбувається тільки тоді, коли користувач використовує "ФРАНЦУЗЬКА МОВА" в налаштуваннях профілю користувача та розміщення на французькій мові ... таким чином роблячи vbet додати [мова = FR], щоб повідомлення автоматично.

Мій форум за замовчуванням використовується англійська мова.

Якщо вам необхідно подивитися навколо на моєму форумі ... вечора мене, і я вишлю Вам необхідну інформацію, щоб перевірити мої адміністратора установки панелі.

Я сподіваюся, що ця інформація буде корисною.

Дякуємо.

kamilkurczak
11-03-11, 10:06
Так. Я можу підтвердити це на мій тестовий форум!
Це vBET помилка, тому мені потрібно, щоб перемістити цю тему в розділі помилка звітності.

Я помітив, що є проблема з кодуванням листи з ASCII-код під

Я можу відтворити це на моїй тестовій форум так що я можу це виправити, не мають доступу до форуму:)

Я постараюсь, щоб знайти краще рішення для вас.

freddie3218
12-03-11, 06:02
Так. Я можу підтвердити це на мій тестовий форум!
Це vBET помилка, тому мені потрібно, щоб перемістити цю тему в розділі помилка звітності.

Я помітив, що є проблема з кодуванням листи з ASCII-код під

Я можу відтворити це на моїй тестовій форум так що я можу це виправити, не мають доступу до форуму:)

Я постараюсь, щоб знайти краще рішення для вас.
Хороша новина в тому, що я виправив проблему сам. Погана новина полягає в тому, що я не можу підтвердити, що це рішення буде працювати в якості заміни функції ... як він працює тільки на моїх форумах.

Незважаючи на це, тут нову функцію:



function vbet_encodeToSafeUTF8(&$string) {

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


Ця функція перетворює в UTF-8 в ISO-8859-1

kamilkurczak
12-03-11, 13:31
спасибі за це хороші новини. Я протестувати його і підтвердіть

kamilkurczak
13-03-11, 13:15
привіт,
Ваше рішення не є хорошим в цілому. Чому? Це робота з листами з ASCII-код під 256 (перетвориться і відображається добре), але листи з кодом ASCII більше 256 в мене є "?" знаків.

Так що ми повинні об'єднати наші два рішення в одному;)

Наприклад:

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

цей рядок:
[\304-\337] визначити, чим листи з ASCII-код під 256 буде не декодується моя функція, але тільки
utf8_decode

Я тестування still.I я не зовсім впевнений, що все працює коректно.
Ви можете перевірити це занадто!

freddie3218
14-03-11, 05:10
Для моїх цілей, рішення чудово працює ... як я тільки перекладав на дві langauges ... Англійською та французькою мовами. Обидва ISO-8859-1 (latin1) мовами. Тому "utf_decode" функція працює відмінно.

Однак у зв'язку з глобальною області в полі зору, utf_decode функція, ймовірно, не працювати на інших мовах за межами "latin1".

Я не дуже VBulletin програміста. Тим не менш, я запропоную одну пропозицію:

Можливе використання "Якщо" заява може задовольнити ваші цілі краще, якщо ваше рішення не працює. У наведеному нижче прикладі, "translated_language_var" було б призначення мову перевести на.

IE:


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

if (in_array(translated_language_var,$latin1)){

$string = utf_decode($string);

}else{

original solution;
}

return $string;

Можливо, використовуючи щось, як це буде вірний метод тримати все безпечної ...??? Я впевнений, що ви можете легко використовувати цей псевдо-код і зробити його роботу форуму. :)

kamilkurczak
27-03-11, 22:30
вирішені - будуть включені в наступний relase

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