Skip to content

Instantly share code, notes, and snippets.

@Raviyanto
Last active December 16, 2015 04:49
Show Gist options
  • Save Raviyanto/5379926 to your computer and use it in GitHub Desktop.
Save Raviyanto/5379926 to your computer and use it in GitHub Desktop.

Sebuah tutorial tentang Dukungan Bahasa Asli menggunakan GNU gettext

G. Mohanty

Revisi 0.3: 24 Juli 2004

Abstrak

Penggunaan GNU gettext utilitas untuk melaksanakan dukungan untuk bahasa asli yang dijelaskan di sini. Padahal, bahasa harus didukung dianggap Oriya, metode yang berlaku pada umumnya. Demikian juga, sementara Linux digunakan sebagai platform di sini, sistem apapun yang menggunakan GNU gettext harus bekerja dengan cara yang sama.

Kami pergi melalui deskripsi langkah-demi-langkah cara membuat pesan pada layar dari program mainan untuk muncul di Oriya bukan bahasa Inggris, mulai dari pemrograman dan berakhir dengan sudut pandang pengguna. Beberapa diskusi juga terbuat dari cara untuk pergi tentang tugas penerjemahan.

Pengantar

Saat ini, kedua perangkat lunak komputer komersial dan bebas biasanya ditulis dan didokumentasikan dalam bahasa Inggris. Hingga saat ini, banyak upaya dikeluarkan untuk memungkinkan mereka untuk berinteraksi dengan pengguna dalam bahasa lain selain bahasa Inggris, sehingga meninggalkan dunia berbahasa non-Inggris menguntungkan. Namun, itu berubah dengan rilis dari GNU gettext utilitas, dan program GNU saat ini sebagian besar ditulis dalam kerangka kerja yang memungkinkan terjemahan mudah dari pesan program untuk bahasa lain selain bahasa Inggris. Asalkan terjemahan yang tersedia, bahasa yang digunakan oleh program untuk berinteraksi dengan user dapat diatur pada saat menjalankannya. Gettext berhasil mencapai tugas ini tampaknya ajaib dengan cara yang menyederhanakan pekerjaan baik programmer dan penerjemah, dan, yang lebih penting, memungkinkan mereka untuk bekerja secara independen satu sama lain.

Artikel ini menjelaskan cara untuk mendukung bahasa asli di bawah sistem yang menggunakan GNU gettext utilitas. Sementara itu harus berlaku untuk versi lain gettext, yang benar-benar digunakan untuk contoh di sini adalah versi 0.12.1. Sistem lain, yang disebut catgets, dijelaskan dalam X / Open Guide Portabilitas, juga digunakan, tapi kami tidak akan membicarakannya di sini.

Sebuah contoh sederhana Contoh pertama kami menggunakan gettext akan menjadi baik tua Hello World program, yang fungsi utamanya adalah untuk mencetak kalimat `` Hello, world!'' Ke terminal. Versi internasionalisasi program ini bisa disimpan dalam hello.c sebagai:

 1 # include <libintl.h>
 2 # include <locale.h>
 3 # include
 4 # include
 5 int main (void)
 6 {
 7 setlocale (LC_ALL, "");
 8 bindtextdomain ("halo", "/ usr / share / lokal");
 9 TEXTDOMAIN ("halo");
 10 printf (gettext ("Hello, world \ n"));
 11 exit (0);
 12}

Tentu saja, program nyata akan memeriksa kembali nilai-nilai dari fungsi dan mencoba untuk menangani kesalahan, tapi kami telah menghilangkan bagian dari kode untuk kejelasan. Kompilasi seperti biasa dengan gcc-o halo hello.c. Program ini harus dikaitkan dengan libintl perpustakaan GNU, tapi karena ini adalah bagian dari GNU C Library, ini dilakukan secara otomatis untuk Anda pada Linux, dan sistem lain yang menggunakan glibc. Sudut pandang programmer Seperti yang diharapkan, ketika dieksekusi hello dijalankan di bawah lokal default (biasanya lokal C) mencetak `` Hello, world!'' Di terminal. Selain beberapa pekerjaan setup awal, beban tambahan hanya dihadapi oleh programmer untuk mengganti string yang akan dicetak dengan gettext (string), yaitu, bukan lulus string sebagai argumen ke fungsi gettext. Untuk orang-orang malas seperti saya sendiri, jumlah mengetik tambahan dapat dikurangi lebih jauh dengan makro CPP, misalnya, menempatkan ini pada awal file kode sumber,

