ווטסאפ - לינוקס, BSD, קוד פתוח ותוכנה חופשית בעברית. Whatsup - Linux, BSD, open source and free software in Hebrew

 
 
  כניסת חברים · רישום · שכחתי סיסמה  
tux the penguin
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
משהלא בפורום כעתSite Moderator ת.הצטרפות: 30/08/2003 · הודעות: 985 · מיקום: אלקנה, ישראל
 

הודעה פורסם: 06/10/2009 - 18:28
נושא ההודעה: שינוי locale בחלונות

כתבתי לוח שנה עברי קטן (עם QT כספרייה הגרפית) שמשתמש ב libhdate .

בלינוקס הכל מצויין. libhdate משתמשת ב gettext לתרגום המחרוזות, ובודקות למה לתרגם לפי הלוקאל.
זאת אומרת שהרצת התוכנה עם LC_ALL = he_IL, למשל, מאפשר לה להיות בעברית גם כאשר המערכת באנגלית, ובנוסף, אני יכול להשתמש ב setlocale מתוך הקוד כדי להכריח לוקאל ידנית אם אני רוצה.


הבעייה היא, כמובן, בחלונות.
libhdate תמיד עובד באנגלית, למרות כל מה שניסיתי.

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

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

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

אולי אני בכלל עובד לא נכון ובחלונות עובדים עם לוקאל בצורה אחרת?

(אגב, התוכנה קומפלה לחלונות ממש בקלות. QT לא עושה שום בעיות, ול libhdate עשיתי cross-compile עם mingw, שעבד בלי בעייה).

תודה,
משה
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ ביקור באתר המפרסם מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
yoelionלא בפורום כעת ת.הצטרפות: 25/06/2008 · הודעות: 711 ·
 

הודעה פורסם: 06/10/2009 - 19:31
נושא ההודעה:

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

_________________
נכון או נכאון?
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
משהלא בפורום כעתSite Moderator ת.הצטרפות: 30/08/2003 · הודעות: 985 · מיקום: אלקנה, ישראל
 

הודעה פורסם: 06/10/2009 - 19:49
נושא ההודעה:

אוי ווי...

ויש אנשים שעוד לא הפנימו שזאת מערכת הפעלה מוגבלת Confused


אני בסך הכל רוצה לשנות לוקאל לרגע לתוכנה מסויימת. למה אני צריך לשנות עכשיו את ההגדרות של כל המערכת? מי אמר שאני בכלל אדמין? ומי אמר שאני בכלל "מתקין" את התוכנה? (ואני לא, זה בסך הכל exe שאני מריץ ללא התקנה).


אולי מישהו מכיר פתרון אחר?

(אני כל כך לא רוצה ליצור גרסא של libhdate עם האק שמאפשר להכריח עברית Crying or Very sad )

בכל אופן תודה על התשובה,
משה
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ ביקור באתר המפרסם מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
yoelionלא בפורום כעת ת.הצטרפות: 25/06/2008 · הודעות: 711 ·
 

הודעה פורסם: 06/10/2009 - 20:21
נושא ההודעה:

קובץ מוכן ללא התקנה? אין לי מושג איך עושים זאת ואם יש תוכנות עבריות שעובדות כך. תנחומיי

_________________
נכון או נכאון?
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אשלא בפורום כעת ת.הצטרפות: 01/05/2009 · הודעות: 527 ·
 

הודעה פורסם: 06/10/2009 - 20:48
נושא ההודעה:

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

תנסה לקמפל את 2 התוכנות אם 'ההיפך של winelib' (אין לי שמץ איך הוא נקרא) כדיי שהן יעבדו כמו תוכנות לינוקס
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
ארתיום ת.הצטרפות: 15/07/2005 · הודעות: 4433 ·
 

הודעה פורסם: 06/10/2009 - 21:59
נושא ההודעה:

מספר הערות:

mingw לא כל כך תומך ב־locale מלבד POSIX. וגם אם היית עובד עם Visual Studio עדיין הייתה לך בעיה עם locale כי he_IL זה לוקל לפי ייצוג POSIXי שחלונות לא ממש מבינים אותו בחלונות צריך להשתמש בשם Hebrew.

עכשיו השאלה כיצד אתה מגדיר locale וכיצד אתה מכוון את הלוקל של תכנה ספציפית וכיצד אתה מכוון את המילונים של gettext. תתחיל משם.

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

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

ואגב משתני סביבה LANG ו־LANGUAGE כן אמורים משפיע כל לוקל.

תתחיל מפה: http://gnuwin32.sourceforge.net/packages/gettext.htm

