הבדלים בין גרסאות בדף "Gezer/דגשים/WineOld"

מתוך ויקי עמותת המקור
(דף חדש: = מדריך התרומה והעריכה של Wine = במדריך זה נסקור בקצרה את Wine ואת אופן הפעולה מול המערכת המשרתות את המתרגמ…)
 
(עריכת ביניים)
שורה 10: שורה 10:
 
== ניהול הקוד של Wine ==
 
== ניהול הקוד של Wine ==
  
Wine מנוהלת במערכת גרסאות מסוג Git...
+
Wine מנוהלת במערכת גרסאות מסוג Git ואינה מקבלת Patches ו־Commit באופן אוטומטי, לכן עלינו להכין Patch כפי שיוסבר במדריך זה ולשלוח אותו לרשימת התפוצה המיועדת לכך לסקירה.
(ערך זה יושלם בעתיד)
+
 
 +
לצפייה בקוד דרך מערכת מבוססת דפדפן ניתן לבקר בכתובת:
 +
http://source.winehq.org/git/wine.git/
 +
 
 +
כדי לעבוד על הקוד של Wine עלינו להוריד את קוד המקור למחשב, במסוף ניגש לתיקייה שתחתיה נרצה לעבוד על Wine ונפעיל את הפקודה הבאה:
 +
<div dir="ltr">
 +
$ git clone git://source.winehq.org/git/wine.git
 +
</div>
 +
 
 +
לאחר מספר דקות (בהתאם למהירות החיבור) תופיע התיקייה wine תחת התיקייה עליה אתם עובדים כעת ובה קוד המקור.
 +
 
 +
מומלץ להדר (compile) את קוד המקור מיד לאחר ההורדה כדי לאפשר הידור מהיר יותר לשם בקרת איכות.
 +
 
 +
ניתן לעשות זאת באמצעות רצף הפקודות:
 +
<br>(יש להתעלם מהשורה הראשונה אם כבר נכנסתם לתיקיית קוד המקור)
 +
<div dir="ltr">
 +
$ cd wine
 +
$ ./configure
 +
$ make
 +
</div>
 +
את התכניות והספריות שיש לתרגם ניתן למצוא בשתי תיקיות:
 +
# programs
 +
# dlls
 +
 
 +
כעת כל שעלינו נותר הוא לבחור את התכנה אותה נרצה לתרגם בעזרת הרשימה הבאה:
 +
 
 +
 
 +
== קובצי RC והטיפול בהם ==
 +
 
 +
התוכנות ב־Wine משתמשות בקובצי RC לצורכי הצגת מנשקים (בתכניות ‎.NET‎ משתמשים במבנה קובץ אחר שנקרא ResX).
 +
 
 +
קובצי ה־RC מכילים מספר הגדרות:
 +
# ממדי ותכונות החלון והפקדים
 +
# הטקסט שיופיע על כל אחד מאלה
 +
 
 +
קובץ RC יכול להכיל הנחיות למספר חלונות גם יחד.
 +
 
 +
== טיפול בקובצי RC ==
 +
 
 +
קובץ RC יכול להופיע בשתי צורות:
 +
# ‎<appname>_Xx.rc
 +
# Xx.rc
 +