# Define _ (STRING) gettext (STRING)

dan kemudian menggunakan _(string) bukan gettext(string).

Mari kita membedah program baris demi baris.

  1. locale.h mendefinisikan struktur data C digunakan untuk menyimpan informasi lokal, dan dibutuhkan oleh setlocale fungsi. libintl.h prototipe GNU teks utilitas fungsi, dan dibutuhkan di sini oleh bindtextdomain, gettext, dan TEXTDOMAIN.
  2. Panggilan untuk setlocale () on line 7, dengan LC_ALL sebagai argumen pertama dan string kosong sebagai yang kedua, inisialisasi lokal saat ini seluruh program sesuai variabel lingkungan yang ditetapkan oleh pengguna. Dengan kata lain, lokal program diinisialisasi untuk menyesuaikan bahwa pengguna. Untuk rinciannya lihat `` man setlocale.''
  3. The bindtextdomain fungsi pada baris 8 set direktori dasar untuk pesan katalog untuk domain pesan yang diberikan. Sebuah domain pesan adalah seperangkat pesan diterjemahkan, dengan setiap paket perangkat lunak biasanya memiliki domain sendiri. Di sini, kita telah menggunakan halo'' sebagai nama domain pesan untuk program mainan kami. Sebagai argumen kedua, / usr / share / lokal, adalah lokasi sistem default untuk pesan katalog, apa yang kita katakan di sini adalah bahwa kita akan menempatkan katalog pesan di direktori sistem default. Dengan demikian, kita bisa ditiadakan dengan panggilan untuk bindtextdomain sini, dan fungsi ini berguna hanya jika pesan katalog dipasang di tempat yang non-standar, misalnya, distribusi paket perangkat lunak memiliki katalog di bawah po / direktori di bawah sendiri direktori utama. Lihat man bindtextdomain'' untuk rincian.
  4. The TEXTDOMAIN panggilan pada jalur 9 menetapkan domain pesan dari program saat ini untuk halo,'' yaitu, nama yang kita gunakan untuk program contoh kita. Pria TEXTDOMAIN'' akan memberikan rincian penggunaan untuk fungsi.
  5. Akhirnya, pada baris 10, kita telah menggantikan:
printf ("Hello, world \ n");

dengan

printf (gettext ("Hello, world \ n"));
Jika Anda tidak terbiasa dengan C, \ N pada akhir string menghasilkan baris baru pada akhir output. Modifikasi sederhana untuk semua string diterjemahkan penerjemah memungkinkan untuk bekerja secara independen dari programmer. Gettextize memudahkan tugas programmer dalam mengadaptasi sebuah paket untuk menggunakan GNU gettext untuk pertama kalinya, atau meng-upgrade ke versi yang lebih baru gettext. 

Ekstrak string diterjemahkan Sekarang, saatnya untuk mengekstrak string yang akan diterjemahkan dari kode sumber program. Hal ini dicapai dengan xgettext, yang dapat dipanggil sebagai berikut:

xgettext-d hello-s-o hello.pot hello.c 

Ini memproses kode sumber di hello.c, menyimpan output di hello.pot (argumen ke opsi-o). Opsi-s mengatakan xgettext untuk menghasilkan output diurutkan. Pesan domain untuk program ini harus ditentukan sebagai argumen ke opsi-d, dan harus sesuai dengan domain yang ditentukan dalam panggilan untuk TEXTDOMAIN (on line 9 dari sumber program). Rincian lain tentang cara menggunakan gettext dapat ditemukan dari `` pria gettext.''

Sebuah panci (object Template portabel) berkas. Digunakan sebagai dasar untuk menerjemahkan pesan program ke bahasa apapun. Untuk memulai terjemahan, satu hanya dapat menyalin hello.pot ke oriya.po (ini menjaga file template untuk terjemahan kemudian ke bahasa yang berbeda). Namun, cara yang lebih disukai untuk melakukan ini adalah dengan menggunakan program msginit, yang mengurus benar menyiapkan beberapa nilai default,

