Прагляд поўнай версіі: Вырашанае Акцэнты не будуць правільна адлюстроўвацца ...
freddie3218
07-03-11, 16:09
Прывітанне.
Я выкарыстоўваю VBulletin 04/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):
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions Inc. All rights reserved.