மென்பொருள் உலகில் பன்மொழியாக்கலும், தன்மொழியாக்கலும்
பத்ரி சேஷாத்ரி, 16 செப்டெம்பர் 2004
சமாச்சார்.காம்




நாம் கணினிகளில் பயன்படுத்தும் மென்பொருள்கள் யாவும் பெரும்பாலும் ஆங்கிலத்திலேதான் நம்முடன் பேசுகின்றன. சில நாடுகளில், குறிப்பாக சீனா, ஜப்பான், ஐரோப்பிய நாடுகளான பிரான்சு, ஜெர்மனி ஆகியவற்றில் மென்பொருள் நிறுவனங்கள் தத்தம் மொழிகளிலேயே சில மென்பொருள்களை உருவாக்கின.

கணினிப் பயனர்களிடையே ஆங்கிலம் அல்லாத பிறமொழி பேசுவோர் எண்ணிக்கை அதிகரிக்க அதிகரிக்க, பிறமொழிகளில் புதிதாக மென்பொருள்களை உருவாக்காது, ஏற்கனவே உருவாக்கியிருக்கும் மென்பொருள்களை பலமொழிகளிலும் பேசவைக்க வேண்டும் என்னும் கருத்தாக்கம் வலுப்பெற்றது.

இந்தக் கருத்தாக்கத்தைத் தொடர்ந்து, மென்பொருள்களை உருவாக்கும்போது ஒரு குறிப்பிட்ட தரத்தில், குறிப்பிட்ட வகையில் உருவாக்க வேண்டும் என்ற செயல்பாட்டு முறை வடிவமைக்கப்பட்டது. இதற்கு internationalization (i18n) என்று பெயர். அதென்ன i18n என்று இதற்குப் பெயர்? இந்த மென்பொருள் எழுதுபவர்களே சற்று வித்தியாசமானவர்கள் ('கிறுக்கு' பிடித்தவர்கள்!). "internationalization" என்னும் ஆங்கிலச் சொல்லில் முதல் எழுத்து 'i'க்கும் கடைசி எழுத்து 'n'க்கும் இடையே 18 எழுத்துகள் உள்ளன (எண்ணிப்பாருங்கள்). அதனால் internationalization என்பதை சுருக்கமாக i18n என்று அழைக்கிறார்கள்!

நாம் தமிழில் இதற்கு என்ன பெயர் கொடுக்கலாம்? மென்பொருளை மொழியின் பிடியிலிருந்து விலக்குவதுதான் internationalization. அதனால் சர்வதேசம், நாடு போன்ற கட்டமைப்புகளிலிருந்து விலகி, (இந்தியா என்னும் ஒரு நாட்டில் எக்கச்சக்க மொழிகள்...) மொழி என்னும் வகையில் பார்த்தால், ஒரு மென்பொருளை எம்மொழியும் சாராது அமைப்பதுதான் இது. மொழிச்சாரா மென்பொருளாக்கம் எனலாம். அல்லது பலமொழிகளும் மென்பொருளில் எந்த மாற்றமும் இல்லாது புழங்கலாம் என்பதால் பன்மொழியாக்கல் எனலாம். இப்பொழுதைக்கு பன்மொழியாக்கல் என்ற பெயரிலேயே குறிப்பிடுகிறேன்.

சரி, இங்கு என்னதான் நடக்கிறது? ஒரு மென்பொருள் கணினி மொழியில் எழுதப்படுகிறது. அந்த மொழியில் எழுதப்பட்டிருந்தாலும் ஒரு பயனுருடனான இடைமுகம் பயனருக்குத் தெரிந்த ஏதோ மொழியில்தான் இருக்க வேண்டும். பயனர் காணும் கட்டளைகள் (menu commands), மென்பொருள் பயனருக்கு விடுக்கும் எச்சரிக்கைகள் (warnings), தவறுணர்த்திகள் (error messages) ஆகிய அனைத்தும் பயனருக்குப் புரிந்த மொழியில் இருக்க வேண்டும். இதெல்லாம் காலம் காலமாக ஆங்கிலத்திலேயே இருந்து வந்தவை.