msginit-l-o or_IN oriya.po-i hello.pot 

Di sini, opsi-l mendefinisikan lokal (locale Oriya harus telah diinstal pada sistem Anda), dan-i dan-o opsi menentukan file input dan output, masing-masing. Jika hanya ada file pot. Tunggal dalam direktori, maka akan digunakan sebagai input file, dan opsi-i dapat dihilangkan. Bagi saya, file oriya.po diproduksi oleh msginit akan terlihat seperti:

Oriya terjemahan untuk paket PAKET. # Copyright (C) 2004 PAKET'S PEMEGANG HAK CIPTA # Berkas ini didistribusikan di bawah lisensi yang sama seperti paket PAKET. # Gora Mohanty gora_mohanty@yahoo.co.in 2004. # Msgstr "" msgstr "" "Proyek-Id-Version: PAKET VERSION \ n" "Laporan-msgstr-Bugs-To: \ n" "POT-Penciptaan-Tanggal: 2004/06/22 02:22 +0530 \ n "" PO-Revisi-Tanggal: 2004/06/22 02:38 +0530 \ n "" Last-Translator: Gora Mohanty gora_mohanty@yahoo.co.in \ n "" Bahasa-Team: Oriya \ n "" MIME-Version: 1.0 \ n "" Content-Type: text / plain; charset = UTF-8 \ n "" Content-Transfer-Encoding: 8bit \ n "#: hello.c: 10 msgid" Halo, dunia ! n "msgstr" "

msginit diminta untuk alamat email saya, dan mungkin memperoleh nama asli saya dari file password sistem. Hal ini juga diisi nilai-nilai seperti tanggal revisi, bahasa, set karakter, mungkin menggunakan informasi dari lokal or_IN.

Hal ini penting untuk menghormati format entri dalam po (objek portabel) berkas.. Setiap entri memiliki struktur sebagai berikut:

   PUTIH-SPACE
   # TRANSLATOR-KOMENTAR
   #.  AUTOMATIC-KOMENTAR
   #: REFERENSI ...
   #, BENDERA ...
   msgstr belum diterjemahkan-STRING
   msgstr Diterjemahkan-STRING

mana, awal white-space (spasi, tab, baris baru, ...), dan semua komentar mungkin atau mungkin tidak ada untuk entri tertentu. Baris komentar dimulai dengan '#' sebagai karakter pertama, dan ada dua macam: (i) secara manual menambahkan komentar penerjemah, yang memiliki beberapa white-space segera setelah '#', dan (ii) komentar otomatis ditambahkan dan dipelihara oleh alat gettext, dengan karakter non-white-space setelah '#'. The msgstr baris berisi diterjemahkan (bahasa Inggris) tali, jika ada satu untuk itu PO entri file, dan garis msgstr adalah di mana string diterjemahkan akan dimasukkan. Lebih lanjut tentang ini nanti. Untuk rincian tentang format file PO melihat gettext :: Dasar :: PO File :: di Emacs Info-browser (lihat Appdx. A untuk pengenalan menggunakan info-browser di Emacs). Membuat terjemahan File oriya.po kemudian dapat diedit untuk menambahkan string Oriya diterjemahkan. Sementara editing dapat dilakukan dalam editor apapun jika seseorang berhati-hati untuk mengikuti format file PO, ada beberapa editor yang memudahkan tugas mengedit file PO, di antaranya adalah po-mode di Emacs, kbabel, gtranslator, poedit, dll Appdx.. B menjelaskan fitur dari beberapa editor ini.

