ÅëëçíéêÝò ÌåôáöñÜóåéò NLS (Greek NLS translations) Óßìïò ÎåíéôÝëëçò, S.Xenitellis@rhbnc.ac.uk v0.9, 21 Áõãïýóôïõ 1999 Áõôü ôï êåßìåíï ðåñéãñÜöåé ôçí ðñïóðÜèåéá åîåëëçíéóìïý ôùí GNU ðñïãñáììÜôùí. Ôá GNU ðñïãñÜììáôá (äçëáäÞ ôá ðåñéóóüôåñá ðñïãñÜììáôá åöáñìïãþí ðïõ áðáíôþíôáé óõíÞèùò óå Unix óõóôÞìáôá üðùò ls, mutt, kde, gnome) Ý÷ïõí ôç äõíáôüôçôá íá õðïóôçñßîïõí ãëþóóåò åêôüò ôùí áããëéêþí ìå Ýíá áðëü êáé äéáöáíÝò ãéá ôï ÷ñÞóôç ôñüðï. Ôï ðáñüí áó÷ïëåßôáé ìå üóá áöïñïýí ôç ìåôÜöñáóç óôá åëëçíéêÜ. ______________________________________________________________________ Table of Contents 1. ÅéóáãùãÞ 1.1 Éóôïñßá ÁíáèåùñÞóåùí 1.2 Ôé åßíáé ôï "NLS"; 2. ¸êôáóç ôïõ NLS 2.1 Óå ôé åðßðåäï âñßóêïíôáé ïé Üëëåò ãëþóóåò; 2.2 Ðïéá ëåéôïõñãéêÜ óõóôÞìáôá õðïóôçñßæïõí ôï NLS; 2.3 ÅðéãñáììáôéêÜ, ðþò ëåéôïõñãåß ôï NLS; 2.4 Ðïéá ðñïãñÜììáôá õðïóôçñßæïõí NLS; 2.5 Óôü÷ïò ôùí ìåôáöñÜóåùí 3. NLS óôçí ðñÜîç 3.1 ÐáñÜäåéãìá ÷ñÞóçò ôïõ NLS 3.2 Ôï äïêßìáóá Üëëá äåí äïõëåýåé! 3.3 Ìå ðïéï(ðïéïõò) ôñüðïõò êáèïñßæåôáé ç ãëþóóá ìå ôçí ïðïßá åìöáíßæïíôáé ôá ìçíýìáôá åíüò óõóôÞìáôïò; 3.4 ÌåôÜðôùóç ãëùóóþí óå ðåñßðôùóç áðïõóßáò ìåôáöñÜóåùí 3.5 ÐñïãñáììáôéóôéêÝò ðëçñïöïñßåò 4. Äéáäéêáóßá ôçò ìåôÜöñáóçò 4.1 Åßíáé åðßðïíç ç åñãáóßá ôçò ìåôÜöñáóçò ôùí ìçíõìÜôùí; 4.2 ÐëçñïöïñéáêÜ, Ýíá ðñüãñáììá ðïõ õðïóôçñßæåé NLS ðùò ìïéÜæåé; 4.3 Ðïéá åßíáé ôá ðñïãñÜììáôá ðïõ âïçèïýí ôç ìåôÜöñáóç êáé ðùò ëåéôïõñãïýí; 4.3.1 ÐáêÝôï gettext 4.3.2 Ðñüãñáììá 4.3.3 Ðñüãñáììá 4.3.4 ËïéðÜ ðñïãñÜììáôá 5. ÅðéëïãÞ åëëçíéêþí ëÝîåùí êáé åêöñÜóåùí 5.1 Ðùò èá ìðïñïýóå íá ìåôáöñáóôåß ôï ð.÷. "Broken pipe"; "ÓðáóìÝíç óùëÞíá"; 5.2 LEXIS 5.3 ÅëëçíéêÞ âéâëéïãñáößá 6. ÏñãÜíùóç ìåôáöñÜóåùí 6.1 Ðñïóüíôá ìåôáöñáóôþí 6.2 ÁíÜëçøç ìåôáöñÜóåùí 6.3 Ïäçãßåò ìåôÜöñáóçò 6.4 ÍïìéêÝò ëåðôïìÝñåéåò 6.5 Ðïéïé åßíáé ïé âáóéêïß ëüãïé ìåôÜöñáóçò ôùí ìçíõìÜôùí óôá åëëçíéêÜ; 7. ÔñÝ÷ïõóá êáôÜóôáóç ôùí ìåôáöñÜóåùí 8. Åêêñåìüôçôåò 8.1 ËïéðÜ ðñïãñÜììáôá ðïõ ðåñéìÝíïõí åëëçíéêÞ ìåôÜöñáóç 9. ÄéáèÝóéìïé áíáèåùñçôÝò 10. ÅëëçíéêÝò ìåôáöñÜóåéò óôéò åêäüóåéò Linux 11. PO áñ÷åßá 12. Åðéêïéíùíßá 12.1 Ðïéïò åßíáé ï ôñÝ÷ïí õðåýèõíïò ôùí åëëçíéêþí ìåôáöñÜóåùí; ______________________________________________________________________ [1m1. ÅéóáãùãÞ[0m [1m1.1. Éóôïñßá ÁíáèåùñÞóåùí[0m · v0.1 - 09 Éáíïõáñßïõ 1999 - Óßìïò ÎåíéôÝëëçò - Áñ÷éêÞ ¸êäïóç · v0.2 - 24 Éáíïõáñßïõ 1999 - Óßìïò ÎåíéôÝëëçò - ÌéêñÝò áëëáãÝò · v0.3 - 14 Öåâñïõáñßïõ 1999 - Óßìïò ÎåíéôÝëëçò - ÌéêñÝò áëëáãÝò · v0.4 - 24 Öåâñïõáñßïõ 1999 - Óßìïò ÎåíéôÝëëçò - Ðñþôç äçìïóßåõóç óôï Hellug (http://www.hellug.gr) · v0.5 - 15 Éïõíßïõ 1999 - Óßìïò ÎåíéôÝëëçò - ÃåíéêÞ áíáèåþñçóç, ðñïóèÞêç KDE, Gnome · v0.6 - 22 Éïõíßïõ 1999 - Óßìïò ÎåíéôÝëëçò - Äéïñèþóåéò áðü ôçí áíÜäñáóç, ðñïóèÞêç íÝùí ìåôáöñÜóåùí · v0.7 - 24 Éïõëßïõ 1999 - Óßìïò ÎåíéôÝëëçò - ÐñïóèÞêç íÝùí ìåôáöñÜóåùí, ðñïóèÞêç ëßóôáò ðñïãñáììÜôùí äéáèÝóéìùí ãéá ìåôÜöñáóç, ðñïóèÞêç ðëçñïöïñéþí ãéá ôï Lyx, ðñïóèÞêç ëßóôáò ìå äéáèÝóéìïõò áíáèåùñçôÝò, ðñïóèÞêç ëßóôáò ìå åêêñåìüôçôåò, ôñÝ÷ïõóá õðïóôÞñéîç åëëçíéêþí áðü åêäüóåéò ôïõ Linux, ìéêñÝò äéïñèþóåéò · v0.8 - 25 Éïõëßïõ 1999 - Óßìïò ÎåíéôÝëëçò - ÌéêñÝò áëëáãÝò · v0.9 - 21 Áõãïýóôïõ 1999 - Óßìïò ÎåíéôÝëëçò - ÐñïóèÞêç ôïðïèåóßáò shadow utils [1m1.2. Ôé åßíáé ôï "NLS";[0m Ôï [1mNLS (National Language Support) [22måßíáé ìéá äõíáôüôçôá ðïõ ìðïñåß íá ðñïóöÝñåé Ýíá ðñüãñáììá ïýôùò þóôå íá êÜíåé äõíáôÞ ôçí åìöÜíéóç üëùí ôùí ìçíõìÜôùí êáé óõìâüëùí ðïõ âëÝðåé ï ôåëéêüò ÷ñÞóôçò óôçí ôïðéêÞ ôïõ ãëþóóá. ÄçëáäÞ, ðñïóöÝñåé ðïëýãëùóóç õðïóôÞñéîç óôá ðñïãñÜììáôá ìå Ýíá áñêåôÜ âïëéêü êáé äéáöáíÝò ôñüðï. Åêôüò áðü ôá ìçíýìáôá, ìðïñåß íá ÷ñçóéìïðïéçèåß ãéá ôçí áðåéêüíéóç ôçò ôïðéêÞò íïìéóìáôéêÞò ìïíÜäáò, ôçò ôïðéêÞò þñáò, ôïõ ôïðéêïý óõìâüëïõ äéá÷ùñéóìïý ôïõ áêÝñáéïõ ìÝñïò áðü ôï äåêáäéêü êáé Üëëá. Óôï ðáñüí åîåôÜæïõìå ôï ôìÞìá ðïõ áöïñÜ ôç ìåôÜöñáóç ôùí ìçíõìÜôùí óôá åëëçíéêÜ. [1m2. ¸êôáóç ôïõ NLS[0m [1m2.1. Óå ôé åðßðåäï âñßóêïíôáé ïé Üëëåò ãëþóóåò;[0m Ïé ðåñéóóüôåñï äéáäåäïìÝíåò ãëþóóåò âñßóêïíôáé óå ðïëý êáëü åðßðåäï üóïí áöïñÜ ôçí ðëçñüôçôá êáé ôçí ðïéüôçôá ôùí ìåôáöñÜóåùí. Áêüìá, õðÜñ÷åé õðïóôÞñéîç áðü ãëþóóåò ðïõ äåí åßíáé áñêåôÜ óõíçèéóìÝíåò üðùò ôá óëïâÝíéêá. ÅíçìåñùôéêÜ, ðïëý êáëÞ äïõëåéÜ õðÜñ÷åé ãéá ôá ãáëëéêÜ, ôá ãåñìáíéêÜ, ôá öéíëáíäéêÜ, ôá éóðáíéêÜ êáé ôá ðïëùíÝæéêá. Ç ôÜóç áõôÞ ôç óôéãìÞ åßíáé ïé äéÜöïñåò ãëþóóåò ìéêñÞò åìâÝëåéáò íá ðñïóôßèåíôáé óôç ëßóôá, êõñßùò ëüãù ôçò áíáãíþñéóçò ðïõ Ý÷åé äå÷èåß ôï Linux ðïõ åßíáé êýñéïò ÷ñÞóôçò ôùí ðñïãñáììÜôùí ðïõ õðïóôçñßæïõí NLS. [1m2.2. Ðïéá ëåéôïõñãéêÜ óõóôÞìáôá õðïóôçñßæïõí ôï NLS;[0m Ôï [1mëåéôïõñãéêü óýóôçìá [22mLinux åßíáé êýñéïò ÷ñÞóôçò ôùí ðñïãñáììÜôùí ðïõ õðïóôçñßæïõí NLS. Ôï Linux <http://www.linux.gr> áðáñôßæåôáé áðü ðñïãñÜììáôá åöáñìïãþí ðïõ äéáôßèåíôáé ìå ôçí Üäåéá äéÜèåóçò GNU <http://www.gnu.org>. Ôï ëïãéóìéêü áõôü, õðïóôçñßæåé êáôÜ âÜóç ôï NLS. Åêôüò áðü ôï Linux, ôá ðåñéóóüôåñá ëåéôïõñãéêÜ óõóôÞìáôá Unix Þ ôýðïõ-Unix ìðïñïýí íá õðïóôçñßîïõí NLS. [1m2.3. ÅðéãñáììáôéêÜ, ðþò ëåéôïõñãåß ôï NLS;[0m Ãéá ôá ðåñéóóüôåñá ðñïãñÜììáôá, ç õðïóôÞñéîç ãßíåôáé ìå ôï ðáêÝôï gettext. Óôï ðáêÝôï áõôü ðåñéëáìâÜíïíôáé ìéá âéâëéïèÞêç óôçí ïðïßá óõíäÝåôáé (link) ôï åêÜóôïôå ðñüãñáììá óôç öÜóç ôçò ìåôáãëþôôéóçò. Óôï ßäéï ôï ðñüãñáììá, ðñïóôßèåíôáé ìåñéêÝò åíôïëÝò ôçò âéâëéïèÞêçò. Ïé åíôïëÝò áõôÝò åëÝã÷ïõí ìåôáâëçôÝò ôïõ ðåñéâÜëëïíôïò ðïõ êáèïñßæïõí ôç ãëþóóá êáé áíôéêáèéóôïýí ôá ìçíýìáôá ìå ôá ìåôáöñáóìÝíá ìçíýìáôá. [1m2.4. Ðïéá ðñïãñÜììáôá õðïóôçñßæïõí NLS;[0m Èá ÷ùñßóïõìå ôá ðñïãñÜììáôá óå êáôçãïñßåò. 1. Åðßóçìá GNU ðñïãñÜììáôá Ç ìåôÜöñáóç ôùí ðñïãñáììÜôùí áõôþí ïñãáíþíåôáé áðü ôï GNU Translation Project ôï ïðïßï Ý÷åé óôåíÝò ó÷Ýóåéò ìå ôï FSF (Free Software Foundation). Ôá ðéï âáóéêÜ ðñïãñÜììáôá åíüò óõóôÞìáôïò Unix êáëýðôïíôáé åäþ. Ôï ãåãïíüò üôé ôá ðñïãñÜììáôá åßíáé åðßóçìá GNU óçìáßíåé üôé ôá Üôïìá ðïõ áðïóôÝëëïõí ìåôáöñÜóåéò, ðñÝðåé íá äçëþíïõí åããñÜðôùò üôé óõìöùíïýí ìå ôçí Üäåéá äéÜèåóçò GNU. Áêüìá, ïé ìåôáöñÜóåéò êÜèå ãëþóóáò ðñÝðåé íá Ý÷ïõí Ýíá õðåýèõíï ðïõ íá ïñãáíþíåé ôç äéáäéêáóßá. ÁõôÝò ïé íïìéêÝò éäéáéôåñüôçôåò, áí êáé öáßíïíôáé üôé áðïèáññýíïõí ôéò ìåôáöñÜóåéò, åßíáé áíáãêáßåò ãéá ôçí ïñèÞ ÷ñÞóç ôçò Üäåéáò äéÜèåóçò GNU áðü íïìéêÞò ðëåõñÜò. 2. Áíåðßóçìá GNU ðñïãñÜììáôá ¸íáò óçìáíôéêüò áñéèìüò ðñïãñáììÜôùí, ðïõ ïé ðñïãñáììáôéóôÝò ôïõò åðéëÝãïõí íá äéáèÝóïõí ìå ôçí Üäåéá äéÜèåóçò GNU, õðïóôçñßæïõí NLS. Ãéá áõôÜ ôá ðñïãñÜììáôá, áñêåß ç áðïóôïëÞ ôçò ìåôÜöñáóçò óôïõò ßäéïõò ôïõò ðñïãñáììáôéóôÝò ãéá íá ôç óõìðåñéëÜâïõí. Åäþ áíÞêïõí êáé ôá ãñáöéêÜ ðåñéâÜëëïíôá KDE êáé Gnome, ùóôüóï ãéá áõôÜ ðñïóèÝôïõìå äýï íÝåò êáôçãïñßåò ëüãù ôçò ìåãÜëçò óçìáóßáò ôïõò. 3. KDE Ôï ãñáöéêü ðåñéâÜëëïí KDE <http://www.kde.org> áðáñôßæåôáé áðü Ýíá óçìáíôéêü áñéèìü ðñïãñáììÜôùí ôá ïðïßá õðïóôçñßæïõí NLS. Ôï KDE åßíáé ðïëý äçìïöéëÝò êáé õðÜñ÷åé ìåãÜëç áíÜãêç íá õðÜñ÷åé ìéá ðëÞñçò, ôñÝ÷ïõóá êáé áêñéâÞò õðïóôÞñéîç åëëçíéêþí. 4. Gnome Ôï ãñáöéêü ðåñéâÜëëïí Gnome <http://www.gnome.org>, áðáñôßæåôáé, üðùò ôï KDE, áðü Ýíá óçìáíôéêü áñéèìü ðñïãñáììÜôùí ðñïãñáììÜôùí ðïõ õðïóôçñßæïõí NLS. To Gnome áñ÷ßæåé íá äéáäßäåôáé êáé áíáìÝíåôáé íá ðáßîåé Ýíá óçìáíôéêü ñüëï óáí Ýíá ãñáöéêü ðåñéâÜëëïí ãéá óõóôÞìáôá Unix. [1m2.5. Óôü÷ïò ôùí ìåôáöñÜóåùí[0m Åðéèõìïýìå óôéò ìåôáöñÜóåéò íá ðåôý÷ïõìå ôïõò ðáñáêÜôù óôü÷ïõò · áêñßâåéá óôç ìåôÜöñáóç ôùí ìçíõìÜôùí óôç ôïðéêÞ ãëþóóá · ðëçñüôçôá ôçò ìåôÜöñáóçò · ðïéüôçôá ôçò ìåôÜöñáóçò · ïìïéïãÝíåéá ôçò ìåôÜöñáóçò êáé ìåôáîý ìåôáöñÜóåùí · åíçìåñüôçôá ôùí ìåôáöñÜóåùí ìåôáîý åêäüóåùí [1m3. NLS óôçí ðñÜîç[0m [1m3.1. ÐáñÜäåéãìá ÷ñÞóçò ôïõ NLS[0m ÊïéôÜîôå óôï êáôÜëïãï RedHat-6.0: /usr/share/locale (ðñïò åîáêñßâùóç) RedHat-5.x: /usr/share/locale RedHat-4.x: /usr/share/locale (ðñïò åîáêñßâùóç) Open Linux 2.2: /usr/share/locale (ðñïò åîáêñßâùóç) SuSe 6.÷: /usr/share/locale (ðñïò åîáêñßâùóç) Slackware 4.0: /usr/share/locale (ðñïò åîáêñßâùóç) Debian 2.x: /usr/share/locale (ðñïò åîáêñßâùóç) óôï óýóôçìÜ óáò ãéá äéáãñÜììáôá ðïõ áöïñïýí ôéò õðïóôçñéæüìåíåò ÷þñåò. Èá âñåßôå óßãïõñá ãáëëéêÜ, éóðáíéêÜ, ãåñìáíéêÜ, ïëëáíäéêÜ êëð. Ðñï÷ùñÞóôå óôï õðïêáôÜëïãï es êáé ìåôÜ LC_MESSAGES, äçëáäÞ /usr/share/es/LC_MESSAGES/ êáé Ýóôù üôé âñßóêåôå ôï "fileutils.mo". Ôüôå, Ý÷åôå õðïóôÞñéîç ãéá éóðáíéêÜ óôï ls, mkdir êôë. (Áí Ý÷åôå õðïêáôÜëïãï el ãéá åëëçíéêÜ êáé ôï áíôßóôïé÷ï áñ÷åßï óôï óýóôçìÜ óáò, ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå ôï ëåêôéêü áõôü áíôß ôïõ es). TñÝîôå · setenv LANGUAGE es (ãéá üóïõò Ý÷ïõí öëïéü tcsh Þ óõìâáôü ìå csh) Þ · export LANGUAGE es (ãéá üóïõò Ý÷ïõí öëïéü bash Þ óõìâáôü ìå sh) Ôþñá ôñÝîôå "ls --help" êáé èá äåßôå éóðáíéêÜ ìçíýìáôá! [1m3.2. Ôï äïêßìáóá Üëëá äåí äïõëåýåé![0m Óå áõôÞ ôçí êáôçãïñßá ìðïñåß íá âñßóêïíôáé ïé ÷ñÞóôåò ìå ðáëéÜ Ýêäïóç ôïõ Linux. Óôï óýóôçìÜ óáò ìðïñåß íá õðÜñ÷ïõí ðåñéóóüôåñïé êáôÜëïãïé ìå ðëçñïöïñßåò ãéá ìåôáöñÜóåéò ðñïãñáììÜôùí (êáôÜëïãïé locale). Ôï óýíïëï ôùí êáôáëüãùí ðïõ åëÝã÷ïíôáé, ïñßæåôáé ìå ôç ìåôáâëçôÞ ðåñéâÜëëïíôïò NLSPATH. ÐÜíôá õðÜñ÷ïõí êÜðïéïé êáôÜëïãïé ðïõ ôï óýóôçìá åñåõíÜ åî ïñéóìïý, ïé ïðïßïé Ý÷ïõí ðñïêáèïñéóôåß óôç âáóéêÞ âéâëéïèÞêç ôïõ óõóôÞìáôüò óáò, ôç libc. ÄïêéìÜóôå "strace -o output.log ls --help" êáé ìåôÜ "grep open output.log" ãéá íá äåßôå ðïõ øÜ÷íåé ôï óýóôçìá. ÌåôÜ êáèïñßóôå áíÜëïãá ôï NLSPATH. [1m3.3. Ìå ðïéï(ðïéïõò) ôñüðïõò êáèïñßæåôáé ç ãëþóóá ìå ôçí ïðïßá[0m [1måìöáíßæïíôáé ôá ìçíýìáôá åíüò óõóôÞìáôïò;[0m ÌÝóù ìåôáâëçôþí ðåñéâÜëëïíôïò. Ãéá êÜðïéï ëüãï, õðÜñ÷åé Ýíáò áñéèìüò áðü ìåôáâëçôÝò ðïõ êÜíïõí ó÷åäüí ôçí ßäéá äïõëåéÜ. Ç ìåôáâëçôÞ ðïõ öáßíåôå íá ÷ñçóéìïðïéïýí ïé ðåñéóóüôåñïé ÷ñÞóôåò åßíáé ç [1mLANG[22m, ìå ôç ìïñöÞ · setenv LANG el (ãéá üóïõò Ý÷ïõí öëïéü tcsh Þ óõìâáôü ìå csh) Þ · export LANG=el (ãéá üóïõò Ý÷ïõí öëïéü bash Þ óõìâáôü ìå sh) ÄéáöïñåôéêÜ, õðÜñ÷åé ç ìåôáâëçôÞ LANGUAGE, ç ïðïßá Ý÷åé ðñïôåñáéüôçôá Ýíáíôé ôçò LANG. Ãéá ôá óõóôÞìáôá ìå glibc 2.1 (áõôÞ ôç óôéãìÞ RedHat 6.0), ï ÷ñÞóôçò ìðïñåß íá åêôåëÝóåé (ðñïò åîáêñßâùóç) · setenv LANG greek (ãéá üóïõò Ý÷ïõí öëïéü tcsh Þ óõìâáôü ìå csh) Þ · export LANG=greek (ãéá üóïõò Ý÷ïõí öëïéü bash Þ óõìâáôü ìå sh) [1m3.4. ÌåôÜðôùóç ãëùóóþí óå ðåñßðôùóç áðïõóßáò ìåôáöñÜóåùí[0m TñÝîôå · setenv LANGUAGE 'it:fr' (ãéá üóïõò Ý÷ïõí öëïéü tcsh Þ óõìâáôü ìå csh) Þ · export LANGUAGE='it:fr' (ãéá üóïõò Ý÷ïõí öëïéü bash Þ óõìâáôü ìå sh) Óå üëåò ôéò ðåñéðôþóåéò, õðÜñ÷åé ç ôåëéêÞ ìåôÜðôùóç óôçí áããëéêÞ. [1m3.5. ÐñïãñáììáôéóôéêÝò ðëçñïöïñßåò[0m Ôï ðáñáêÜôù õëéêü ðñïÝñ÷åôáé áðü ôï Íßêï Ìáõñïãéáííüðïõëï <mailto:nmav@hellug.gr>. Ìéáò êáé ôï nls ÷ñçóéìïðïéåßôáé üëï êáé ðåñéóóüôåñï óôá íÝá ðñïãñÜììáôá (éäéáßôåñá áõôÜ ðïõ áðïôåëïýí ôï GNU óýóôçìá), åßíáé áíáãêáßï íá êÜíïõìå ìéá ðåñéãñáöÞ ôçò äéáäéêáóßáò ðïõ ÷ñåéÜæåôáé ãéá íá ôï åíóùìáôþóïõìå êáé óôá äéêÜ ìáò ðñïãñÜììáôá. Ç Üäåéá ôïõ gettext ãéá ôá êïììÜôéá ðïõ èá åíóùìáôþóïõìå óôï ðñüãñáììÜ ìáò åßíáé ç GNU LGPL ðïõ äåí ìáò ðåñéïñßæåé óôïí êáèïñéóìü ôçò Üäåéáò ôïõ ðñïãñÜììáôüò ìáò. ÊïéôÜîôå ôçí ðÜíôùò ãéá íá äåßôå áí åßóôå óõìâáôïß(!). Áò ðñïóðåñÜóïõìå üìùò ôá "ôõðéêÜ" êáé áò ðåñÜóïõìå óôï øçôü. Ôá ðñïãñÜììáôá ðïõ èá ÷ñåéáóôïýìå åßíáé ôá GNU autoconf êáé gettext-0.10, êáé âñßóêïíôáé óôï ðéï êïíôéíü gnu mirror. Åäþ èá ðñïóðáèÞóïõìå íá ðñïóèÝóïõìå õðïóôÞñéîç åèíéêÞò/ôïðéêÞò ãëþóóáò (nls) óå Ýíá ðñüãñáììá ãñáììÝíï óå C. Áò äïýìå Ýíá áðëü ðñüãñáììá, ðïõ ôõðþíåé ôçí þñá óôçí ïèüíç: ______________________________________________________________________ #include <stdio.h> #include <time.h> main () { time_t tv; printf( "The time is: " ); time(&tv); printf ( "%s",ctime(&tv) ); } ______________________________________________________________________ Ç þñá üðùò êáé ôï ìÞíõìá ôõðþíåôáé óôá áããëéêÜ. ÅðåéäÞ ç ìåôÜöñáóç ðñÝðåé íá ãßíåé ãåíéêÜ - äçëáäÞ ôï ßäéï ðñüãñáììá íá ôñÝ÷åé êáé óôá ãåñìáíéêÜ êáé óôá åëëçíéêÜ êáé óå ïðïéáäÞðïôå Üëëç ãëþóóá - äåí ìåôáöñÜæïõìå áð'åõèåßáò ôï êåßìåíï. ×ñçóéìïðïéïýìå ôá localedata êáé ôç âéâëéïèÞêç intl ôçò C âéâëéïèÞêçò. Áò ÷ñçóéìïðïéÞóïõìå ôá localedata (ôïðéêÜ äåäïìÝíá) ãéá ôçí þñá. Ôï ßäéï ðñüãñáììá ôþñá ãßíåôáé: ______________________________________________________________________ #include <stdio.h> #include <time.h> #include <locale.h> main () { struct tm *tp; char buf[80]; time_t date; /* ÈÝôåé ôï locale óýìöùíá ìå ôçí ìåôáâëçôÞ ðåñéâÜëëïíôïò LANG Þ LANGUAGE * Ãéá ôá åëëçíéêÜ ðñÝðåé íá åßíáé el (ISO639) */ setlocale (LC_TIME, ""); /* Ãéá ôçí þñá êáé ìüíï */ printf( "The time is: " ); time(&date); /* ÌåôáôñÝðåé ôçí þñá Ýêöñáóç ðïõ óõíäÝåôáé ìå ôçí æþíç þñáò */ tp = localtime(&date); strftime(buf, sizeof buf, "%a %b %e %H:%M:%S %z %Y", tp); /* åêôõðþíåé ôçí þñá */ printf ("%s\n",buf); } ______________________________________________________________________ Ç þñá ôþñá èá ôõðùèåß óôçí ìïñöÞ: Ôåô ÍïÝ 11 22:44:29 +0200 1998 ìå åëëçíéêïýò ÷áñáêôÞñåò üðùò âëÝðåôå(áí LANG=el Þ gr ãéá ôéò ðáëéÝò glibc2). Ãé'áõôü îå÷Üóôå ôï ctime êáé áó÷ïëçèåßôå ìå ôï strftime(). Óå ðåñßðôùóç ðïõ äåí åßäáôå åëëçíéêïýò ÷áñáêôÞñåò åëÝãîôå áí óôï /usr/share/locale/el õðÜñ÷ïõí ôá áðáñáßôçôá áñ÷åßá. Áí äåí õðÜñ÷ïõí ðñïìçèåõôåßôå Ýíá íÝï localedata - óõìðåñéëáìâÜíåôáé óõíÞèùò óôçí libc Þ åãêáôáóôÞóôå ôï tarball ðïõ âñßóêåôáé óôï ftp://argeas.cs- net.gr/pub/unix/linux/GREEK/locale.glibc2.el.tar.gz <ftp://argeas.cs- net.gr/pub/unix/linux/GREEK/locale.glibc2.el.tar.gz> Ãéá ôçí ìåôÜöñáóç ôùí ìçíõìÜôùí, ðïõ åßíáé êáé ç êõñéüôåñç éäéüôçôá ôïõ NLS ÷ñçóéìïðïéåßôáé ï åîÞò ôñüðïò: ______________________________________________________________________ #include <stdio.h> #include <time.h> #include <locale.h> #include <libintl.h> /* áñ÷åßï ôçò GNU libc */ main () { struct tm *tp; char buf[80]; time_t date; /* ðÝñá áðï ôï LC_ALL õðÜñ÷ïõí ôá LC_TIME, LC_MESSAGES êëð, ôá ïðïßá * ðñïóäéïñßæïõí åð'áêñéâþò ôé ìåôáöñÜóåéò èá ÷ñçóéìïðïéÞóïõìå. */ setlocale (LC_ALL, ""); bindtextdomain ("my_time", "/usr/share/locale"); textdomain ("my_time"); printf( gettext("The time is: ") ); time(&date); tp = localtime(&date); strftime(buf, sizeof buf, "%a %b %e %H:%M:%S %z %Y", tp); printf ("%s\n",buf); } ______________________________________________________________________ Ïé åíôïëÝò bindtextdomain() êáé textdomain() áöïñïýí ôçí nls âéâëéïèÞêç (libintl) êáé ôçí ðëçñïöïñïýí üôé ç ìåôÜöñáóç ôïõ ðñïãñÜììáôïò âñßóêåôáé óôï my_time.mo óôïí êáôÜëïãï /usr/share/locale/XX, üðïõ ×× ç ãëþóóá ôïõ ÷ñÞóôç (êáèïñßæåôáé áðï ôçí ìåôáâëçôÞ LANG Þ LANGUAGE). ÅðåéäÞ ðïëëÝò öïñÝò ôï íá ãñÜöïõìå gettext(...) åßíáé åðßðïíï ãéá ðïëëÜ ìçíýìáôá, ÷ñçóéìïðïéïýìå ôï: ______________________________________________________________________ #define _(Text) gettext(Text) /* óôéò åðéêåöáëßäåò */ printf( _("The time is: ") ); ______________________________________________________________________ Ôï ðñüãñáììá äåí èá ëåéôïõñãÞóåé áêüìç ìå åëëçíéêÜ. ×ñåéÜæåôáé áêüìç ôç äçìéïõñãßá ôïõ .po áñ÷åßïõ. Áõôü åßíáé ó÷åôéêÜ áðëü áí ãßíåé ìå ôï ðñüãñáììá xgettext (áðü ôï ðáêÝôï GNU gettext). Ãéá ôï óõãêåêñéìÝíï ðñüãñáììá ç Ýîïäïò ôïõ xgettext åßíáé: (óýíôáîç "xgettext my_time.c") ______________________________________________________________________ # messages.po # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 1998-11-11 22:52+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: ENCODING\n" #: c.c:16 msgid "The time is: " msgstr "" #end of messages.po ______________________________________________________________________ êáé åäþ ìåôïíïìÜæïõìå ôï messages.po óå el.po, ðñïóèÝôïíôáò ôáõôü÷ñïíá óôï msgstr ôçí ìåôÜöñáóç, ð÷: ______________________________________________________________________ msgstr "Ç þñá åßíáé: " ______________________________________________________________________ Ôåëåõôáßï ìÝëçìá ôïõ ðñïãñáììáôéóôÞ åßíáé íá ìåôáôñÝøåé áõôü ôï .po áñ÷åßï óå .mo Þ .gmo ìïñöÞ. Áõôü åðéôõã÷Üíåôáé ìå ôï ðñüãñáììá msgfmt (áðü ôï GNU gettext ðÜëé). ______________________________________________________________________ ð÷ msgfmt el.po -o el.gmo ______________________________________________________________________ êáé ìåôÜ íá áíôéãñáöåß óôï /usr/share/locale/el/LC_MESSAGES/ ôï el.gmo óáí my_time.mo (áõôÜ ôá ôåëåõôáßá êáëü åßíáé íá ãßíïõí ìÝóù êÜðïéïõ makefile). Ôï óçìáíôéêüôåñï ôþñá åßíáé íá áõôïìáôïðïéÞóïõìå áõôÞ ôç äéáäéêáóßá. Áõôü åðéôõã÷Üíåôáé ìå ôï GNU autoconf. Áò öôéÜîïõìå Ýíá configure.in ðïõ èá åëÝã÷åé êáôÜ ðüóï õðÜñ÷åé õðïóôÞñéîç nls áðü ôçí libc êáé êáèþò êáé ôïõ strftime. (ãéá êáëýôåñåò äéáìïñöþóåéò êïéôÜîôå óôï: http://teamball.sdsu.edu/doc/texi/gettext_toc.html <http://teamball.sdsu.edu/doc/texi/gettext_toc.html>) Ãéá íá áðëïðïéÞóïõìå ôá ðñÜãìáôá èåùñïýìå ôçí åîÞò äéáìüñöùóç ôùí áñ÷åßùí ôïõ ðñïãñÜììáôïò: (Ýóôù üôé ôï ðñüãñáììá åßíáé óôï /xxx) óôïí êáôÜëïãï /xxx/ configure.in: ×ñåéÜæåôáé ãéá ôï autoconf (äåßôå ðáñáêÜôù) config.h.in : (äåßôå ðáñáêÜôù) óôïí êáôÜëïãï /xxx/src/ my_time.c : Ôï ðñüãñáììá óôïí êáôÜëïãï /xxx/po/ my_time.pot : Áõôü åßíáé ôï messages.po ðïõ äçìéïõñãåßôáé áðï ôï xgettext áðëþò ìåôïíïìáóìÝíï el.po : Ôï my_time.pot ìåôáöñáóìÝíï óôá åëëçíéêÜ POTFILES.in : Åäþ ðñïóèÝôåôå üëá ôá .c áñ÷åßá óôï src ðïõ ÷ñçóéìïðïéïýí ôï gettext. ð÷: /xxx/src/my_time.c Áñêåß ôþñá íá áíôéãñÜøåôå áðï ôï ðáêÝôï gettext-0.10 ôá po/Makefile.in óôïí êáôÜëïãï ôïõ ðñïãñÜììáôüò /xxx/po/ , üëï ôïí êáôÜëïãï intl/ óôïí /xxx/intl/ êáé ôá ABOUT-NLS, aclocal.m4 óôïí /xxx . ÐÜìå ôþñá óôïí ðñùôáñ÷éêü êáôÜëïãï ôïõ ðñïãñÜììáôüò ìáò (/xxx) êáé áò öôéÜîïõìå ôï configure.in áðï ôï ïðïßï èá ðñïêýøåé ôï ãíùóôü(;) script configure. ______________________________________________________________________ # configure.in for my_time.c AC_INIT() AC_CONFIG_HEADER(config.h) AC_PROG_CC AC_PATH_PROG(MAKE,make) AC_PROG_INSTALL VERSION=1.0 PROGRAMS="my_time" AC_PREFIX_DEFAULT(/usr/local) AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE") AC_DEFINE_UNQUOTED(VERSION, "$VERSION") AC_SUBST(PACKAGE) AC_SUBST(VERSION) AC_SUBST(PROGRAMS) dnl õðïóôçñßæïõìå åëëçíéêÜ (ôï el åßíáé áðï ôï iso639 ðïõ ðñÝðåé íá dnl ÷ñçóéìïðïéåßôáé ãéá ôçí Ýíäåéîç ãëþóóáò óôéò ìåôáöñÜóåéò óýìöùíá ìå ôï dnl åã÷åéñßäéï ôï gettext.) ALL_LINGUAS="el" dnl Ãéá ôï gettext 0.10. ud_GNU_GETTEXT AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl) AC_FUNC_STRFTIME AC_OUTPUT([Makefile src/Makefile intl/Makefile po/Makefile.in [sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile]) #end of configure.in ______________________________________________________________________ êáé áìÝóùò ìåôÜ äçìéïõñãïýìå Ýíá config.h.in (åßíáé âÜóç ôïõ áñ÷åßïõ config.h ðïõ èá óõìðåñéëáìâÜíåôáé óôï ðñüãñáììÜ ìáò. Ç äçìéïõñãßá ôïõ config.h ãßíåôáé áðï ôï script configure.) Ôï config.h.in èá ðåñéÝ÷åé: ______________________________________________________________________ # config.h.in for my_time.c /* Ôï üíïìá ôïõ ðáêÝôïõ (èá ÷ñçóéìïðïéçèåß ãéá ôï textdomain) */ #undef PACKAGE #undef VERSION /* strftime */ #undef HAVE_STRFTIME #undef ENABLE_NLS #end of config.h.in ______________________________________________________________________ Ôï Makefile.in ãéá ôï ðñüãñáììá (ôï Makefile äçìéïõñãåßôáé åðßóçò áõôüìáôá áðï ôï configure), ðñÝðåé íá Ý÷åé óå ãåíéêÝò ãñáììÝò ôá: ______________________________________________________________________ # Makefile.in CC = @CC@ LIBS = @LIBS@ CCOPTS = @CFLAGS@ -I. -I.. LN = @LN_S@ INSTALL = @INSTALL@ prefix = @prefix@ exec_prefix = @prefix@ datadir = $(prefix)/lib bin = $(prefix)/bin localedir = $(datadir)/locale DEFS = -DLOCALEDIR=\"$(localedir)\" SUBDIRS = @INTLSUB@ src @POSUB@ MAKE = @MAKE@ INSTALL = @INSTALL@ #ÅÜí ï êþäéêáò óáò äåí åßíáé óôïí src/ êáôÜëïãï ÷ñåéÜæåôáé ïñéóìÝíåò áëëáãÝò all: @for subdir in $(SUBDIRS); do \ echo making all in $$subdir; \ (cd $$subdir && $(MAKE) all) \ || case "$(MFLAGS)" in *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" install: @$(INSTALL) my_time $(bin) @$(MAKE) -C po/ install # end of makefile.in ______________________________________________________________________ ______________________________________________________________________ # src/Makefile.in # Åäþ ïé åðéêåöáëßäåò åßíáé ðåñßðïõ ßäéåò ìå ðñéí: CC = @CC@ LIBS = @LIBS@ CCOPTS = @CFLAGS@ -I../intl -I. -I.. LN = @LN_S@ INSTALL = @INSTALL@ prefix = @prefix@ exec_prefix = @prefix@ datadir = $(prefix)/lib localedir = $(datadir)/locale DEFS = -DLOCALEDIR=\"$(localedir)\" all: my_time my_time: my_time.o $(CC) $(OBJECTS) -o ../my_time $(LIBDIRS) $(LIBS) my_time.o: my_time.c $(CC) -c my_time.c $(CCOPTS) $(DEFS) #end of src/Makefile.in ______________________________________________________________________ Ôï ðñüãñáììá ôþñá èá ãßíåé: ______________________________________________________________________ # src/my_time.c #include <stdio.h> #include <time.h> #include <config.h> /* Þ "config.h" áí äåí âÜëåôå ôï -I. óôï Makefile */ #ifdef ENABLE_NLS #include <libintl.h> #endif main () { #ifdef HAVE_STRFTIME struct tm *tp; char buf[80]; time_t date; #else time_t tv; #endif #ifdef ENABLE_NLS setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); # define _(Text) gettext(Text) #else # define _(Text) (Text) #endif printf( _("The time is: ") ); #ifdef HAVE_STRFTIME_H time(&date); tp = localtime(&date); strftime(buf, sizeof buf, "%a %b %e %H:%M:%S %z %Y", tp); printf ("%s\n",buf); #else time(&tv); printf ( "%s",ctime(&tv) ); #endif } #end of src/my_time.c ______________________________________________________________________ Ôþñá ôñÝ÷ïõìå ôï autoconf ðïõ äçìéïõñãåß ôï configure script. Aí üëá ðÞãáí êáëÜ Ý÷ïõìå Ýíá ðñüãñáììá ðïõ ìéëÜåé îÝíåò ãëþóóåò! Ôï ðáñáðÜíù êåßìåíï åßíáé ìéá åéóáãùãÞ ìüíï óôï èÝìá. Äåí åßíáé óå êáìéÜ ðåñßðôùóç ðëÞñåò, áí èÝëåôå ðáñáðÜíù ðëçñïöïñßåò óõìâïõëåõôåßôå ôá åã÷åéñßäéá ôùí ðñïãñáììÜôùí autoconf, gettext. Ðåñéóóüôåñá ãéá ôï gettext (êáé ôçí ÷ñÞóç ôïõ ìå ôï autoconf) óôï: http://teamball.sdsu.edu/doc/texi/gettext_toc.html <http://teamball.sdsu.edu/doc/texi/gettext_toc.html> [1m4. Äéáäéêáóßá ôçò ìåôÜöñáóçò[0m [1m4.1. Åßíáé åðßðïíç ç åñãáóßá ôçò ìåôÜöñáóçò ôùí ìçíõìÜôùí;[0m Äåí åßíáé áñêåôÜ åðßðïíç. Ôï ìüíï åðßðïíï ìÝñïò åßíáé ç áñ÷éêÞ ìåôÜöñáóç üëïõ ôïõ üãêïõ ôùí ìçíõìÜôùí. ¸ðåéôá, ìå ôçí êõêëïöïñßá íÝùí åêäüóåùí ôïõ ßäéïõ ðñïãñÜììáôïò, áñêåß ç ìåôÜöñáóç ôùí íÝùí ìçíõìÜôùí, ðïõ åßíáé óõíÞèùò ëßãá óôïí áñéèìü. ÕðÜñ÷ïõí åéäéêÜ åñãáëåßá ðïõ âñßóêïõí ôá ìçíýìáôá ðïõ Ý÷ïõí áëëÜîåé ìåôáîý ôùí åêäüóåùí êáé ôá åìöáíßæïõí ãéá ìåôÜöñáóç. [1m4.2. ÐëçñïöïñéáêÜ, Ýíá ðñüãñáììá ðïõ õðïóôçñßæåé NLS ðùò ìïéÜæåé;[0m Ï ðñïãñáììáôéóôÞò ãñÜöåé ôá ìçíýìáôá ùò åîÞò: ______________________________________________________________________ ... /* ÌåñéêÝò ãñáììÝò êþäéêá ãéá áñ÷éêïðïßçóç ôïõ óõóôÞìáôïò NLS */ ... /* Second: Login with proper USER/PASS sequence. */ printf( _("connected!\n") ); ... ______________________________________________________________________ ÄçëáäÞ ðåñéêëåßåé ôá ìçíýìáôá ðïõ áðáéôïýí ìåôÜöñáóç ìå _( ). Óå üëï ôï äéÜóôçìá ôçò áíÜðôõîçò ôïõ ðñïãñÜììáôïò, ï ðñïãñáììáôéóôÞò äåí áó÷ïëåßôáé ìå ôï óýóôçìá NLS ðáñÜ ìüíï íá ðåñéêëåßåé ìå _() ôï ìçíýìáôá ðïõ âëÝðåé ï ÷ñÞóôçò. Ôï ðñüãñáììá äïõëåýåé ùò Ý÷åé. ¸ðåéôá, ï ðñïãñáììáôéóôÞò ôñÝ÷åé Ýíá âïçèçôéêü ðñüãñáììá ðïõ óõãêåíôñþíåé ôá ìçíýìáôá ðïõ ðåñéêëåßïíôáé óå _() óå Ýíá áñ÷åßï. Óôï áñ÷åßï áõôü åßíáé ðïõ åðåìâáßíåé ãéá íá ðñïóèÝóåé ôç ìåôÜöñáóç ôùí ìçíõìÜôùí. ¸ðåéôá, ìå Üëëï âïçèçôéêü ðñüãñáììá, ôï ðñþôï áñ÷åßï ìåôáôñÝðåôáé óå ìéá äõáäéêÞ ìïñöÞ ðïõ ìðïñåß íá ÷ñçóéìïðïéçèåß áðü ôï åêôåëÝóéìï. Óôçí åêôÝëåóç ôïõ, ôï ðñüãñáììá áíáæçôÜ ìéá ìåôáâëçôÞ ðåñéâÜëëïíôïò ãéá ôçí åðéëïãÞ ôçò ãëþóóáò åìöÜíéóçò ôùí ìçíõìÜôùí. ÂÜóç ôçò ãëþóóáò, ÷ñçóéìïðïéåß êáé ôá áíÜëïãá ìçíýìáôá. Áí ôá ìçíýìáôá äåí åßíáé ðáñüíôá, ôüôå ÷ñçóéìïðïéåß ôá áããëéêÜ, ôá ïðïßá ðåñéÝ÷ïíôáé óôï ßäéï ôï åêôåëÝóéìï ðñüãñáììá. [1m4.3. Ðïéá åßíáé ôá ðñïãñÜììáôá ðïõ âïçèïýí ôç ìåôÜöñáóç êáé ðùò[0m [1mëåéôïõñãïýí;[0m [1m4.3.1. ÐáêÝôï gettext[0m Ôá ðñïãñÜììáôá ðïõ âïçèïýí ôçí ïñãÜíùóç ôçò ìåôÜöñáóçò åßíáé áðü ôï ðáêÝôï [1mgettext[22m, êáé èá ôï âñåßôå óå üëá ôá êáëÜ GNU mirror sites. ÔñÝ÷ïõóá Ýêäïóç: [1m0.10.XX [22mêáé ôç óôéãìÞ ðïõ ãñÜöåôáé áõôü éó÷ýåé ××=35 êáé gettext-0.10.35.tar.gz <http://www.iro.umontreal.ca/contrib/po/gettext-0.10.35.tar.gz> Ôá ðåñéóóüôåñá ðñïãñÜììáôá õëïðïéïýí ôï NLS ìå ôï ðáêÝôï [1mgettext[22m. ÕðÜñ÷ïõí êÜðïéá Üëëá ðïõ õðïóôçñßæïõí ìéá ðáëéüôåñç ôå÷íéêÞ, ôçí [1mcatgets[22m. Èá ìéëÞóïõìå ìüíï ãéá [1mgettext[22m. [1m4.3.2. Ðñüãñáììá xgettext[0m [1mÅßóïäïò: [22máñ÷åßá *.c Þ *.h ìå áëöáñéèìçôéêÜ ôçò ìïñöÞò _("blah blah"). [1m¸îïäïò: [22máñ÷åßï êåéìÝíïõ *.pot ìå ôá áëöáñéèìçôéêÜ ðñïò ìåôÜöñáóç. Ôï áñ÷åßï *.pot åßíáé ôï áñ÷åßï õðüäåéãìá, ðïõ èá Ýðáéñíå êÜðïéïò ìåôáöñáóôÞò åëëçíéêþí êáé èá ôï áíôÝãñáöå óå el.po. Óôï áñ÷åßï el.po ãßíåôáé ç ìåôÜöñáóç. Óå üëá ôá ðáêÝôá ìå õðïóôÞñéîç "gettext", õðÜñ÷åé Ýíáò õðïêáôÜëïãïò po/ ðïõ ðåñéÝ÷åé ôï áñ÷åßï õðüäåéãìá "ðñüãñáììá.pot", ôï ïðïßï åßíáé êåíü áðü ìåôáöñáóìÝíá ìçíýìáôá. Ôáõôü÷ñïíá, ãéá ôéò õðïóôçñéæüìåíåò ãëþóóåò õðÜñ÷ïõí áíôßóôïé÷á áñ÷åßá *.po, üðùò de.po, fr.po, nl.po ðïõ åßíáé áíôßãñáöá ôïõ áñ÷éêïý áñ÷åßïõ õðïäåßãìáôïò .pot ìå óõìðëçñùìÝíåò ôéò ìåôáöñÜóåéò. [1m4.3.3. Ðñüãñáììá msgfmt[0m [1mÅßóïäïò: [22máñ÷åßá *.po (portable object) [1m¸îïäïò: [22máñ÷åßá *.mo (machine object) Ôï áñ÷åßï .mo åßíáé åêåßíï ðïõ èá ôïðïèåôçèåß óôï êáôÜëïãï /usr/share/locale/el/LC_MESSAGES ãéá íá ïëïêëçñùèåß ç åãêáôÜóôáóç. [1m4.3.4. ËïéðÜ ðñïãñÜììáôá[0m ¶ëëá ðñïãñÜììáôá ôïõ ðáêÝôïõ [1mgettext [22måßíáé · msgmerge, Ýîõðíç óõíÝíùóç äýï .po áñ÷åßùí · msgcomm, åýñåóç êïéíþí ìçíõìÜôùí äýï .po áñ÷åßùí · msgcmp, óýãêñéóç äýï .po áñ÷åßùí · msgunfmt, ìåôáôñïðÞ ôïõ .mo óå .po [1m5. ÅðéëïãÞ åëëçíéêþí ëÝîåùí êáé åêöñÜóåùí[0m Åßíáé óçìáíôéêü íá õðÜñ÷åé ìéá ïìïéïãÝíåéá óôï áðïôÝëåóìá ôùí ìåôáöñÜóåùí. Ãéá áõôü ôï ëüãï, ×ñÞóç üñùí ðïõ ðñïôåßíïõí Ýãêõñåò ðçãÝò, üðùò ÅËÏÔ, ÅÐÕ, ìåôáöñáóìÝíá âéâëßá ðëçñïöïñéêÞò óôá åëëçíéêÜ (ð.÷. ËåéôïõñãéêÜ óõóôÞìáôá ôïõ A.S.Tanenbaum) êáé ðñïçãïýìåíåò ìåôáöñÜóåéò. [1m5.1. Ðùò èá ìðïñïýóå íá ìåôáöñáóôåß ôï ð.÷. "Broken pipe"; "ÓðáóìÝíç[0m [1móùëÞíá";[0m Ìå Ýîõðíç åðéëïãÞ ôùí üñùí, ìðïñïýìå íá ëýóïõìå ôÝôïéá ðñïâëÞìáôá. Ç ÅëëçíéêÞ ãëþóóá åßíáé ãíùóôü üôé åßíáé áñêåôÜ ðëïýóéá. ¸íáò êáëýôåñïò üñïò ãéá ôï ðáñáðÜíù ðáñÜäåéãìá èá Þôáí "Äéáêïðåßóá óùëÞíùóç". [1m5.2. LEXIS[0m Ôï LEXIS <http://server.hellug.gr/lexis/> åßíáé Ýíá ëåîéêü ìå åëëçíéêÝò ìåôáöñÜóåéò áããëéêþí åííïéþí ðïõ ÷ñçóéìïðïéïýíôáé óôç ÐëçñïöïñéêÞ. [1m5.3. ÅëëçíéêÞ âéâëéïãñáößá[0m · ÁóöÜëåéá óôéò Ôå÷íïëïãßåò Ðëçñïöïñéþí & Åðéêïéíùíéþí - ÅííïéïëïãéêÞ Èåìåëßùóç (Åêäüóåéò ÍÝùí Ôå÷íïëïãéþí) · ËåéôïõñãéêÜ ÓõóôÞìáôá É (ìåôÜöñáóç ôïõ âéâëßïõ ôïõ Á.Tannembaum áðü ôï Å.Ê.Ð.Á.;)(ðñïò åîáêñßâùóç) · Å.Ð.Õ.(ðñïò óõìðëÞñùóç) [1m6. ÏñãÜíùóç ìåôáöñÜóåùí[0m [1m6.1. Ðñïóüíôá ìåôáöñáóôþí[0m Ôá Üôïìá ðïõ ôïõò åíäéáöÝñåé ç ìåôÜöñáóç ðñÝðåé íá Ý÷ïõí · åõ÷Ýñéá óôçí åëëçíéêÞ ãëþóóá · êáëÞ ãíþóç üñùí ôçò ðëçñïöïñéêÞò · åìðåéñßá ìå ôï ëïãéóìéêü ðñïò ìåôÜöñáóç Ãßíåôáé áíÜëçøç ôçò âáóéêÞò ìåôÜöñáóçò ôïõ ðñïãñÜììáôïò êáé Ýíá äåýôåñï Üôïìï áó÷ïëåßôáé ìå ôç äéáäéêáóßá ôçò áíáèåþñçóçò (reviewing). Èåùñïýìå ôç äéáäéêáóßá ôçò áíáèåþñçóçò óçìáíôéêÞ ãéá ôçí õøçëÞ ðïéüôçôá ôçò ìåôÜöñáóçò. [1m6.2. ÁíÜëçøç ìåôáöñÜóåùí[0m Ìüëéò åðéëÝîåôå ôï ðáêÝôï ðïõ èÝëåôå íá ìåôáöñÜóåôå, åðéêïéíùíåßôå ìå ôïí ôñÝ÷ïíôá õðåýèõíï ôùí ìåôáöñÜóåùí êáé óáò áðïäßäåôå ï áíáèåùñçôÞò ôçò ìåôÜöñáóçò. Áöïý ïëïêëçñþóåôå ôç ìåôÜöñáóç, ï áíáèåùñçôÞò ôçí åëÝã÷åé êáé óáò óôÝëíåé ðßóù ó÷üëéá êáé ðñïôÜóåéò ãéá áëëáãÞ. ÂÜóç ôùí óôïé÷åßùí áõôþí, ðñïêýðôåé ìéá ôåëéêÞ Ýêäïóç ç ïðïßá áðïóôÝëëåôå ðñïò óõìðåñßëçøç óôï ðáêÝôï ëïãéóìéêïý. Ãéá ôéò ìåëëïíôéêÝò åêäüóåéò ôïõ ðáêÝôïõ ìðïñåßôå íá óôÝëíåôå êáôåõèåßáí ôéò áíáíåùìÝíåò ìåôáöñÜóåéò. [1m6.3. Ïäçãßåò ìåôÜöñáóçò[0m Ï ìåôáöñáóôÞò ðñÝðåé íá ìåôáöñÜóåé ôá ìçíýìáôá ðïõ âñßóêïíôáé óå Ýíá áñ÷åßï ìå üíïìá [1mpo/[22mðñüãñáììá[1m.pot [22móôï ðáêÝôï ôïõ ðñïãñÜììáôïò. Ôï óõãêåêñéìÝíï áñ÷åßï Ý÷åé ôç ìïñöÞ msgid "Connecting to %s:%hu... " msgstr "" Oðüôå ðñïóèÝôïõìå óôï ðåäßï msgstr ôçí åëëçíéêÞ ìåôÜöñáóç, äçëáäÞ: · msgid "Connecting to %s:%hu... " · msgstr "[1mÓýíäåóç ìå %s:%hu... [22m" Ðåñéóóüôåñåò ïäçãßåò ìðïñåßôå íá âñåßôå óôï GNU Translation Project <http://www.iro.umontreal.ca/contrib/po> [1m6.4. ÍïìéêÝò ëåðôïìÝñåéåò[0m Óôçí ðåñßðôùóç ðïõ ìåôáöñÜæåôå Ýíá ðñüãñáììá ðïõ áíÞêåé óôá Åðßóçìá GNU ÐñïãñÜììáôá, ðñÝðåé íá áðïêõññýîåôå üëá ôá äéêáéþìáôá åêìåôÜëëåõóçò. Áõôü ãßíåôáé ìå ôçí áðïóôïëÞ ôïõ ëåãüìåíïõ DISCLAIMER <http://www.iro.umontreal.ca/contrib/po/doc/>. Ãéá ðåñéóóüôåñåò ðëçñïöïñßåò, åðéêïéíùíÞóôå ìå ôoí õðåýèõíï ôùí ìåôáöñÜóåùí ãéá ðåñéóóüôåñåò ðëçñïöïñßåò. Äåßôå ``Õðåýèõíïò ìåôáöñÜóåùí'' Ôá Üôïìá ôçò åëëçíéêÞò ìåôáöñáóôéêÞò ïìÜäáò, ôá ïðïßá Ý÷ïõí åêôåëÝóåé ôçí ðñïçãïýìåíç äéáäéêáóßá åßíáé · ×ñÞóôïò Áíáóôáóßïõ <mailto:chanas@cs.teiath.gr> · Íßêïò Ìáõñïãéáííüðïõëïò <mailto:nmav@i-net.paiko.gr> · ÊïóìÜò ÌðåíÝêïò <mailto:kosmega@teiath.gr> · Óßìïò ÎåíéôÝëëçò <mailto:S.Xenitellis@rhbnc.ac.uk> · ÃéÜííçò Óðáíüò <mailto:yspanos@hotmail.com> [1m6.5. Ðïéïé åßíáé ïé âáóéêïß ëüãïé ìåôÜöñáóçò ôùí ìçíõìÜôùí óôá[0m [1måëëçíéêÜ;[0m 1. Ï åîåëëçíéóìüò åíéó÷ýåé ôá åðé÷åéñÞìáôá ãéá ÷ñÞóç ôïõ Linux óôç äåõôåñïâÜèìéá êáé ôñéôïâÜèìéá åêðáßäåõóç. 2. Ïé íåþôåñåò äéáíïìÝò ôïõ Linux èá ðåñéÝ÷ïõí åî ïñéóìïý ôá åëëçíéêÜ ìçíýìáôá êáé èá õðïóôçñßæïõí åí ãÝíåé ôá åëëçíéêÜ. 3. Êáèéåñþíïíôáé íôå öÜêôï ïé åëëçíéêïß üñïé óôç ðëçñïöïñéêÞ. 4. Åíéó÷ýïíôáé ïé äéÜöïñïé êëþíïé ôïõ Unix ðïõ Ý÷ïõí âáóéêÞ õðïóôÞñéîç Åëëçíéêþí üðùò Solaris. 5. Ï åîåëëçíéóìüò åßíáé êÜôé ðïõ ðñÝðåé íá ãßíåé ãéá íá åßíáé ðëÞñåò ôï Linux. Ãéá üóïõò åßíáé áñíçôéêÜ äéáêåßìåíïé, óêåöôåßôå üôé åßíáé óáí íá äïõëåýåôå óå Ýíá ïßêï ëïãéóìéêïý (software house) êáé êáé íá äéáèÝôåôå ôï ðñüãñáììá ÷ùñßò íá âÜëåôå áñ÷åßá âïÞèåéáò äéüôé êáíåßò äåí ôá äéáâÜæåé. 6. Ãéá íá ÷ñçóéìïðïéçèåß ôï Linux óôçí åêðáßäåõóç, åßíáé óçìáíôéêü ðñïóüí íá åßíáé åîåëëçíéóìÝíï. Êáé áõôü, åßôå ãéá ôïõò äéáãùíéóìïýò ðëçñïöïñéêÞò, åßôå ãéá ôïõò ìáèçôÝò ìå äõóêïëßá óôá áããëéêÜ. [1m7. ÔñÝ÷ïõóá êáôÜóôáóç ôùí ìåôáöñÜóåùí[0m · Åðßóçìá GNU ðñïãñÜììáôá 1. enscript, ìåôÜöñáóç Ìáíþëçò ËïõñÜêçò <mailto:lourakis@csd.uch.gr>, áíáèåþñçóç Óßìïò ÎåíéôÝëëçò <mailto:S.Xenitellis@rhbnc.ac.uk> 2. fileutils, ìåôÜöñáóç Óßìïò ÎåíéôÝëëçò <mailto:S.Xenitellis@rhbnc.ac.uk>, áíáèåþñçóç [4mêåíü[0m 3. gettext, ìåôÜöñáóç Óßìïò ÎåíéôÝëëçò <mailto:S.Xenitellis@rhbnc.ac.uk>, áíáèåþñçóç [4mêåíü[0m 4. grep, ìåôÜöñáóç Óßìïò ÎåíéôÝëëçò <mailto:S.Xenitellis@rhbnc.ac.uk>, áíáèåþñçóç [4mêåíü[0m 5. hello, ìåôÜöñáóç Óßìïò ÎåíéôÝëëçò <mailto:S.Xenitellis@rhbnc.ac.uk>, áíáèåþñçóç [4mêåíü[0m 6. libc, ìåôÜöñáóç Íßêïò Ìáõñïãéáííüðïõëïò <mailto:nmav@hellug.gr>, áíáèåþñçóç Óßìïò ÎåíéôÝëëçò <mailto:S.Xenitellis@rhbnc.ac.uk> 7. m4, ìåôÜöñáóç Óßìïò ÎåíéôÝëëçò <mailto:S.Xenitellis@rhbnc.ac.uk>, áíáèåþñçóç [4mêåíü[0m 8. recode, ìåôÜöñáóç Óßìïò ÎåíéôÝëëçò <mailto:S.Xenitellis@rhbnc.ac.uk>, áíáèåþñçóç [4mêåíü[0m 9. sharutils, ìåôÜöñáóç Óßìïò ÎåíéôÝëëçò <mailto:S.Xenitellis@rhbnc.ac.uk>, áíáèåþñçóç [4mêåíü[0m 10. sh-utils, ìåôÜöñáóç Íßêïò Ìáõñïãéáííüðïõëïò <mailto:nmav@hellug.gr>, áíáèåþñçóç [4mêåíü[0m 11. sed, ìåôÜöñáóç Óßìïò ÎåíéôÝëëçò <mailto:S.Xenitellis@rhbnc.ac.uk>, áíáèåþñçóç [4mêåíü[0m 12. textutils, ìåôÜöñáóç Óßìïò ÎåíéôÝëëçò <mailto:S.Xenitellis@rhbnc.ac.uk>, áíáèåþñçóç [4mêåíü[0m 13. wget, ìåôÜöñáóç Óßìïò ÎåíéôÝëëçò <mailto:S.Xenitellis@rhbnc.ac.uk>, áíáèåþñçóç [4mêåíü[0m Ðåñéóóüôåñåò ðëçñïöïñßåò Ðßíáêáò ìåôáöñÜóåùí #1 <http://www.iro.umontreal.ca/contrib/po/doc/matrix.texi>, Ðßíáêáò ìåôáöñÜóåùí #2 <http://www.iro.umontreal.ca/contrib/po/trans/el/> · Áíåðßóçìá GNU ðñïãñÜììáôá 1. mutt, ìåôÜöñáóç ÖÜíçò ÄïêéáíÜêçò <mailto:ph04169@cc.uoi.gr>, áíáèåþñçóç Óßìïò ÎåíéôÝëëçò <mailto:S.Xenitellis@rhbnc.ac.uk> 2. shadow, ìåôÜöñáóç Íßêïò Ìáõñïãéáííüðïõëïò <mailto:nmav@hellug.gr>, áíáèåþñçóç [4mêåíü[0m 3. windowmaker, ìåôÜöñáóç Ðáðáãñçãïñßïõ Íéêüëáïò <mailto:papanikos@usa.net>, áíáèåþñçóç [4mêåíü[0m 4. lyx, ìåôÜöñáóç ÌåíÝëáïò ÌáãêëÞò <mailto:maglis@otenet.gr>, áíáèåþñçóç [4mêåíü[24m, ðëçñïöïñßåò ÅëëçíéêÞ Óåëßäá Lyx <http://users.otenet.gr/~maglis/lyx> · KDE 1. âáóéêÜ ìçíýìáôá KDE, ìåôÜöñáóç Èåüäùñïò ÓïëäÜôïò <mailto:theodore@eexi.gr>, áíáèåþñçóç [4mêåíü[0m Ðåñéóóüôåñåò ðëçñïöïñßåò Ðßíáêáò ìåôáöñÜóåùí KDE <http://www.kde.org/i18n.html> · Gnome Ðåñéóóüôåñåò ðëçñïöïñßåò Ðßíáêáò ìåôáöñÜóåùí Gnome <http://www.gnome.org/i18n/status.shtml> [1m8. Åêêñåìüôçôåò[0m [1m8.1. ËïéðÜ ðñïãñÜììáôá ðïõ ðåñéìÝíïõí åëëçíéêÞ ìåôÜöñáóç[0m 1. Ìçíýìáôá åãêáôÜóôáóçò RedHat, RedHat <http://www.redhat.com> 2. Ìçíýìáôá åãêáôÜóôáóçò SuSE, SuSE <http://www.suse.com> 3. Fortify, Fortify <http://www.fortify.net/localization.html>, ÷ñÞóç óõóôÞìáôïò äéáöïñåôéêïý áðü NLS 4. freetype, FreeType font rendering engine <http://www.freetype.org> 5. rpm, RPM, package manager <http://www.redhat.com> 6. Squid, Squid 2 Cache Proxy Server <http://squid.nlanr.net> 7. Console tools, Console-tools <http://www.multimania.com/ydirson/en/lct/l10n.html> [1m9. ÄéáèÝóéìïé áíáèåùñçôÝò[0m · ÌåíÝëáïò ÌáãëÞò <mailto:maglis@otenet.gr> · Íßêïò Ìáõñïãéáííüðïõëïò <mailto:nmav@i-net.paiko.gr> · Óßìïò ÎåíéôÝëëçò <mailto:S.Xenitellis@rhbnc.ac.uk> ¼ðïéïò åßíáé äéáèÝóéìïò íá óõíåéóöÝñåé ùò áíáèåùñçôÞò ìåôáöñÜóåùí, íá åðéêïéíùíÞóåé ìå ôïí ``õðåýèõíï ìåôáöñÜóåùí'' ãéá ôçí ðñïóèÞêç ôïõ/ôçò óôç ëßóôá. [1m10. ÅëëçíéêÝò ìåôáöñÜóåéò óôéò åêäüóåéò Linux[0m · RedHat Linux 5.2 1. WindowMaker · RedHat Linux 6.0 1. WindowMaker 2. fileutils 3. grep 4. KDE, Ýêäïóç 1.1 5. libc · OpenLinux 2.2 1. fileutils, Ýêäïóç 4.0-b6 2. KDE, Ýêäïóç 1.1 · SuSE Linux 6.2 (ðñïò óõìðëÞñùóç) [1m11. PO áñ÷åßá[0m 1. Åðßóçìá GNU ðñïãñÜììáôá Åðßóçìá GNU ðñïãñÜììáôá <http://www.iro.umontreal.ca/contrib/po/trans/el/> 2. Áíåðßóçìá GNU ðñïãñÜììáôá · Lyx, Lyx <http://users.otenet.gr/~maglis/lyx/elpo> · Mutt, mutt, international version <http://www.mutt.org> · Shadow suite, shadow-suite <http://linux.forthnet.gr/pub/linux/shadow> · WindowMaker, WindowMaker <http://www.windowmaker.org/ftp/pub/beta/srcs/WindowMaker-0.60.0.tar.gz> 3. KDE <http://www.kde.org/messages/el.messages> 4. Gnome [4mêåíü[0m [1m12. Åðéêïéíùíßá[0m [1m12.1. Ðïéïò åßíáé ï ôñÝ÷ïí õðåýèõíïò ôùí åëëçíéêþí ìåôáöñÜóåùí;[0m Õðåýèõíïò ãéá ôéò ìåôáöñÜóåéò ôùí Åðßóçìùí GNU ÐñïãñáììÜôùí óôçí ÅëëçíéêÞ ãëþóóá åßíáé ï Óßìïò ÎåíéôÝëëçò <mailto:S.Xenitellis@rhbnc.ac.uk> (S.Xenitellis@rhbnc.ac.uk). Ãéá ïôéäÞðïôå ðëçñïöïñßá, óôåßëôå e-mail. Ãéá ôá Áíåðßóçìá GNU ÐñïãñÜììáôá, óõíôïíéóôÞò åßíáé åêåßíïò ôùí Åðßóçìùí ÌåôáöñÜóåùí. Ãéá ôï ãñáöéêü ðåñéâÜëëïí KDE, õðåýèõíïò åßíáé ï Èåüäùñïò É. ÓïëäÜôïò <mailto:theodore@eexi.gr>. Ãéá ôï ãñáöéêü ðåñéâÜëëïí Gnome, óõíôïíéóôÞò åßíáé ï Óßìïò ÎåíéôÝëëçò <mailto:S.Xenitellis@rhbnc.ac.uk>. Ãéá ôï Gnome äåí õðÜñ÷ïõí ìÝ÷ñé áõôÞ ôç óôéãìÞ åëëçíéêÝò ìåôáöñÜóåéò. Ôï ëïãéóìéêü áõôü âñßóêåôáé óå áíÜðôõîç êáé ôá áíôßóôïé÷á áñ÷åßá ìçíõìÜôùí áëëÜæïõí áñêåôÜ óõ÷íÜ. Ðéóôåýïõìå üôé óôï Üìåóï ìÝëëïí ðñÝðåé íá îåêéíÞóåé ç ìåôÜöñáóç êáé óôçí ðåñéï÷Þ áõôÞ.