כאשר <appname> הוא שם ייצוגי של התכנה (לא תמיד השם הרשמי) ו־Xx הוא קוד השפה לפי [http://www.loc.gov/standards/iso639-2/php/code_list.php תקן ISO-639-2], כאשר הקוד לשפה העברית הוא He, לצורך הבדלה הקוד המייצג את השפה האנגלית הוא En.
 +
 
 +
 
 +
 
 +
במדריך זה נדון במנשק המשתמש של התכנית Help Viewer (מציג העזרה — winhlp32) של Wine ובאמצעותה נדגים כיצד יש לתרגם תכנה לעברית.
 +
 
 +
את הקובץ ניתן למצוא [http://source.winehq.org/git/wine.git/?a=blob_plain;f=programs/winhlp32/En.rc;hb=HEAD כאן].
 +
 
 +
ובכן במבט חטוף על הקובץ מיד ניתן להבחין שהוא מתחיל בהערה:
 +
<div dir="ltr">
 +
/*
 +
* HTML Help resources
 +
* English Language Support
 +
*
 +
* Copyright 2005 James Hawkins
 +
*
 +
</div>
 +
 
 +
כאן כבר מופיעים מספר נתונים מעניינים — ראשית: שם התכנית, היכרות עם הקובץ תעזור לנו בתרגומו מכיוון שפעולתו מובנת לנו.
 +
 
 +
לאחר מכן בשורה השלישית מופיע שם השפה, כיוון שאנחנו מתרגמים לשפה זרה עדיף שנשנה את זה לשפה אליה אנחנו מתרגמים, במקרה זה — Hebrew.
 +
 
 +
בשורות שלאחר מכן מופיעות זכויות יוצרים, כיוון שאתם אחראים לגרסה בשפתכם רצוי להוסיף את שמכם מתחת לשמות המתכנתים באותו האופן ורצוי להוסיף גם את כתובת הדוא״ל שלכם בסוף השורה.
 +
 
 +
דוגמה לאחר השינויים המבוקשים:
 +
<div dir="ltr">
 +
/*
 +
* HTML Help resources
 +
* Hebrew Language Support
 +
*
 +
* Copyright 2005 James Hawkins
 +
* Copyright 2010 Yaron Shahrabani <[email protected]>
 +
*
 +
</div>
 +
 
 +
המשך ההערה הוא הכרזת ה־GPL (לא הרישיון עצמו) ולאחריו השורות הבאות:
 +
<div dir="ltr">
 +
#include "resource.h"
 +
 
 +
LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
 +
</div>
 +
 
 +
שורת ה־#include בעצם מאפשרת לקובץ המשאבים לגשת לספריות הקוד של השפה שבה הוא נכתב (C במקרה הזה), לנו כמתרגמים זה לא רלוונטי ואין לשנות שורה זו.
 +
 
 +
לאחר שורת ה־#include עלינו להוסיף שורה שמכריזה על קידוד הקובץ הנ״ל, במקור חלק מהתכניות ב־Windows נכתבו בקידוד cp1255/Windows-1255 אך כדי להרחיב את התמיכה והתאימות הוחלט ב־Wine שכל התכניות יתורגמו ביוניקוד כדי לאפשר תאימות מלאה בין השפות.
 +
 
 +
כדי להכריז על הקידוד בו אנו רוצים להשתמש נוסיף את השורה ‎#pragma code_page(65001)‎ בין השורות האלו ולשם האסתטיקה מומלץ להוסיף רווח לפני השורה ולאחריה.
 +
 
 +
בשורה הבאה מופיעה הכרזת השפה של המשאב, ההגדרה LANGUAGE מגדירה את השפה עצמה ואילו SUBLANG מגדירה ניב של השפה, לדוגמה: פורטוגזית ברזילאית. במקרים מסוימים מדובר בהבדלים בין מערכות הכתב של השפות, לדוגמה: סרבית קירילית או סינית מסורתית.
 +
 
 +
כיוון שעברית מדוברת היא אחידה נוכל להשתמש בצורות: SUBLANG_DEFAULT או SUBLANG_NEUTRAL המגדירות את התרגום שלנו לכל צורות העברית באשר הן (אם יתווספו ניבים בעתיד אלו יושפעו גם כן מהתרגום הזה).
 +
 
 +
עלינו לשנות את השורות בהתאם באופן הבא:
 +
<div dir="ltr">
 +
#include "resource.h"
 +
 
 +
#pragma code_page(65001)
 +
 
 +
LANGUAGE LANG_HEBREW, SUBLANG_DEFAULT
 +
</div>
 +
 
 +
עברנו את שורות הכותרת, כעת נעבור לקוד.
 +
<div dir="ltr">
 +
STRINGTABLE
 +
BEGIN
 +
    IDS_CONTENTS    "&Contents"
 +
...
 +
</div>
 +
 
 +
STRINGTABLE כשמה כן היא טבלת מחרוזות, BEGIN היא ההכרזה על תחילת הטבלה ובשורה שלאחריה מופיעה המחרוזת הראשונה שעלינו לתרגם: ‎&Contents, ב־Wine (ובתכניות Windows רבות) תו הסימון למקשי האצה הוא &, מקש זה יופיע עם קו תחתי, לפרטים נוספים ניתן לקרוא את המדריך על [[Gezer/מקשי האצה|מקשי האצה]].
 +
 
 +
בהמשך מופיעות מחרוזות באותו האופן,יש לתרגם באותה השיטה.
 +
 
 +
לאחר שסיימנו את המחרוזות (כמעט לגמרי) נבחין כי אחת השורות האחרונות של הקובץ היא:
 +
<div dir="ltr">
 +
LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL
 +
</div>
 +
 
 +
בשביל מה צריך להכריז שוב על השפה? מוזר, נכון? אל חשש, יש הסבר, קודם לכן במסמך דנו ב־SUBLANG רק שבשורה הנדונה הופיע: SUBLANG_DEFAULT ולא SUBLANG_NEUTRAL כמו כאן, אם כן לשורה זו יש תפקיד שונה.
 +
 
 +
כבר אמרנו שמטרת ה־SUBLANG היא להפריד בין ניבים, ניב בררת המחדל שהוגדר לשפה האנגלית הוא הניב האמריקאי, בעוד שמלבד הניב הזה יש את הניב הניטרלי שהוא הניב הבריטי (האנגלית ה"תקנית" כלשונם).
 +
 
 +
כיוון שיש הבדל בין המילה Favorite ל־Favourite נוספה לקובץ הגדרת שפה שמתמודדת עם הבעיה הזאת ומציגה לכל דובר את המילה המועדפת עליו לפי בחירתו.
 +
 
 +
מה כדאי לעשות עם השורה הזאת? פשוט מאוד, יש למחוק את השורה כולל כל השורות שלאחריה ללא שום הסתייגויות.
 +
 
 +
כעת נוכל לשמור את הקובץ.

גרסה מ־15:12, 27 באוקטובר 2010

מדריך התרומה והעריכה של Wine

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

מהי Wine?

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

Wine מספקת פתרון להרצת תכניות Windows כחלק מסביבת העבודה הלינוקסית שלך, כלומר שהחלונות יופיעו אולי בעיצוב קצת שונה אבל יתפקדו בדומה לשאר החלונות בסביבת העבודה שלך (גרפית כמובן :) ).

ניהול הקוד של Wine

Wine מנוהלת במערכת גרסאות מסוג Git ואינה מקבלת Patches ו־Commit באופן אוטומטי, לכן עלינו להכין Patch כפי שיוסבר במדריך זה ולשלוח אותו לרשימת התפוצה המיועדת לכך לסקירה.

לצפייה בקוד דרך מערכת מבוססת דפדפן ניתן לבקר בכתובת: http://source.winehq.org/git/wine.git/

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

לאחר מספר דקות (בהתאם למהירות החיבור) תופיע התיקייה wine תחת התיקייה עליה אתם עובדים כעת ובה קוד המקור.

מומלץ להדר (compile) את קוד המקור מיד לאחר ההורדה כדי לאפשר הידור מהיר יותר לשם בקרת איכות.

ניתן לעשות זאת באמצעות רצף הפקודות:
(יש להתעלם מהשורה הראשונה אם כבר נכנסתם לתיקיית קוד המקור)

$ cd wine
$ ./configure
$ make

את התכניות והספריות שיש לתרגם ניתן למצוא בשתי תיקיות:

  1. programs
  2. dlls

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


קובצי RC והטיפול בהם

התוכנות ב־Wine משתמשות בקובצי RC לצורכי הצגת מנשקים (בתכניות ‎.NET‎ משתמשים במבנה קובץ אחר שנקרא ResX).

קובצי ה־RC מכילים מספר הגדרות:

  1. ממדי ותכונות החלון והפקדים
  2. הטקסט שיופיע על כל אחד מאלה

קובץ RC יכול להכיל הנחיות למספר חלונות גם יחד.

טיפול בקובצי RC

קובץ RC יכול להופיע בשתי צורות:

  1. ‎<appname>_Xx.rc
  2. Xx.rc

כאשר <appname> הוא שם ייצוגי של התכנה (לא תמיד השם הרשמי) ו־Xx הוא קוד השפה לפי תקן ISO-639-2, כאשר הקוד לשפה העברית הוא He, לצורך הבדלה הקוד המייצג את השפה האנגלית הוא En.


במדריך זה נדון במנשק המשתמש של התכנית Help Viewer (מציג העזרה — winhlp32) של Wine ובאמצעותה נדגים כיצד יש לתרגם תכנה לעברית.

את הקובץ ניתן למצוא כאן.

ובכן במבט חטוף על הקובץ מיד ניתן להבחין שהוא מתחיל בהערה:

/* 
* HTML Help resources
* English Language Support
*
* Copyright 2005 James Hawkins
*

כאן כבר מופיעים מספר נתונים מעניינים — ראשית: שם התכנית, היכרות עם הקובץ תעזור לנו בתרגומו מכיוון שפעולתו מובנת לנו.

לאחר מכן בשורה השלישית מופיע שם השפה, כיוון שאנחנו מתרגמים לשפה זרה עדיף שנשנה את זה לשפה אליה אנחנו מתרגמים, במקרה זה — Hebrew.

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

דוגמה לאחר השינויים המבוקשים:

/* 
* HTML Help resources
* Hebrew Language Support
*
* Copyright 2005 James Hawkins
* Copyright 2010 Yaron Shahrabani <[email protected]>
*

המשך ההערה הוא הכרזת ה־GPL (לא הרישיון עצמו) ולאחריו השורות הבאות:

#include "resource.h"
 
LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT

שורת ה־#include בעצם מאפשרת לקובץ המשאבים לגשת לספריות הקוד של השפה שבה הוא נכתב (C במקרה הזה), לנו כמתרגמים זה לא רלוונטי ואין לשנות שורה זו.

לאחר שורת ה־#include עלינו להוסיף שורה שמכריזה על קידוד הקובץ הנ״ל, במקור חלק מהתכניות ב־Windows נכתבו בקידוד cp1255/Windows-1255 אך כדי להרחיב את התמיכה והתאימות הוחלט ב־Wine שכל התכניות יתורגמו ביוניקוד כדי לאפשר תאימות מלאה בין השפות.

כדי להכריז על הקידוד בו אנו רוצים להשתמש נוסיף את השורה ‎#pragma code_page(65001)‎ בין השורות האלו ולשם האסתטיקה מומלץ להוסיף רווח לפני השורה ולאחריה.

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

כיוון שעברית מדוברת היא אחידה נוכל להשתמש בצורות: SUBLANG_DEFAULT או SUBLANG_NEUTRAL המגדירות את התרגום שלנו לכל צורות העברית באשר הן (אם יתווספו ניבים בעתיד אלו יושפעו גם כן מהתרגום הזה).

עלינו לשנות את השורות בהתאם באופן הבא:

#include "resource.h"
 
#pragma code_page(65001)
 
LANGUAGE LANG_HEBREW, SUBLANG_DEFAULT

עברנו את שורות הכותרת, כעת נעבור לקוד.

STRINGTABLE
BEGIN
    IDS_CONTENTS     "&Contents"
...

STRINGTABLE כשמה כן היא טבלת מחרוזות, BEGIN היא ההכרזה על תחילת הטבלה ובשורה שלאחריה מופיעה המחרוזת הראשונה שעלינו לתרגם: ‎&Contents, ב־Wine (ובתכניות Windows רבות) תו הסימון למקשי האצה הוא &, מקש זה יופיע עם קו תחתי, לפרטים נוספים ניתן לקרוא את המדריך על מקשי האצה.

בהמשך מופיעות מחרוזות באותו האופן,יש לתרגם באותה השיטה.

לאחר שסיימנו את המחרוזות (כמעט לגמרי) נבחין כי אחת השורות האחרונות של הקובץ היא:

LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL

בשביל מה צריך להכריז שוב על השפה? מוזר, נכון? אל חשש, יש הסבר, קודם לכן במסמך דנו ב־SUBLANG רק שבשורה הנדונה הופיע: SUBLANG_DEFAULT ולא SUBLANG_NEUTRAL כמו כאן, אם כן לשורה זו יש תפקיד שונה.

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

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

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

כעת נוכל לשמור את הקובץ.