Hal pertama yang harus dilakukan adalah mengisi komentar di awal dan masukan header, bagian-bagian yang telah diisi oleh msginit. Garis-garis di masukan header cukup banyak jelas, dan rincian dapat ditemukan di gettext tersebut :: Membuat header :: Masuk :: Info simpul. Setelah itu, pekerjaan yang tersisa terdiri dari mengetik teks Oriya yang adalah untuk melayani sebagai terjemahan untuk string bahasa Inggris yang sesuai. Untuk garis msgstr di setiap entri yang tersisa, tambahkan diterjemahkan Oriya teks antara tanda kutip ganda, terjemahan sesuai dengan frase Bahasa Inggris dalam string msgid untuk entri. Misalnya, untuk frase Halo dunia! \ N'' di oriya.po, kita bisa masuk ନମସ୍କାର \ N''. Final File oriya.po akan terlihat seperti:

   # Oriya terjemahan untuk paket misalnya halo.
   # Copyright (C) 2004 Gora Mohanty
   # File ini didistribusikan di bawah lisensi yang sama seperti paket contoh halo.
   # Gora Mohanty <gora_mohanty@yahoo.co.in> 2004.
   #
   msgstr ""
   msgstr ""
   "Proyek-Id-Version: oriya \ n"
   "Laporan-msgstr-Bugs-To: \ n"
   "POT-Penciptaan-Tanggal: 2004/06/22 02:22 +0530 \ n"
   "PO-Revisi-Tanggal: 2004/06/22 10:54 +0530 \ n"
   "Last-Translator: Gora Mohanty <gora_mohanty@yahoo.co.in> \ n"
   "Bahasa-Team: Oriya\n"
   "MIME-Version: 1.0\n"
   "Content-Type: text/plain; charset = UTF-8\n"
   "Content-Transfer-Encoding: 8bit\n"
   "X-Generator: KBabel 1.3\n"

   #: Hello.c: 10
   msgstr "Halo, dunia!\n"
   msgstr "\n"

Untuk mengedit file PO, saya telah menemukan editor kbabel cocok untuk saya yang terbaik. Satu-satunya masalah adalah bahwa sementara teks Oriya dapat langsung dimasukkan ke kbabel menggunakan XKB Oriya Keyboard layout [ 1 ] dan entri disimpan dengan benar, teks tidak ditampilkan dengan benar di jendela kbabel jika itu termasuk konjungsi. Emacs po-mode adalah sedikit ketat, tetapi secara tegas mendukung kesesuaian dengan format file PO. Masalah utama dengan itu adalah bahwa hal itu tampaknya tidak saat ini mungkin untuk mengedit teks Oriya di Emacs. Yudit adalah yang terbaik di editing Oriya teks, tetapi tidak menjamin bahwa format file PO diikuti. Anda dapat bermain-main sedikit dengan editor ini untuk menemukan satu yang sesuai dengan preferensi pribadi Anda. Salah satu kemungkinan mungkin untuk pertama mengedit entri header dengan kbabel atau Emacs po-mode, dan kemudian menggunakan Yudit untuk memasukkan teks Oriya di garis msgstr. Pesan katalog Setelah menyelesaikan terjemahan dalam file oriya.po, harus dikompilasi ke format biner yang dapat dengan cepat dimuat oleh alat gettext. Untuk melakukan itu, gunakan:

msgfmt-c-v-o hello.mo oriya.po 

Opsi-c tidak rinci pengecekan format file PO,-v membuat program verbose, dan nama file output yang diberikan oleh argumen untuk opsi-o. Perhatikan bahwa dasar nama file output harus sesuai dengan domain pesan yang diberikan dalam argumen pertama yang bindtextdomain dan TEXTDOMAIN pada jalur 8 dan 9 dari contoh program di Sec. 2 . The. Mo (object mesin) file harus disimpan di lokasi yang basis direktori yang diberikan oleh argumen kedua untuk bindtextdomain. Lokasi akhir dari file tersebut akan berada di sub-direktori LL / LC_MESSAGESS atau LL_CC / LC_MESSAGESS bawah direktori dasar, di mana LL singkatan bahasa, dan CC bagi suatu negara. Misalnya, seperti yang kita telah memilih lokasi standar, / usr / share / lokal, untuk direktori dasar kita, dan bagi kita string bahasa dan negara yang atau'' dan IN,'' masing-masing, kita akan menempatkan halo . mo di / usr / share / lokal / or_IN. Perhatikan bahwa Anda akan memerlukan hak super-user untuk menyalin hello.mo ke direktori sistem ini. Dengan demikian,

mkdir-p / usr / share / locale / or_IN / LC_MESSAGESS 
cp hello.mo / usr / share / lokal / or_IN / LC_MESSAGESS 