இந்தக் கட்டளைகள், எச்சரிக்கைகள், தவறுணர்த்திகளை ஆணைமூலத்தில் (code) நேரடியாகப் பொதிக்காமல், வெளியே எடுத்து வைப்பதுதான் பன்மொழியாக்கலின் முக்கியமான வேலை.

  1. மொழிமூலமான கட்டளைகள், எச்சரிக்கைகள், தவறுணர்த்திகளை (அவை எழுத்துகளாகவோ, படங்களாகவோ இருந்தால்) அவற்றை ஆணைமூலத்திலிருந்து வெளியேற்றி வைப்பது.

    print "Shall I delete this file?" என்னும் வரியை print "$delete_question" என்று மாற்றுதல். ஆங்கிலப் பயனரிடம் $delete_question = "Shall I delete this file?" என்றும் தமிழ்ப் பயனரிடம் $delete_question = "இந்தக் கோப்பை அழித்து விடலாமா?" என்றும் மென்பொருள் வினவ வேண்டும்.

  2. கோப்புகளின் எழுத்துக்குறியீடுகளை தேவையான முறைக்கு மாற்றுவது. ஆங்கிலம் மட்டுமே என்றால் கோப்புகளை ISO-8859-1 குறியீட்டில் வைத்திருக்கலாம். தமிழ் போன்ற பல்வேறு மொழிகளுக்கு யூனிகோட் தேவை. தமிழ் UTF-8 என்னும் முறையிலும், சில சீன, ஜப்பானிய வகை மொழிகளுக்கு UTF-16, UTF-32, அல்லது பிரத்யேகமான வேறு குறியீட்டு முறைகள் தேவை. மொழிக்குத் தகுந்தாற்போன்று மாற்றங்கள் தேவைப்படும். ஒன்றிலிருந்து மற்றொன்றுக்கு எப்படி மாற்றுவது என்பதும் மென்பொருளுக்குள் பொதிக்கப்பட வேண்டும்.
  3. ஒவ்வொரு மொழிக்கலாச்சாரத்தின்படியும் கால, நேரங்கள், காசு/பணம் ($, ரூ. ஆகியவை), எண்களைக் காட்ட வேண்டும். உதாரணத்துக்கு தமிழுக்கென மாதங்கள் (வருடங்கள் கூட, ஆனால் வருடங்களின் பெயர்களைப் பார்த்தால் அவை தமிழ் போலவே இல்லை, எல்லாம் சமஸ்கிருதம்), கிழமைகள், எண் குறியீடுகள் என பல உண்டு. தமிழ் எண்களை நாம் இன்று பரவலாகப் பயன்படுத்துவதில்லையென்றாலும், அதில் நாட்டமுடையவர்கள் வேண்டுமென்றால் பயன்படுத்திக் கொள்ளலாம். ஹிந்தி பேசும் மாநிலங்களில் இப்பொழுதும் ஹிந்தி எண் குறியீடுகள்தான். எனவே எண்கள், தேதி, கிழமை, மாதம், பணக்குறியீடு ஆகியவை ஒவ்வொரு மொழி, நாடு, கலாச்சாரப்படி மாற்றப்படுதல்.
  4. மொழிக்கேற்றார் போல அகரவரிசைப்படுத்தல் (sorting). ஆங்கிலமாக இருந்தால் நூறு பள்ளி மாணவர்களின் பெயர்களைக் கொடுத்து அவர்கள் பெயரை 'alphabetical order'இல் கொடு என ஒரு மென்பொருளைக் கேட்டால் எப்படி வருமோ, அதற்கும், தமிழில் அதே பெயர்களைக் கொடுத்து அகரவரிசைப்படுத்தச் சொன்னால் வருவதற்கும் வித்தியாசம் உண்டல்லவா? இந்த அகரவரிசைப்படுத்தும் தருக்கத்தை மென்பொருளின் ஆணைமூலத்துக்குள் பொதித்து வைக்காமல் வெளியேற்றுவது.

இப்படி ஆணைமூலங்கள் உருவாக்கப்படுதலே பன்மொழியாக்கல் - i18n ஆகும்.

சரி, பன்மொழியாக்கப்பட்ட ஆணைமூலத்தை வைத்துக்கொண்டு தமிழுக்கு என்ன நன்மை? அது அடுத்து நடப்பதால் வரும். அதற்கு localization என்று பெயர். நீங்கள் இப்பொழுது சரியாகக் கணித்திருக்க வேண்டுமே? அதற்குக் குறுக்கம் l10n ஆகும். இதற்கு தன்மொழிப்படுத்துதல் என்று பெயர் வைக்கலாம் என நினைக்கிறேன். தன்மொழி தமிழாகும்போது நடப்பது தமிழ்ப்படுத்துதல் அல்லது தமிழாக்குதல்.

பன்மொழியாக்கப்பட்ட ஓர் ஆணைமூலத்தை தன்மொழிக்குக் கொண்டுசெல்ல, அந்த ஆணைமூலத்தின் ஒவ்வொரு மூலமொழிச் சொல், சொற்றொடர் - கட்டளை, தவறுணர்த்தி, எச்சரிக்கை, ஆகிய அனைத்திற்கும் தன்மொழியில் அதற்கான சம ஆக்கத்தை முன்வைக்க வேண்டும். எடுத்துக்காட்டாக File = கோப்பு, Yes = ஆம், No = இல்லை/வேண்டாம், Save - சேமி, Delete - அழி .... ஆகியவை.