_________________
קזית 3 - קנופיקס עברי.
BiDiTeX - תמיכה בכיווניות ל-LaTeX.
CppCMS - פיתוח ל־web ב־++C.

גם לי יש בלוג Neutral
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
משהלא בפורום כעתSite Moderator ת.הצטרפות: 30/08/2003 · הודעות: 985 · מיקום: אלקנה, ישראל
 

הודעה פורסם: 07/10/2009 - 18:24
נושא ההודעה:

ארתיום, תודה רבה!

את הכיוון הכללי אני מאמין שהתחלתי להבין, אבל אני עדיין תקוע.

gettext מותקן. אני הייתי מנחש שה sdk של qt כבר התקין אותו קודם, אבל בכל מקרה התקנתי אותו ידנית כדי לוודא. לא עזר כמובן.

כמו כן השם של הלוקאל הוא אכן שונה, ובדיקה זריזה שלי החזירה "Hebrew_Israel.1255" .

אני גם מאמין ששמתי את המילון בנתיב הנכון, אם כי כאן אני לא בטוח ... Confused

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

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

http://stackoverflow.com/questions/1180590/how-to-set-lang-variable-in-windows

האם הוא צודק שם?
האם הבנתי נכון וזה אומר שאין סיכוי להפעיל את libhdate בשפה שונה מזו של שאר המערכת?

תודה רבה לכל מי שענה,
משה
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ ביקור באתר המפרסם מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
ארתיום ת.הצטרפות: 15/07/2005 · הודעות: 4433 ·
 

הודעה פורסם: 08/10/2009 - 09:58
נושא ההודעה:

דבר ראשון: הלוקל של Windows לא ממש עובד תחת Mingw... תשכח מזה.

עכשיו תתחיל מתכנה קטנה:
קוד:

#include <libintl.h>
#include <stdio.h>
#include <locale.h>


int main()
{
        setlocale(LC_ALL,"");
        bindtextdomain("foo",".");
        textdomain("foo");
        printf("%s\n",gettext("Hello"));
        return 0;

}


תיצור עבורה קובץ foo.po:‏

קוד:
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: foo\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-10-08 09:39+0200\n"
"Last-Translator: Foo <foo@address>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"

#: lang.c:10
msgid "Hello"
msgstr "Shalon"


תמיר אותו ל־mo בעזרת msgfmt foo.po -o foo.mo

תמקם אות הכל כך:

קוד:
foo.exe
he/
he/LC_MESSAGES/
he/LC_MESSAGES/foo.mo



עכשיו תיכנס לתיקיה ותריץ foo.exe

אתה אמור לראות Hello

לאחר מכן תגדיר משתנה סביבה LANG=he_IL או LANG=he או LANG=he_IL.UTF-8 ותריץ את התוכנה...

אתה אמור לראות Shalom...

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

_________________
קזית 3 - קנופיקס עברי.
BiDiTeX - תמיכה בכיווניות ל-LaTeX.
CppCMS - פיתוח ל־web ב־++C.

גם לי יש בלוג Neutral
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
ארתיום ת.הצטרפות: 15/07/2005 · הודעות: 4433 ·
 

הודעה פורסם: 08/10/2009 - 12:40
נושא ההודעה:

ציטוט:
(אגב, התוכנה קומפלה לחלונות ממש בקלות. QT לא עושה שום בעיות, ול libhdate עשיתי cross-compile עם mingw, שעבד בלי בעייה).


אתה בטוח שכאשר קמפלת יחד עם תמיכה ב־NLS? כי בשביל זה צריך ספריות libintl ו־iconv. תסתכל בפלט של configure מה קיבלת כשעשית cross-compile Wink

_________________
קזית 3 - קנופיקס עברי.
BiDiTeX - תמיכה בכיווניות ל-LaTeX.
CppCMS - פיתוח ל־web ב־++C.

גם לי יש בלוג Neutral
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
משהלא בפורום כעתSite Moderator ת.הצטרפות: 30/08/2003 · הודעות: 985 · מיקום: אלקנה, ישראל
 

הודעה פורסם: 11/10/2009 - 15:58
נושא ההודעה:

ארתיום, שוב תודה!

לקח לי קצת זמן לעכל ולהתמודד עם כל מה שהעלית (וחוץ מזה שהיו לי דברים אחרים לעשות Wink ) , וכרגע זה המצב:

אני יכול לקמפל תוכנות עם libintl סוף סוף מחלונות או לינוקס (בעזרת mingw).