Sudut pandang pengguna Setelah pesan katalog telah dipasang dengan benar, setiap pengguna pada sistem dapat menggunakan versi Oriya dari program Hello World, memberikan lokal Oriya tersedia. Pertama, mengubah lokal Anda dengan,

echo $ LANG 
ekspor LANG = or_IN 

Pernyataan pertama berisi setting arus lokal Anda (ini biasanya en_US, dan Anda akan perlu untuk mereset lokal default di akhir), sedangkan yang kedua set itu ke Oriya lokal.

Sebuah emulator terminal Unicode berkemampuan diperlukan untuk melihat output Oriya langsung. Versi baru dari kedua gnome-terminal dan konsole (terminal emulator KDE) adalah Unicode-aware. Saya akan fokus pada gnome-terminal sebagai tampaknya memiliki dukungan yang lebih baik untuk internasionalisasi. gnome-terminal perlu diberitahu bahwa byte tiba adalah UTF-8 dikodekan urutan multibyte. Hal ini dapat dilakukan dengan (a) Terminal memilih -> Coding Character -> Unicode (UTF-8), atau (b) mengetik / bin / echo-n-e ' \ 033% \ G'' 'di terminal, atau (c) dengan menjalankan / bin / unicode_start. Demikian juga, Anda dapat kembali ke lokal default oleh (a) Terminal memilih -> Coding Character -> Lancar Lokal (ISO-8859-1), atau (b) / bin / echo-n-e ' \ 033% \ @ ','' Atau (c) dengan menjalankan / bin / unicode_stop. Sekarang, menjalankan program contoh (setelah kompilasi dengan gcc seperti yang dijelaskan dalam Sec. 2 ) dengan,

. / Hello 

harus memberikan output dalam Oriya. Harap dicatat bahwa konjungsi kemungkinan besar akan ditampilkan dengan `` halant'' sebagai terminal mungkin tidak membuat font bahasa India dengan benar. Juga, karena kebanyakan emulator terminal mengasumsikan fixed-width font, hasilnya hampir tidak mungkin estetis menarik.

Sebuah alternatif adalah untuk menyimpan output program dalam sebuah file, dan melihatnya dengan Yudit yang akan membuat mesin terbang dengan benar. Dengan demikian,

/ Hello> sampah. 
Yudit sampah 

Jangan lupa untuk me-reset lokal sebelum pekerjaan biasa melanjutkan di terminal. Lain, karakter bahasa Inggris Anda mungkin terlihat lucu.

Sementara semua ini harus memberikan rata-rata pengguna kesenangan untuk dapat melihat output dari program Oriya tanpa seluruh banyak pekerjaan, harus diingat bahwa kita masih jauh dari tujuan yang diinginkan. Mudah-mudahan, suatu hari situasi akan seperti yang bukan berasal kesenangan khusus dari itu, pengguna mengambil begitu saja bahwa Oriya harus tersedia dan marah sebaliknya.

Menambahkan komplikasi: program upgrade Bagian sebelumnya disajikan contoh sederhana tentang bagaimana dukungan bahasa Oriya bisa ditambahkan ke program C. Seperti semua program, sekarang kita mungkin ingin lebih meningkatkan. Sebagai contoh, kita bisa menyertakan ucapan kepada pengguna dengan menambahkan pernyataan printf lain setelah yang pertama. Kode sumber baru hello.c kami mungkin terlihat seperti ini:

 1 # include <libintl.h>
 2 # include <locale.h>
 3 # include
 4 # include
 5 int main (void)
 6 {
 7 setlocale (LC_ALL, "");
 8 bindtextdomain ("halo", "/ usr / share / lokal");
 9 TEXTDOMAIN ("halo");
 10 printf (gettext ("Hello, world \ n"));
 11 printf (gettext ("Bagaimana kabarmu \ n"));
 12 exit (0);
 13}

