PDA

查看完整版本: 已解決 口音顯示不正確 ...



freddie3218
07-03-11, 16:09
嗨。

我使用百度推廣 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論壇和數據庫或沒有?
如果沒有 - 我應該有一個解決方案適合你。我WIL準備,並寫在這裡。

如果你能 - 請貼在這裡一個 url的線程處理這個問題。
謝謝

freddie3218
09-03-11, 00:15
你好,你使用UTF - 8論壇和數據庫或沒有?
如果沒有 - 我應該有一個解決方案適合你。我WIL準備,並寫在這裡。

如果你能 - 請貼在這裡一個 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
嗨,

這是一個很好的嘗試。然而,這是行不通的。

輸出現在顯示:“CECI EST未測試。S'il vous plaà ® T ignorer CE消息。”

正確的輸出應該是:“CECI EST未測試。S'il vous編 ignorer行政長官的消息。”

因此,我恢復回來。

這裡是一回事,我注意到:

當發布和編輯,它不會正確顯示。但是,如果我打的所見即所得的編輯器按鈕,進入“基本模式”,那麼它會正確顯示在所見即所得的編輯器。然而,當我試圖挽救它,它恢復為顯示不正確了。看來,所見即所得的編輯器是不正確地分析事物保存前,當我在使用VBET一門外語,或當我使用[LANG =]標籤。不過,如果我沒有張貼外語用[LANG = FR]標籤,然後它會顯示正確保存時。因此看來,VBET不允許所見即所得的編輯器正確解析保存前...如果使任何意義。

kamilkurczak
10-03-11, 23:41
你有這樣的問題,當您想翻譯的網頁上發布或沒有?請描述一下我應該做的有相同的結果在我的測試論壇。

freddie3218
11-03-11, 07:19
你有這樣的問題,當您想翻譯的網頁上發布或沒有?請描述一下我應該做的有相同的結果在我的測試 forum.I不知道你是否能重現這個在您的論壇或沒有。然而,這是發生了什麼:

vBulletin版本4.08
我有我的網站上兩種語言:英語和法語。我禁用所有其他語言,以及所有其他標誌。
所有的英語和法語翻譯整個網站得當,用正確的口音。唯一一次的口音不正確顯示的是,如果有人使用的是法語和職位,法國 ... ...具有“法語”選擇用戶配置文件中。在這種情況下,VBET將分配適當的BBCode代碼標籤時自動職務。 IE:“[LANG = FR]”然而,一旦他們提出他們的職位,在他們的口音郵政將無法正常顯示。如果他們按“編輯帖子”按鈕,就會看到他們發布的先進的所見即所得編輯器中顯示不正確(我有所有帳戶設置為使用所見即所得的編輯器,即使在快速答复,默認情況下,使所有用戶都可以從附加的圖片他們的硬盤驅動器)。但是,如果他們切換“開關編輯模式”按鈕來回穿梭,他們將看到他們後正確顯示。然而,當他們嘗試將更改保存到自己的文章,將再次顯示不正確時,他們挽救自己的職位。

這個問題只發生在用戶使用的是“法語”在他們的用戶配置文件設置和張貼的法語 ...從而使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(拉丁文)語言。因此,“utf_decode”功能工作正常。

然而,隨著全球範圍來看,utf_decode功能可能無法正常工作以外的其他語言“拉丁文”。

我沒有太大的百度推廣程序員。不過,我會提供一個建議:

也許用一個“如果”語句可能更適合你的目的,如果您的解決方案不起作用。在下面的例子中,“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
Thanks to vBET 4.10.1 enjoy automatic translations