Global templates/Proposed specification, short version/he

במיזמי ויקימדיה יש בעיה. התוכנה שהם רצים עליה היא תערובת של קוד שמגיע משני מקורות:


 * 1) תוכנה מותקנת (deployed): תוכנת מדיה־ויקי והרחבות שלה, שמפותחות, מותקנות, ומתורגמות באופן מרוכז באמצעות Gerrit‏, translatewiki, וכלים קשורים אחרים.
 * 2) התאמות מקומיות: אוסף גדול של כלים שמפותח מקומית בכל אתר ויקי: תבניות, יחידות לואה, וגאדג׳טים.

עבור העורכים והקוראים של האתרים, הטכנולוגיות השונות מתערבבות יחד ונראות כמו מוצר אחד, אולם תהליכי פיתוח התוכנה השונים מציבים אתגרים:


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

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

 הפתרון המוצע:


 * 1) לאפשר לחלק מהתבניות והיחידות להיות גלובליות, בדומה לאחסון תמונות בוויקישיתוף, דפי JS ו־CSS אישיים גלובליים, דפי משתמש גלובליים, וכו'. (כדאי שגם גאדג'טים יהיו גלובליים, אבל זה כבר אפשרי למעשה באמצעות טריקים כגון אלה שעובדים ב־HotCat. זה לא מושלם, אבל זה הרבה פחות בעייתי מאיך שזה עובד עם תבניות. לכן, גאדג'טים אינם חלק מההצעה הזאת.)
 * 2) כל קהילת עורכים תשמור על העצמאות שלה לתחזק תבניות מקומיות ולעשות שינויים מקומיים בפונקציונליות של תבניות גלובליות ובמידע שהן מציגות.
 * 3) יהיה אפשר לתרגם מחרוזות ממשק משתמש של תבניות גלובליות בממשק שדומה לזה של translatewiki, כמו שזה נעשה עם הרחבות.
 * 4) יהיה אפשר לערוך תבניות ויחידות כמו דפי ויקי והן יהיו שמישות מייד אחרי הפרסום.
 * 5) מדיניות על תחזוקה, שיתוף, הגנה, ומחיקה של תבניות ויחידות תפותח על־ידי קהילת העורכים.

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

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