Untuk sebuah perubahan kecil, itu akan cukup sederhana untuk hanya mengulang siklus atas penggalian teks bahasa Inggris yang relevan, menerjemahkannya ke Oriya, dan menyiapkan katalog pesan baru. Kita bahkan dapat menyederhanakan pekerjaan dengan memotong dan menyisipkan sebagian dari file oriya.po lama ke yang baru. Namun, program-program nyata akan memiliki ribuan string tersebut, dan kami ingin untuk dapat menerjemahkan hanya string berubah, dan memiliki utilitas gettext menangani kerepotan menggabungkan terjemahan baru dengan yang lama. Ini memang mungkin. Penggabungan terjemahan lama dan baru Seperti sebelumnya, mengekstrak string diterjemahkan dari hello.c ke file template objek portabel baru, halo-new.pot, menggunakan xgettext,

xgettext-d hello-s-o hello-new.pot hello.c 

Sekarang, kita menggunakan program baru, msgmerge, untuk menggabungkan file po ada. Dengan terjemahan ke dalam file template baru, yaitu,

msgmerge-s-U oriya.po hello-new.pot 

Opsi-s menghasilkan output diurutkan, dan U-update pilihan po yang ada., Oriya.po. Kita bisa memilih untuk bukan membuat yang baru po. Dengan menggunakan ``-o '' bukan-U. Diperbarui po. Masih akan memiliki terjemahan lama tertanam di dalamnya, dan entri baru dengan garis msgstr diterjemahkan. Bagi kami, baris baru di oriya.po akan terlihat seperti,

#: Hello.c: 11
msgstr "Bagaimana kabarmu? \ n"
msgstr ""

Untuk terjemahan baru, kita bisa menggunakan, ଆପଣ କିପରି ଅଛନ୍ତି'' di tempat frase Bahasa Inggris Bagaimana kabarmu'' diperbarui berkas oriya.po, termasuk terjemahan mungkin terlihat seperti??:

# Oriya terjemahan untuk paket misalnya halo.
# Copyright (C) 2004 Gora Mohanty
# File ini didistribusikan di bawah lisensi yang sama seperti halo examplepackage.
# Gora Mohanty <gora_mohanty@yahoo.co.in> 2004.
#
msgstr ""
msgstr ""
"Proyek-Id-Version: oriya \ n"
"Laporan-msgstr-Bugs-To: \ n"
"POT-Penciptaan-Tanggal: 2004-06-23 14:30 +0530 \ n"
"PO-Revisi-Tanggal: 2004/06/22 10:54 +0530 \ n"
"Last-Translator: Gora Mohanty <gora_mohanty@yahoo.co.in> \ n"
"Bahasa-Team: Oriya \ n"
"MIME-Version: 1.0 \ n"
"Content-Type: text / plain; charset = UTF-8 \ n"
"Content-Transfer-Encoding: 8bit \ n"
"X-Generator: KBabel 1.3 \ n"
  
#: Hello.c: 10
msgstr "Halo, dunia! \ n"
msgstr "\n"

#: Hello.c: 11
msgstr "Bagaimana kabarmu? \ n"
msgstr "\n"

Kompilasi oriya.po ke file objek mesin, dan menginstal di tempat yang tepat seperti di Sec. 2.4 . Dengan demikian,

msgfmt-c-v-o hello.mo oriya.po 
mkdir-p / usr / share / locale / or_IN / LC_MESSAGESS 
cp hello.mo / usr / share / lokal / or_IN / LC_MESSAGESS 

Anda dapat menguji output Oriya seperti di atas, setelah mengkompilasi ulang hello.c dan menjalankannya dalam lokal Oriya.

Lebih lanjut tentang gettext GNU halaman-halaman Info gettext memberikan gambaran terorganisasi dengan baik dan lengkap dari utilitas gettext dan penggunaannya untuk memungkinkan Dukungan Bahasa Asli. Satu harus, setidaknya, membaca materi pengantar di gettext :: Pendahuluan ::, dan referensi yang disarankan dalam gettext :: Kesimpulan :: Referensi ::. . Selain utilitas gettext dijelaskan dalam dokumen ini, berbagai program lain untuk memanipulasi file po dibahas dalam gettext: Memanipulasi ::. Akhirnya, dukungan untuk bahasa pemrograman selain C / C + + dibahas dalam gettext :: Bahasa Pemrograman ::.

