News:

Want to get involved in developing SMF, then why not lend a hand on our github!

Main Menu

מניסיון שלי ...

Started by abram, September 07, 2009, 11:10:56 AM

Previous topic - Next topic

abram

שלום לכולם.
אני מסתכל בפורום הזה ורואה יותר שאלות מתשובות. אני חושב שהמצב הזה לא ממש נורמאלי ולכן אני רוצה  לפתוח את הנושא לא בתור דיון אלא יותר דומה לבלוג שלרוב יהיו פה תשובות. אפילו אם אף אחד לא ביקש אותם. כאן אני מתכוון במקום לשאול שאלות לכתוב תשובות שמצאתי לעצמי. לדעתי, זה יכול לעזור למי שלא רוצה  להמציא גלגל ולהשתמש בפתרונות מוכנים ובדוקים. מכיוון שאין לי ידע עמוק ב -PHP ובכלל ... אני אוהב להשתמש בפתרונות של טמבל - העיקר שזה יעשה את העבודה ולא יפגע במשהו אחר.
כדי שיהיה ברור, אני לא תוכניתן, אני משתמש מין השורה, ועברית היא לא ספת אם - לכן אל תתרגזו על  שגיות וטעויות (ואולי גם על שטויות).

ובכן, כל מה שאני אספר בהמשך זה תוצאה מהכרות אישית עם ה-SMF. את הפורום שלי העליתי באינטראנט ותוך כדי שימוש נאלצתי לעשות מספר שינויים. על השינויים הללו אני אספר כאן. כל מה שתיראו מטה - דעה אישית שלי, ההצעות והמלצות מותר לקבל ו\או להתעלם  :)
בבקשה, אל תשאלו שאלות מעבר למה שאני כותב - כי אין לי את כל התשובות.
בבקשה, אל תבקשו תמיכה - כי סביר להניח שאני יודע ומבין פחות מכם ואני אספר הכול בלי להסתיר דבר.

אני מדגיש שפורום שלי - SMF 2.0 RC1.2 מופעל בשרת XAMPP 1.71 כולל:
  + Apache 2.2.11
  + MySQL 5.1.33
  + PHP 5.2.9

abram

#1
בעיות עם עברית ו- RTL
לא רק ב-SMF - בכל תוכנה יש בעיה כזאת או אחרת בכתיבה בעברית בגלל כיוון הכתיבה מימין לשמאל - Right_To_Left. לעיתים קשה אפילו לכתוב smile פשוט כי יכול להיות שהוא יראה בדיוק הפוך. אין צורך לפרט כי כל אחד נתקל בזה לפחות פעם אחת. השאלה - איך אפשר אם לא לפתור את הבעיה אז לפות לעקוף אותה. מה שאני עשיתי :
א. החלטתי להשתמש ב- UTF.
ב. להשתמש בסקינים שונים לעברית ולאנגלית. בשיטה כזאת אפשר לשנות קבצים של כל סקין בנפרד כדי להתאים אותו לעברית. פורום שלי בכלל כולו בעברית ללא חלק אנגלי וקל לי מאוד לעשות כל שינוי שארצה. בחרתי בסקין Babylon ובהמשך אני מדבר רק על הסקין הזה. למי שיש לו סקינים נוספים - שידאג לבדוק השינויים בכל סקין.

abram

#2
טוב... הגיע זמן להגיד משהו בעניין.
בפוסט הזה אני מספר איך הפכתי Calendar ללוח שנה. כלומר, תירגמתי אותו לעברית. תזכרו, מדובר על התקנה נקייה גרסה SMF 2.0 RC1.2 + smf_2-0-rc1-2_hebrew-utf8
ראשית כל, צריך להפעיל Calendar -
ניהול
תצורת הפורום
Core Features
בשדה שמאלי ללחוץ על מפסק ליד Calendar (נדלק בירוק)
ללחוץ על "שמירה" בתחתית העמוד.


