Can you summarize the following document?
        
  程式原始碼需要進行修改以響應GNU gettext請求。多數程式語言均已通過字元封裝的方式實現了對其的支援。為了減少輸入量和程式碼量,此功能通常以標記別名“_”的形式使用,所以例如以下C語言程式碼:  應當寫作: gettext使用其中的字串尋找對應的其他語言翻譯,若沒有可用翻譯則返回原始內容。  除C語言外, GNU gettext還支援C++,Objective-C,Pascal/Object Pascal,sh指令碼,bash指令碼,Python,GNU CLISP,Emacs Lisp,librep,GNU Smalltalk,Java,GNU awk,wxWidgets(通過wxLocale類),YCP(YaST2語言),Tcl,Perl,PHP,Pike,Ruby以及R。用法均與在C語言上類似。  xgettext程式從原始碼生成.pot檔案,作為原始碼中需翻譯內容的模板。一個典型的.pot檔案條目應當是這樣的: 註釋被直接放置在字串前,用於幫助翻譯者理解待翻譯內容:  本例中的註釋是以 ///開頭的,其作用是用於xgettext程式生成.pot模板檔案。  在.pot檔案中的註釋應為以下形式:

  翻譯者需要工作的物件是.po檔案,它是由msginit程式從.pot模板檔案生成的。例如使用msginit初始化法語翻譯檔案時,我們執行以下命令:  這將會使用指定的name.pot在當前目錄建立一個fr.po,其中的一個條目應該是以下形式的:  翻譯者需要手工或使用類似Poedit、gtranslator、OmegaT或Emacs等工具的相應模式編輯該檔案。翻譯完成後,檔案應為如下的樣子:  最後.po檔案需要使用msgfmt編譯為.mo檔案以用作釋出。

  使用Unix型別作業系統的使用者只需設定環境變數中的codice_1,程式將自動從相應的codice_2檔案中讀取語言資訊。
gettext是GNU國際化與本地化(i18n)函式庫。它常被用於編寫多語言程式。