Karya terjemahan Selain program string pesan jelas bahwa telah menjadi satu-satunya fokus diskusi kita di sini, ada banyak hal lain yang perlu diterjemahkan, termasuk pesan GUI, opsi baris perintah string, file konfigurasi, dokumentasi program, dll Selain aspek-aspek yang jelas, ada sejumlah besar program dan / atau script yang secara otomatis dihasilkan oleh program lain. Program-program yang dihasilkan mungkin juga diri mereka sendiri perlu diterjemahkan. Jadi, dalam setiap upaya untuk memberikan dukungan untuk bahasa asli diberikan, melaksanakan terjemahan dan menjaga dengan update program menjadi bagian utama dari usaha, membutuhkan komitmen yang berkelanjutan dari tim bahasa. Sebuah rencana telah digariskan untuk proyek lokalisasi Oriya [ 2 ].

Ucapan Terima Kasih Luas penggunaan jelas telah dibuat dari gettext pengguna GNU dalam mempersiapkan dokumen ini. Saya juga telah dibantu oleh sebuah artikel di Journal Linux [ 3 ].

Karya ini merupakan bagian dari proyek untuk memungkinkan penggunaan Oriya di Linux. Saya berterima kasih kepada paman saya, NM Pattnaik, untuk mengandung proyek. Kita semua manfaat dari diskusi di tengah-tengah sekelompok orang yang bekerja pada proyek ini. Pada masalah tertentu penerjemahan, bantuan SDM Pansari, A. Nayak, dan M. Chand sangat dihargai. The Emacs Info Browser Anda dapat memulai Emacs dari baris perintah dengan mengetik emacs,'' atau emacs .'' Hal ini dapat dimulai dari menu di beberapa desktop, misalnya, pada desktop GNOME saya, itu adalah di bawah Main Menu -> Programming -> Emacs. Jika Anda tidak terbiasa dengan Emacs, tutorial dapat dimulai dengan mengetik Ch t'' di jendela Emacs, atau dari item Bantuan di menubar di bagian atas. Emacs membuat ekstensif menggunakan Control (kadang-kadang disebut sebagai CTRL'' atau '' CTL) dan Meta (kadang-kadang disebut sebagai Sunting'' atau Alt'') kunci. Dalam Emacs bahasa, urutan ditulis dgn tanda penghubung, seperti C-h'' berarti menekan Control dan h 'tombol secara bersamaan, sementara `` Ch t'' berarti untuk menekan Control dan h' kunci bersama-sama, rilis mereka, dan tekan t 'tombol'. Demikian pula, `` M-x'' digunakan untuk menunjukkan bahwa Meta dan `x 'tombol harus ditekan pada saat yang sama.

Info Browser dapat dimulai dengan mengetikkan `` Ch i'' di Emacs. Pertama kali Anda melakukan ini, sebentar akan daftar beberapa perintah yang tersedia dalam informasi browser, hadir dengan menu topik utama. Setiap item menu, atau lintas-referensi hyperlink ke node yang tepat, dan Anda dapat mengunjungi node yang baik dengan memindahkan kursor ke item dan menekan Enter, atau dengan mengklik dengan tombol tengah mouse. Untuk sampai ke item menu gettext, Anda dapat gulir ke bawah ke baris,

  • Gettext: (gettext). GNU gettext utilitas.

dan mengunjungi simpul tersebut. Atau, karena beberapa halaman ke bawah, Anda dapat menemukannya dengan menggunakan I-cari'' Type C-s'' untuk memasukkan I-cari'' yang kemudian akan meminta Anda untuk string di mini. -penyangga di bagian bawah jendela. Ini adalah pencarian tambahan, sehingga Emacs akan terus bergerak maju Anda melalui buffer seperti Anda memasukkan string pencarian Anda. Jika Anda telah mencapai terjadinya terakhir dari string pencarian dalam buffer saat ini, Anda akan mendapatkan pesan yang mengatakan Gagal I-pencarian: ...'' on menekan Cs'' Pada saat itu, tekan C. -s'' lagi untuk melanjutkan pencarian pada awal buffer. Demikian juga, `` C-r'' bertahap pencarian mundur dari lokasi ini.

Info node tercantum dalam dokumen ini dengan ::'' pemisah, sehingga seseorang dapat pergi ke gettext :: Membuat header :: Masuk :: dengan mengunjungi gettext'' simpul dari menu info utama, navigasi untuk '' Menciptakan node, dan mengikuti bahwa untuk node header entri''.

A info browser yang berdiri sendiri, terlepas dari Emacs, juga tersedia pada banyak sistem. Dengan demikian, halaman info gettext juga dapat diakses dengan mengetik Info gettext'' di terminal. Xinfo adalah aplikasi X yang berfungsi sebagai browser info, sehingga jika sudah terpasang, mengetik xinfo gettext'' dari perintah line akan membuka jendela browser baru dengan halaman info gettext.

Editor berkas PO Sementara editor Yudit memadai untuk tujuan kita sekarang, dan kami berencana untuk menggunakan itu sebagai itu adalah platform-independen, dan saat ini yang terbaik di render Oriya. Bagian ini menjelaskan beberapa fitur dari beberapa editor yang khusus untuk mengedit file PO di Linux. Hal ini masih bekerja di kemajuan, karena saya dalam proses mencoba editor yang berbeda sebelum menetap di satu. Yang dipertimbangkan di sini adalah: Emacs di po-mode, poedit, kbabel, dan gtranslator. Emacs PO modus Emacs akan secara otomatis masuk ke po-mode ketika Anda memuat file po., Seperti yang ditunjukkan oleh `` PO'' di modeline di bagian bawah. Jendela dibuat read-only, sehingga Anda dapat mengedit file po. Hanya melalui perintah khusus. Penjelasan Emacs po-mode dapat ditemukan di bawah gettext :: Dasar Info simpul, atau jenis `h 'atau'? ' di jendela po-modus untuk daftar perintah yang tersedia. Sementara saya menemukan Emacs po-mode cukup ketat, hal ini mungkin karena ketidakbiasaan dengan itu. Keuntungan utamanya adalah bahwa memaksakan kesesuaian kaku untuk format file PO, dan memeriksa format file saat menutup po buffer file.. Emacs po-mode tidak berguna untuk terjemahan Oriya, yang saya tahu tidak ada cara untuk langsung memasukkan teks Oriya bawah Emacs. poedit XXX: dalam persiapan. KDE: editor kbabel kbabel [ 4 ] adalah editor lebih user-friendly dan dikonfigurasi daripada salah satu dari Emacs po-mode atau poedit. Hal ini terintegrasi ke KDE, dan menawarkan bantuan kontekstual yang luas. Selain dukungan untuk berbagai fitur berkas PO, ia memiliki kerangka plugin untuk kamus, yang memungkinkan cek konsistensi dan saran penerjemahan. GNOME: editor gtranslator XXX: dalam persiapan. Bibliografi

