מחשב כף יד

צפה בגרסא המלאה: נפתר מבטאים לא מוצגים כראוי ...



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 בפורום באתר או לא?
אם לא - אני צריך פתרון בשבילך. אני 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. לפתוח, ליצור עותק ולערוך את הקובץ הזה:
בפורום / 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 אבל אתה יכול לבדוק את זה. אם לא טוב - בבקשה להחליף את הקובץ הישן שינויים bu

freddie3218
10-03-11, 15:30
היי,

זה היה ניסיון טוב. עם זאת, זה לא עובד.

הפלט מראה כעת: ".. Ceci est un מבחן S'il vous plaà ® t הודעה ignorer ce"

התפוקה הנכונה צריכה להיות: "Ceci est un מבחן S'il vous לקלוע הודעה ignorer לספירה.."

לכן, חזרתי אחורה.

הנה דבר אחד שמתי לב:

כאשר פרסום ועריכה, זה לא יוצגו כראוי. עם זאת, אם אני לוחץ על כפתור עורך 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] להודעה באופן אוטומטי.

ברירת המחדל שלי בפורום השפה האנגלית.

אם אתה צריך להעיף מבט סביב על הפורום שלי ... pm אותי, אני אשלח לך את המידע הדרוש כדי לבדוק את ההתקנה פאנל הניהול שלי.

אני מקווה שמידע זה עוזר.

תודה.

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
למטרות שלי, הפתרון עובד מצוין ... כמו שאני רק לתרגם שתי השפות ... אנגלית וצרפתית. שניהם ISO-8859-1 (latin1) שפות. לכן הפונקציה "utf_decode" עובד מצוין.

עם זאת, עם היקף גלובלי בתצוגה, הפונקציה utf_decode כנראה לא עובד בשפות אחרות מחוץ "latin1".

אני לא ממש מתכנת פורומים. עם זאת, אני יציע הצעה אחת:

אולי באמצעות "אם" ההצהרה עשויה להתאים לצרכים שלך יותר טוב אם הפתרון שלך לא עובד. בדוגמה להלן, "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
Translations made by vBET Translator 4.9.99