דף הבית » טריקים וטיפים, מומלצים

לשנות את המילה "פוסט" למילה "מאמר" ברמת פונקציות התרגום

27 ביוני 2011 | מאת רמי | 8 תגובות | תגיות: , , , ,

פעמים רבות אתם מתקינים וורדפרס ללקוחות ומסבירים להם שיש הבדל בין דפים לבין פוסטים, ואז מגיעה השאלה "מה זה פוסט?" ונשאלת השאלה "למה לא קוראים לזה מאמר?" (או כל שם אחר). אז אפשר ליצור תכנים מותאמים אישית (Custom Post Types) אבל אם במהות לפוסטים ולמאמרים יהיה אותו שימוש וההבדל היחיד היא בטרמינולוגיה, אז זה לא מומלץ. היום אני אדבר על פילטר שנתקלתי בו, שמשנה את המילה "פוסט" לכל מילה אחרת בזמן תרגום המחרוזות.

שינוי המילה Post למילה Article

ניתן לשנות את המילה Post למילה Article בעזרת הפילטר הבא, אותו יש להוסיף לקובץ functions.php בערכת העיצוב שלכם:

function change_translation( $translated ) {
    $translated = str_replace(  'Post',  'Article',  $translated );
    $translated = str_replace(  'post',  'article',  $translated );
    return $translated;
}
add_filter( 'gettext', 'change_translation' );
add_filter( 'ngettext', 'change_translation' );
שינוי המילה Post למילה Article

שינוי המילה Post למילה Article

שינוי המילה "פוסט" למילה "מאמר"

על אותו עיקרון ניתן לשנות את המילה "פוסט" למילה "מאמר" בעזרת הפילטר הבא:

function change_translation( $translated ) {
    $translated = str_replace( 'פוסט', 'מאמר', $translated );
    return $translated;
}
add_filter( 'gettext', 'change_translation' );
add_filter( 'ngettext', 'change_translation' );

לפני

לפני


אחרי

אחרי

הסבר על הטכניקה

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

סוגיות ידועות

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

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

הבעיה בטכניקה הזו (שטרם נפתרו)

הבעיה בטכניקה הזו (שטרם נפתרו)

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

מאת רמי

אחראי על אתר וורדפרס בעברית ועל תרגום ושחרור גרסאות וורדפרס בעברית. מפתח ליבה, בכל גרסה החל מגרסה 2.8, מפתח מוביל בגרסה 4.4 ובגרסה 4.6. מספק שירותי פיתוח אתרים, פיתוח תוספי וורדפרס לסטרטאפים ופיתוח כלים למפתחי וורדפרס - GenerateWP.com.

8 תגובות »

  • Ariel כותב :

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

    אבל לטווח ארוך של עדכוני גרסאות זה לא ממש פיתרון…

  • רמי כותב :

    אריאל, באיזה פילטר אתה משתמש? תוכל לשתף?

  • צחי כותב :

    האם ניתן לבצע שינוי מ"בלוג" ל-"אתר" עם הפילטר הזה?

  • רמי כותב :

    צחי, הפילטר משנה מחרוזות בפונקציות התרגום. אתה בוחר אילו מחרוזות לשנות, בין אם זה "פוסט" ובין אם זה "בלוג".

  • מאור חזן כותב :

    היי רמי, אחלה של פיתרון! תודה על הפוסט (או המאמר?).

  • הגר כהן כותב :

    רציתי לדעת כיצד אוכל לשנות מילים כמו Posted by ל"מאת" , COMMENT ל"הגב" .. ניסיתי לשנות את זה ישירות דרך הקוד אבל כשאני עושה שמור ומסתכלת באתר מופיע לי ריבועים ��� כאלו.. מה אני יכולה לעשות ? תודה רבה על העזרה!

  • רמי כותב :

    הגר, זו בעיה מוכרת כאשר משנים את הקוד.
    יש לשנות את הקידוד של הקובץ בדרך הבאה: תפתחי את הקובץ עם Notepad++, בסרגל העליון תבחרי Encoding ותשני קידוד ל- Convert to UTF-8 without BOM.

  • תרגום מאמרים כותב :

    טוב לדעת! תודה

הוסף תגובה !

נא לא לשאול שאלות שלא קשורות לפוסט, זהו לא פורום תמיכה. לבעיות אישיות ונושאים מורכבים אפשר ליצור איתי קשר.

תגיות HTML מורשות לשימוש:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>