1 G. Mohanty, Sebuah primer praktis untuk menggunakan Oriya di Linux, v0.3, http://oriya.sarovar.org/docs/getting_started/index.html 2004, Sec. 6.2 menjelaskan layout XKB untuk Oriya.

2 G. Mohanty, Sebuah rencana untuk Oriya lokalisasi, v0.1, http://oriya.sarovar.org/docs/translation_plan/index.html 2004.

3 Artikel Linux Journal pada internasionalisasi, http://www.linuxjournal.com/article.php?sid=3023 .

4 Fitur editor kbabel, http://i18n.kde.org/tools/kbabel/features.html .

Tentang dokumen ini ... Sebuah tutorial tentang Dukungan Bahasa Asli menggunakan GNU gettext

Dokumen ini dihasilkan dengan menggunakan LaTeX 2 HTML penerjemah Versi 2002/02/01 (1.70)

Hak Cipta © 1993, 1994, 1995, 1996, Nikos Drakos , Komputer Berbasis Satuan Pembelajaran, Universitas Leeds. Hak Cipta © 1997, 1998, 1999, Ross Moore , Jurusan Matematika, Universitas Macquarie, Sydney.

Argumen baris perintah adalah: latex2html-no_math-html_version 4.0, matematika, unicode, i18n, meja-split 0 memo

Terjemahan ini diprakarsai oleh Gora Mohanty pada 2004/07/24

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment