PDA

정식 버전보기 : 해결 올바르게 표시되지 악센트 ...



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로 내 DB를 변환해야하나요?

어떤 조언 감사합니다. 감사합니다. :)

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을 사용합니다.

당신은 문제가이 스레드를 보면 살아 볼 수 있습니다 :

일달러 이것은 시험 (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 포럼을 갖고 shure 아니라 당신이 그것을 테스트할 수 있습니다. 그렇지 않다면 좋은 것은 - 덮어 이러한 변화 부 오래된 파일을하시기 바랍니다

freddie3218
10-03-11, 15:30
안녕하세요,

참 좋은 시도했다. 그러나, 그것은 작동하지 않습니다.

출력은 현재 보여줍니다 : ".. 세시 동부 표준시 유엔 시험 실 부 plaà ® t ignorer CE 메시지"

올바른 출력한다 : "세시 동부 표준시 유엔 시험 제발 좀 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는 자동으로 적절한 BBcode 태그를 할당합니다. IE : "[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;
}


이 기능은 ISO - 8859 - 1 UTF - 8로 변환

kamilkurczak
12-03-11, 13:31
이 좋은 소식 주셔서 감사합니다. 나는 그것을 테스트하고 확인합니다

kamilkurczak
13-03-11, 13:15
안녕하세요,
귀하의 솔루션은 일반적으로 좋은하지 않습니다. 왜? 이것은 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] 256 이하 ASCII 코드를 문자 이상의 정의는 제 기능에 의해서만 의해 디코딩되지 않습니다
utf8_decode

나는 그것을 테스트하는 것은 still.I 모든 올바르게 작동하는지 잘 모르겠입니다.
당신도 그것을 테스트할 수 있습니다!

freddie3218
14-03-11, 05:10
나의 목적을 위해,이 솔루션은 멀쩡해 ... 나는 두 langauges로 번역 것처럼 ... 영어와 프랑스어. 모두 ISO - 8859 - 1 (라틴) 언어입니다. 따라서 "utf_decode"기능은 잘 작동합니다.

그러나,보기에 글로벌 범위, utf_decode 기능은 아마도 "라틴"이외의 다른 언어에 대한 작동하지 않습니다.

나는 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;

아마도 이런 게를 사용하면 모든 안전을 위해 확인 방법 것입니다 ...??? 난 당신이 쉽게 의사 코드를 사용하고 vbulletin 일을 만들 수있는 확신 해요. :)

kamilkurczak
27-03-11, 22:30
해결 - 다음 relase에 포함됩니다

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