אחרי זה - אם אני ממקם את קובץ ה mo כמו שאמרת, התרגום אכן עובד - אם כי ללא תלות בלוקאל (אבל רק התקייה he עובדת, ולא אף צירוף אחר). מוזר מאוד. (מצד שני, אני כן חייב להריץ את זה מתוך התקייה שלה ישירות):
קוד:

$ ./foo/foo.exe
Hello

$ cd foo

$ ./foo.exe
Shalon

$ LANG=en_US ./foo.exe
Shalon


זאת נקודה אחת.
לגבי קימפול עם NLS - הסתבר כמובן שקימפלתי ללא תמיכה עם זה. לקח לי המון זמן לגלות איך לאפשר את זה, אבל עכשיו, אחרי לחץ פיזי מתון, סוף סוף:
קוד:

configure:24087: checking whether to use NLS
configure:24089: result: yes


מצד שני, זה לא פתר את הבעייה.

make install של libhdate החדש בכלל לא העתיק איתו קבצי po. או mo. . מצאתי אותם ידנית , אבל לא ברור לי מה אני אמור לעשות איתם. זה הרי תרגום של הספרייה, ואני צריך תרגום לתוכנות שנבנות מולה.

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

שוב תודה רבה,
משה
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ ביקור באתר המפרסם מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
ארתיום ת.הצטרפות: 15/07/2005 · הודעות: 4433 ·
 

הודעה פורסם: 12/10/2009 - 07:31
נושא ההודעה:

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

המלצה שלי? תקמפל libhdate תחת mingw

_________________
קזית 3 - קנופיקס עברי.
BiDiTeX - תמיכה בכיווניות ל-LaTeX.
CppCMS - פיתוח ל־web ב־++C.

גם לי יש בלוג Neutral
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
ארתיום ת.הצטרפות: 15/07/2005 · הודעות: 4433 ·
 

הודעה פורסם: 12/10/2009 - 07:37
נושא ההודעה:

ציטוט:
מצד שני, אני כן חייב להריץ את זה מתוך התקייה שלה ישירות


תשים לב לשורה:

קוד:
bindtextdomain("foo",".");


היא אומרת ל־gettext איפה לחפש מילון.

ברוב התכנות שמקומםלות עם gettext משתמשים ב:

bindtextdomain("foo",SOME_CONIGURE_PROVIDED_DEFINE);‎

למשהו כמו ‎/usr/share/locale/he/LC_MESSAGES/foo.mo

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

_________________
קזית 3 - קנופיקס עברי.
BiDiTeX - תמיכה בכיווניות ל-LaTeX.
CppCMS - פיתוח ל־web ב־++C.

גם לי יש בלוג Neutral
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
משהלא בפורום כעתSite Moderator ת.הצטרפות: 30/08/2003 · הודעות: 985 · מיקום: אלקנה, ישראל
 

הודעה פורסם: 12/10/2009 - 12:22
נושא ההודעה:

ארתיום, שוב תודה רבה!

מצאתי את השורה עם bindtextdomain ב libhdate, וראיתי שהיא תלויה במשתנה שמוגדר ב makefile. שיניתי אותו ידנית לנקודה, וזה אכן עבד Smile

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

רק נקודה מצערת קטנה היא ש gettext לחלונות לא כולל את כל ה define ים של ה LC_*, מה שהצריך אותי לשנות שורה ידנית ב libhdate. אבל לא נורא.

תודה רבה,
משה
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ ביקור באתר המפרסם מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
ארתיום ת.הצטרפות: 15/07/2005 · הודעות: 4433 ·
 

הודעה פורסם: 12/10/2009 - 14:32
נושא ההודעה:

ציטוט:
מצאתי את השורה עם bindtextdomain ב libhdate, וראיתי שהיא תלויה במשתנה שמוגדר ב makefile. שיניתי אותו ידנית לנקודה, וזה אכן עבד


במקום לשנות קוד של libhdate הייתי ממליץ לך לקמפל ולהתקין את libhdate על mingw כך שהוא ידע איפה נמצאים המילונות.

בקיצור... תקרא את התיעוד של gettext.

_________________
קזית 3 - קנופיקס עברי.
BiDiTeX - תמיכה בכיווניות ל-LaTeX.
CppCMS - פיתוח ל־web ב־++C.

גם לי יש בלוג Neutral
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
הצגת הודעות מלפני:     
מעבר אל:  
כל הזמנים הם GMT + 2 שעות
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
PNphpBB2 © 2003-2004 

תוכן הדיון

  1. משה
  2. yoelion
  3. משה
  4. yoelion
  5. אש
  6. ארתיום
  7. משה
  8. ארתיום
  9. ארתיום
  10. משה
  11. ארתיום
  12. ארתיום
  13. משה
  14. ארתיום