שלב שני, אני פותח לוח שנה ורואה 3 בעיות (תמונה cal1).
1 - חודשים
2- ימי שבוע
3 - אותיות של ימי שבוע.

בעיה מס' 1 ו-2 פותרים בקלי קלות - מחליפים בקובץ
forum\Themes\default\languages\index.hebrew-utf8.php
באזור שורות ה-30

$txt['days'] = array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');

ל-

$txt['days'] = array('ראשון', 'שני', 'שלישי', 'רביעי', 'חמישי', 'שישי', 'שבת');


ו

$txt['months'] = array(1 => 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
$txt['months_titles'] = array(1 => 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
$txt['months_short'] = array(1 => 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');


ל-

$txt['months'] = array(1 => 'ינואר', 'פברואר', 'מרס', 'אפריל', 'מאי', 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', 'אוקטובר', 'נובמבר', 'דצמבר');
$txt['months_titles'] = array(1 => 'ינואר', 'פברואר', 'מרס', 'אפריל', 'מאי', 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', 'אוקטובר', 'נובמבר', 'דצמבר');
$txt['months_short'] = array(1 => 'ינו', 'פבר', 'מרס', 'אפר', 'מאי', 'יונ', 'יול', 'אוג', 'ספט', 'אוק', 'נוב', 'דצמ');




בעיה מס' 3 יותר מורכבת. לפי מה שהבנתי, מרוב חוכמה היצרן לקח רשימה של ימי שבוע וחתך מכל מילה אות ראשונה. בערית זה לא הולך כי בשיטה כזאת נקבל 4 פעמים ש בימי שני, שלישי, שישי ושבת. לכן, נאלצתי לשנות את כל הנוסחה.

לתיקון סימנים של ימי השבוע בלוחות חודשיים (קטנים) להחליף
ב - forum\Themes\default\Calendar.template.php
בשורות 306-307

// echo '
// <td class="titlebg2" width="14%" align="center" ', $calendar_data['size'] == 'small' ? 'style="font-size: x-small;"' : '', '>', !empty($calendar_data['short_day_titles']) ? substr($txt['days'][$day], 0, 1) : $txt['days'][$day], '</td>';



ל-


echo '
<td class="titlebg2" width="14%" align="center" ', $calendar_data['size'] == 'small' ? 'style="font-size: x-small;"' : '', '>', !empty($calendar_data['short_day_titles']) ? $txt['days_short1'][$day] : $txt['days'][$day], '</td>';



להוסיף בשורות ה-30
ב - forum\Themes\default\languages\index.hebrew-utf8.php


$txt['days_short1'] = array('א', 'ב', 'ג', 'ד', 'ה', 'ו', 'ש');



ועכשיו צריך לתקן מה שקלקלתי בדרך ... הרי לאחר ששיניתי את ה- Calendar.template.php השינוי תפס גם את הסידור בגרסה אנגלית. לכן למען הסדר הטוב צריך להוסיף בקובץ forum\Themes\default\languages\index.english.php שורה

$txt['days_short1'] = array('S', 'M', 'T', 'W', 'T', 'F', 'S');


בגלל שיש kh פורום רק בעברית לא בדקתי את הפעולה של שורה אחרונה.
ועכשיו, תיבדקו איך נראה לוח שנה - תמונה cal2.

ולבסוף, צריך להכנס ל
ניהול
Forum
Calendar

ולכוונן את כל הופציות.

abram

#3
פותח סקר חדש ו רואה ששורה עם שאלה ברכה שמאלה - ראה תמונה seker. חיפשתי שעה - מה מזיז אותה ומצאתי בסוף. תיראו חתיכת קוד :
// If this is a poll then display all the poll options!
if ($context['make_poll'])
{
echo '
<tr>
<td align="right" style="font-weight: bold;"', isset($context['post_error']['no_question']) ? ' class="error"' : '', ' id="caption_question">
', $txt['poll_question'], ':
</td>
<td align="left">
<input type="text" name="question" value="', isset($context['question']) ? $context['question'] : '', '" tabindex="', $context['tabindex']++, '" size="80" />
</td>
</tr>
<tr>
<td align="right"></td>
<td>';

רואים את ה - td align=left ? כאן הפשלה. ולמה חיפשתי הרבה זמן ? כי קוד היה לא במקום הנכון (לטעמי). במקום להיות ב - forum\Themes\default\Poll.template.php הוא נמצא ב forum\Themes\default\Post.template.php ... אל תשאלני למה ...
עם בשורה 366 לתקן את ה-LEFT ל-RIGHT אז שורה עם השאלה חוזרת ימינה כמו שצריך. במחשבה השניה, בשביל מה בכלל ה-align בקוד הזה? הרי יש הגדרה הגלובלית לגבי RTL. אז מחקתי את שלושת ה-align-ים והכל נשאר בצד ימין.
טוב ... יש עוד דבר קטן פה - לא מתורגם Allow user to change vote. מוצא את המשפט ב-
forum\Themes\default\languages\Post.hebrew-utf8.php בשורה 136 ומסביב יש כמה תירגומים על POLL. נו ... לפחות יש הגיון כי Poll.hebrew-utf8.php לא קיים. אוטמטי מתרגם עוד שורה -


$txt['poll_guest_vote'] = 'Allow guests to vote.';
$txt['poll_do_change_vote'] = 'Allow user to change vote.';


מחליף ב-

$txt['poll_do_change_vote'] = 'להרשות להצביע מחדש.';
$txt['poll_guest_vote'] = 'להרשות להצביע לאורחים';

אבל רגע ... אני לא רואה אפשרות 'להרשות להצביע לאורחים' ... עוד חיפוש קטן ... צריך לאפשר את האפשרות ב-
ניהול
ניהול משתמשים 
Permissions
Permissions by Membergroup
Unregistered Guests
עריכה

ושם לסמן V בשדה - "להצביע בסקרים" ו"שמור שינויים".
סוף הסיפור.

abram

נכנסתי לפרופיל שלי ו... איפה שמאל ... איפה ימין ... הכל מבולגן. (תמונה profile)
טוב ... כדי לא לייגע אותכם - הולכים ישר לעניין.
מתקנים קובץ
forum\Themes\default\css\profile.css
מחליפים float: left;

ל- float: right;
בהגדרות של
#basicinfo - שורה 29
#basicinfo ul li - שורה 69
#detailedinfo div.content dt - שורה 93
#detailedinfo div.content dd - שורה 103


מחליפים
   border-left: 1px solid #696969;
ל-
   border-right: 1px solid #696969;
בהגדרות של
#detailedinfo - שורה 35

מה שנשאר - לתקן כמה מילים בתרגום.
בקובץ - forum\Themes\default\languages\index.hebrew-utf8.php
באזור שורות 680
מחליפים
// Sub menu labels
$txt['summary'] = 'Summary';
$txt['account'] = 'Account Settings';
$txt['forumprofile'] = 'Forum Profile';

ל-
// Sub menu labels
$txt['summary'] = 'תקציר';
$txt['account'] = 'פרטי משתמש';
$txt['forumprofile'] = 'הגדרות בפורומים';


חשוב לזכור! השינוי נוגע בהגדרות של הסקין כולל חלק אנגלי. לכן, אם השארתם אופציה Enable user-selectable language support פתוחה ומשתמש יבחר אנגלית אז הוא יקבל מראה של הדף באנגלית אשר איבד את כל היישורים שמאלה/ימינה. אצלי בפורום "רק עברית" זה לא בעיתי. אבל אם יש לכם קטע אנגלי - אני שוב ממליץ לבנות לאנגלים סקין אנגלי-נטו לחוד.

flash_os


ZedPain


ashki

איפה הפורום הזה מוצג

flash_os


Advertisement: