PDA

View Full Version: Решени Определување не прикажување правилно ...



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-самовила. Сепак, гледав во кодот, и ништо јас не треба да влијаат на начинот на кој работите се прикажува на екранот.

Дали треба да се конвертира ми dB во 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. отвори, направи копија и Уредете ја оваа датотека:
форум root / вклучува / 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. спаси и тест!

Ова треба да работат само за нови објави. сите постоечки мислења треба да се уреди со рака.
Јас не Shure дека имате форум ISO но можете да го пробате. Ако не е добра - Ве молиме избрише овие промени бу старата датотека

freddie3218
10-03-11, 15:30
Здраво,

Тоа беше добра проба. Сепак, тоа не функционира.

Излезот сега покажува: ".. Ceci EST ОН тест S'il vous plaà ® T ignorer CE порака"

Точниот излез треба да биде: "Ceci EST ОН тест S'il vous плитка ignorer CE порака.."

Затоа, јас се врати назад.

Еве едно нешто забележав:

Кога додавате и уредување, не се прикаже правилно. Сепак, ако го погоди WYSIWYG едитор за да одат во "основните режим", а потоа тоа ќе се прикаже правилно во WYSIWYG едитор. Сепак, кога се обидувам да го спаси, тој се враќа на прикажување погрешно повторно. Се чини дека WYSIWYG едитор не е парсирање работи правилно пред да го зачувате кога сум користење VBET на странски јазик, или кога сум со користење на [lang =] тагови. Меѓутоа, ако ли да испраќам на странски фраза, без користење на [lang = fr] тагови, тогаш тоа ќе се прикаже правилно кога штедење. Значи се чини дека VBET не им дозволува на WYSIWYG едитор да го анализирам правилно пред да го зачувате ... ако тоа го прави никаква смисла.

kamilkurczak
10-03-11, 23:41
имате ова прашање кога би сакале да ја објавите на преведени страница или не? опишете она што треба да направите за да имаат исти резултати на пробната форумот.

freddie3218
11-03-11, 07:19
имате ова прашање кога би сакале да ја објавите на преведени страница или не? опишете она што треба да направите за да имаат исти резултати на пробната forum.I не знам дали може да се репродуцираат тоа на форумот или не. Сепак, ова е она што се случува:

VBulletin верзија 4,08
Имам два јазика на мојот сајт: англиски и француски јазик. Јас хендикепираните сите други јазици, и сите други знамиња.
Сите англиски и француски јазик е преведен во текот на сајт правилно, со соодветна акценти. Единствениот пат на акценти не се прикаже правилно е ако некој го користи францускиот јазик и мислења во францускиот ... имаат "француски јазик" избран во нивните кориснички профил. Во овој случај, VBET ќе му ја додели соодветна phpBB BBCode-от тагови автоматски кога тие слики. Односно: "[lang = fr]" Меѓутоа, откако ќе ги достават своите пост, акценти на својот пост нема да се појави соодветно. Ако притиснете на "Измени пост" копче, тие ќе ја гледаат пост во напредна WYSIWYG едитор прикажани неправилно (ги имам сите сметки се постави да го користите WYSIWYG едитор, дури и во брз одговор, по дифолт, така што сите корисници да прикачите слики од своите хард-диск). Меѓутоа, ако тие го вклучите "прекинувач уредник на владата" копчето и назад, тие ќе ја гледаат пост се појави соодветно. Сепак, кога ќе се обидат да ги зачувате промените на својот пост, уште еднаш ќе се прикаже неправилно кога тие го спаси својот пост.

Овој проблем се случува само кога корисникот е со помош на "француски јазик" во нивните кориснички прилагодувања за профилот и објавување во францускиот јазик ... правејќи vbet додадете [lang = 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 (Латиница1) јазици. Затоа "utf_decode" Функцијата парична казна.

Меѓутоа, со глобалниот опсег во поглед, на utf_decode функција веројатно нема да работат за други јазици надвор од "Латиница1".

Јас не сум многу на vBulletin програмер. Сепак, јас ќе им понуди еден предлог:

Можеби со користење на "Ако" изјава може да одговараат на вашите цели подобро ако вашиот решение не функционира. Во примерот подолу, "translated_language_var" ќе биде дестинација јазик да се преведат на.

Односно:


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

if (in_array(translated_language_var,$latin1)){

$string = utf_decode($string);

}else{

original solution;
}

return $string;

Можеби користење на вакво нешто ќе биде сигурен метод за да се задржи сето безбедно ...??? Сигурен сум дека лесно може да се користи оваа псевдо код и да ја направат работи за vBulletin. :)

kamilkurczak
27-03-11, 22:30
реши - ќе бидат вклучени во наредните relase

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