தொடர்ந்து தன்மொழியில் அகரவரிசைப்படுத்துதல் எப்படி இருக்க வேண்டும் என்பதையும் முன்வைக்க வேண்டும். அண்மையில் தமிழக அரசு யூனிகோடு தமிழில் அகரவரிசைப்படுத்துதல் எப்படி இருக்க வேண்டும் என்ற தன் கருத்தை முன்வைத்துள்ளது.

ஆங்கிலச் சொற்களைத் தமிழாக்கி, பன்மொழியாக்கிய மென்பொருள்களுக்கு ஏதுவாகக் கொடுக்கவென்றே பல மென்பொருள்கள் கிடைக்கின்றன. எடுத்துக்காட்டாக நான் பயன்படுத்தும் poedit என்னும் மென்பொருள்.

இப்படி சரியான தன்மொழிச் சொற்கள், தொடர்கள், எண்கள், கால நிர்ணயம், அகரவரிசையாக்கல் ஆகியவை கிடைத்ததும், எந்த மொழியைப் பயனர் தேர்ந்தெடுக்கிறாரோ, அதற்கான வரையறைகளை இயங்கும் நேரத்தில் மென்பொருள் எடுத்துக்கொண்டு, அந்த மொழியிலேயே பயனரிடம் பேசும்.

சரி, இதுவரை தமிழ் பேசும் உலகிற்கு மேற்படி பன்மொழி, தன்மொழியாக்கத்தால் ஏதேனும் பயன் கிடைத்துள்ளதா?

க்னூ/லினக்ஸ் என்னும் திறந்த ஆணைமூல இயங்குதளப் பொதிகள் சிலவற்றைத் தமிழாக்கும் முயற்சிகள் நடந்து வருகின்றன. மொசில்லா என்னும் இணைய உலாவி தமிழா என்னும் குழுவினரால் தமிழாக்கப்பட்டுள்ளது. அதே குழுவினர் ஓப்பன் ஆஃபீஸ் என்னும் அலுவல் செயலியைத் தமிழாக்கியுள்ளனர். ழ கணினி என்னும் குழு முழுவதுமாக ஒரு கணினி இடைமுகத்தைத் தமிழ்ப்படுத்த வேண்டும் என்ற முயற்சியில் KDE எனப்படும் மேசைத்தளத்தைத் தமிழாக்கியுள்ளனர். இப்பொழுது ரெட் ஹாட் பெடோரா லினக்சு பொதியைத் தமிழாக்கும் வேலையில் ஈடுபட்டுள்ளனர்.

தமிலினிக்ஸ் என்னும் யாஹூ குழுமத்தில் பங்குபெறும் பலர் - துரையப்பா வசீகரன், ரமணன் செல்வரத்னம், தினேஷ் நடராஜா ஆகியோர் - KDE, GNOME போன்ற லினக்ஸ்/யூனிக்ஸ் இயங்கு தளம் சார்ந்த மேசையமைப்புகளுக்குத் தேவையான மென்பொருள்களின் தமிழாக்கத்திற்கு உதவுகின்றனர்.

வலைப்பதிவுகள் செய்ய ஏற்ற, ஆனால் அதற்கும் மேலாக ஒரு முழு இணையத்தளத்தையுமே நிர்வகிக்கக் கூடிய நியூக்ளியஸ் என்னும் மென்பொருள் காசி ஆறுமுகம் மூலம் முழுவதாகத் தமிழாக்கப்பட்டுள்ளது.

கனடாவிலிருந்து வெங்கட் தமிழ் லினக்சு இயங்கு தளத்துக்காக நடத்தி வந்த ஓர் இணையத்தளம் (http://www.tamillinux.org/) சில நாள்களாக வேலை செய்யவில்லை. அங்கு மேலும் பல முயற்சிகள் நடந்து கொண்டிருந்தன. அதன் தற்போதைய நிலை என்னவென்று தெரியவில்லை.

வர்த்தக மென்பொருள்களில், முக்கியமாக மைக்ரோசாப்ட் தன் இயங்குதளத்தையும், அலுவல் செயலியையும் தமிழாக்க முயல்கின்றது என அறிகிறோம். மாலன் இந்த முயற்சியை ஒருங்கிணைக்கிறார்.

இன்று எந்த கணினி/தமிழ் ஆர்வலரும் கையில் நேரமும், மனதும் இருந்தால் தனக்குப் பிடித்தமான திறந்த ஆணைமூல மென்பொருளைத் தேடியெடுத்து அது ஏற்கனவே பன்மொழியாக்கப்பட்டிருந்தால் உடனே அதிலுள்ள சொற்களைத் தமிழ்ப்படுத்துவதன் மூலம் தமிழ் பேசும் மக்களுக்கு மற்றுமொரு மென்பொருளைக் கொடையாகக் கொடுக்கலாம்.

இதுபற்றி மேற்கொண்டு தகவல் பெற விரும்புவோர் என்னை மின்னஞ்சலில் தொடர்பு கொள்ளலாம்.


எண்ணங்கள் வலைப்பதிவு