掌上电脑

查看完整版本: 已解决 口音不正确显示...



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登录plaà ®吨ignorer CE消息”

正确的输出应该是:“CECI EST联合国测试S'il登录褶ignorer CE消息。”

因此,我恢复。

这里是我注意到的一件事情:

张贴和编辑时,它显示不正确。但是,如果我打的所见即所得的编辑器“按钮,进入”基本模式“,然后它会正确地显示在所见即所得的编辑器。然而,当我尝试将它保存,恢复再次显示不正确。看来,所见即所得的编辑器是不解析节约当我使用一门外语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;
}


此功能转换为ISO - 8859 - 1 UTF - 8

kamilkurczak
12-03-11, 13:31
感谢这个好消息。我将对其进行测试,并确认

kamilkurczak
13-03-11, 13:15
您好,
您的解决方案是不是在总体上是好的。为什么呢?这是与字母的ASCII码256(转换和显示良好)下工作,但超过256个字母的ASCII码我有“?”迹象。

因此,我们需要结合在一个我们两个解决方案;)

例如:

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函数可能会不工作“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
Thanks to vBET 4.10.1 you can enjoy automatic translations