<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.minetest.org/index.php?action=history&amp;feed=atom&amp;title=Mods%2FInternationalization_Lib_for_Minetest%2Fms</id>
	<title>Mods/Internationalization Lib for Minetest/ms - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.minetest.org/index.php?action=history&amp;feed=atom&amp;title=Mods%2FInternationalization_Lib_for_Minetest%2Fms"/>
	<link rel="alternate" type="text/html" href="https://wiki.minetest.org/index.php?title=Mods/Internationalization_Lib_for_Minetest/ms&amp;action=history"/>
	<updated>2026-04-25T14:52:13Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.4</generator>
	<entry>
		<id>https://wiki.minetest.org/index.php?title=Mods/Internationalization_Lib_for_Minetest/ms&amp;diff=12330&amp;oldid=prev</id>
		<title>&gt;Voxel at 20:09, 8 April 2021</title>
		<link rel="alternate" type="text/html" href="https://wiki.minetest.org/index.php?title=Mods/Internationalization_Lib_for_Minetest/ms&amp;diff=12330&amp;oldid=prev"/>
		<updated>2021-04-08T20:09:58Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:09, 8 April 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>&gt;Voxel</name></author>
	</entry>
	<entry>
		<id>https://wiki.minetest.org/index.php?title=Mods/Internationalization_Lib_for_Minetest/ms&amp;diff=8565&amp;oldid=prev</id>
		<title>&gt;Voxel at 20:09, 8 April 2021</title>
		<link rel="alternate" type="text/html" href="https://wiki.minetest.org/index.php?title=Mods/Internationalization_Lib_for_Minetest/ms&amp;diff=8565&amp;oldid=prev"/>
		<updated>2021-04-08T20:09:58Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:09, 8 April 2021&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key mediawiki-mw_:diff::1.12:old-4800:rev-8565 --&gt;
&lt;/table&gt;</summary>
		<author><name>&gt;Voxel</name></author>
	</entry>
	<entry>
		<id>https://wiki.minetest.org/index.php?title=Mods/Internationalization_Lib_for_Minetest/ms&amp;diff=4800&amp;oldid=prev</id>
		<title>&gt;Voxel at 20:09, 8 April 2021</title>
		<link rel="alternate" type="text/html" href="https://wiki.minetest.org/index.php?title=Mods/Internationalization_Lib_for_Minetest/ms&amp;diff=4800&amp;oldid=prev"/>
		<updated>2021-04-08T20:09:58Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:09, 8 April 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>&gt;Voxel</name></author>
	</entry>
	<entry>
		<id>https://wiki.minetest.org/index.php?title=Mods/Internationalization_Lib_for_Minetest/ms&amp;diff=1035&amp;oldid=prev</id>
		<title>&gt;Voxel at 20:09, 8 April 2021</title>
		<link rel="alternate" type="text/html" href="https://wiki.minetest.org/index.php?title=Mods/Internationalization_Lib_for_Minetest/ms&amp;diff=1035&amp;oldid=prev"/>
		<updated>2021-04-08T20:09:58Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Languages}}&lt;br /&gt;
{{Mod Data/ms&lt;br /&gt;
| name=Internationalization Lib for Minetest&lt;br /&gt;
| luaname=intllib&lt;br /&gt;
| type= [[:Category:Misc mods|Pelbagai]]&lt;br /&gt;
| author=Diego Martínez (kaeza)&lt;br /&gt;
| version=&lt;br /&gt;
| forum=[https://forum.minetest.net/viewtopic.php?id=4929 4929] &lt;br /&gt;
| source=[https://github.com/minetest-mods/intllib GitHub]&lt;br /&gt;
}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
'''Pustaka Pengantarabangsaan untuk Minetest''' ([[Help:Original names/ms|BI]]: '''''Internationalization Lib for Minetest''''') atau juga dikenali sebagai '''Internationalization Library''' ialah sebuah [[Mods/ms|mods]] yang dicipta oleh Diego Martínez (kaeza) dan diterbitkan di bawah [http://unlicense.org Unlicense] (bahasa Inggeris). Mods ini ialah suatu usaha untuk menyediakan sokongan pengantarabangsaan kepada mods. Sebarang komen atau cadangan dialu-alukan dekat [https://forum.minetest.net/viewtopic.php?id=4929 topik forum] dalam bahasa Inggeris. Pepijat boleh dilaporkan menggunakan [https://github.com/minetest-mods/intllib/issues penjejak pepijat] Github.&lt;br /&gt;
&lt;br /&gt;
== Menggunakan pustaka sebagai pemain biasa ==&lt;br /&gt;
&lt;br /&gt;
Jika anda pemain biasa yang mencari teks terjemahan, hanya pasangkan mods ini seperti mods lain, kemudian bolehkannya melalui GUI.&lt;br /&gt;
&lt;br /&gt;
Mods ini cuba untuk mengesan bahasa anda, tetapi oleh kerana tiada cara mudah alih untuk melakukannya, ia cuba beberapa cara yang lain:&lt;br /&gt;
* Tetapan &amp;lt;code&amp;gt;language&amp;lt;/code&amp;gt; di dalam fail [[minetest.conf/ms|minetest.conf]].&lt;br /&gt;
* Pembolehubah sekitaran &amp;lt;code&amp;gt;LANGUAGE&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Pembolehubah sekitaran &amp;lt;code&amp;gt;LANG&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Jika semua di atas gagal, ia gunakan &amp;lt;code&amp;gt;en&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dalam apa jua keadaan, hasil akhirnya sepatutnya menjadi [https://ms.wikipedia.org/wiki/Senarai_kod_ISO_639-1 Kod Bahasa ISO 639-1] untuk bahasa yang dikehendaki.&lt;br /&gt;
&lt;br /&gt;
== Menggunakan pustaka sebagai penterjemah ==&lt;br /&gt;
&lt;br /&gt;
Jika anda seorang penterjemah, anda perlu menentukan jenis antaramuka mods yang menyokong intllib tersebut, dan ikut langkah untuk antaramuka yang berkenaan.&lt;br /&gt;
&lt;br /&gt;
Untuk menentukan antaramuka yang manakah mods tersebut gunakan, carilah subdirektori &amp;lt;code&amp;gt;locale&amp;lt;/code&amp;gt; mods tersebut. Jika anda jumpa fail berbentuk fail teks kosong dalam format &amp;lt;code&amp;gt;.txt&amp;lt;/code&amp;gt;, maka ianya menggunakan antaramuka yang lama. Kalau tidak, kemungkinan besar ianya menggunakan antaramuka baru, terutamanya jika failnya berupa fail gettext dalam format &amp;lt;code&amp;gt;.po&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Antaramuka baru ===&lt;br /&gt;
&lt;br /&gt;
Antaramuka baru menggunakan fail &amp;lt;code&amp;gt;.po&amp;lt;/code&amp;gt; dari [https://www.gnu.org/software/gettext gettext] (bahasa Inggeris). Lihat [https://www.gnu.org/software/gettext/manual/html_node/PO-Files.html Format Fail PO] (bahasa Inggeris) untuk maklumat lanjut.&lt;br /&gt;
&lt;br /&gt;
Oleh itu, jika anda menterjemah mods yang menggunakan antaramuka baru ke dalam bahasa anda, gunakan alatan kegemaran anda untuk menyunting fail &amp;lt;code&amp;gt;.po&amp;lt;/code&amp;gt; tersebut. Fail tersebut juga boleh disunting dengan penyunting teks kosong.&lt;br /&gt;
&lt;br /&gt;
=== Antaramuka lama ===&lt;br /&gt;
&lt;br /&gt;
Untuk menterjemah mods ke dalam bahasa anda, salin fail &amp;lt;code&amp;gt;locale/template.txt&amp;lt;/code&amp;gt; kepada &amp;lt;code&amp;gt;locale/BAHASA.txt&amp;lt;/code&amp;gt; (di mana &amp;lt;code&amp;gt;BAHASA&amp;lt;/code&amp;gt; ialah [https://ms.wikipedia.org/wiki/Senarai_kod_ISO_639-1 Kod Bahasa ISO 639-1] untuk bahasa anda).&lt;br /&gt;
&lt;br /&gt;
Buka fail baru tersebut dalam penyunting kegemaran anda, dan terjemahkan setiap barus dengan meletakkan teks terjemahan selepas tanda sama dengan.&lt;br /&gt;
&lt;br /&gt;
Di sini contoh untuk fail terjemahan bahasa Melayu (&amp;lt;code&amp;gt;ms.txt&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
  # A comment.&lt;br /&gt;
  # Another comment.&lt;br /&gt;
  This line is ignored since it has no equals sign.&lt;br /&gt;
  Hello, World! = Hello, Dunia!&lt;br /&gt;
  String with\nnewlines = Rentetan dengan\nbaris baru&lt;br /&gt;
  String with an \= equals sign = Rentetan dengan \= tanda sama dengan&lt;br /&gt;
&lt;br /&gt;
Fail terjemahan (atau penempatan) ialah fail teks biasa yang mempunyai baris-baris dalam bentuk &amp;lt;code&amp;gt;teks asal = teks terjemahan&amp;lt;/code&amp;gt;. Fail tersebut mestilah berada di dalam subdirektori &amp;lt;code&amp;gt;locale&amp;lt;/code&amp;gt; di dalam direktori mods, dan mesti dinamakan sebagai [https://ms.wikipedia.org/wiki/Senarai_kod_ISO_639-1 Kod Bahasa ISO 639-1] dua huruf untuk bahasa yang anda ingin terjemahkan.&lt;br /&gt;
&lt;br /&gt;
Fail terjemahan mestilah menggunakan pengekodan UTF-8.&lt;br /&gt;
&lt;br /&gt;
Baris yang bermula dengan tanda nombor/tanda pagar (#) ialah komen dan diabaikan oleh pemprosesan pembaca terjemahan. Ambil perhatian bahawa komen hanyalah sah sehingga penghujung baris; tidak ada sokongan untuk komen pelbagai baris. Baris-baris tanpa tanda sama dengan juga akan diabaikan.&lt;br /&gt;
&lt;br /&gt;
Aksara yang dianggap &amp;quot;istimewa&amp;quot; boleh &amp;quot;dilepaskan&amp;quot; supaya ianya diambil bulat-bulat. Terdapat beberapa jujukan lepasan (''escape sequence'') yang boleh digunakan:&lt;br /&gt;
* Mana-mana tanda nombor/tanda pagar (&amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;), tanda sama dengan (&amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;) boleh dilepaskan untuk diambil bulat-bulat. Jujukan &amp;lt;code&amp;gt;\#&amp;lt;/code&amp;gt; sangat berguna sekiranya teks asal bermula dengan tanda nombor/tanda pagar (&amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;).&lt;br /&gt;
* Jujukan lepasan biasa &amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt; dan &amp;lt;code&amp;gt;\t&amp;lt;/code&amp;gt; setiap satunya membawa maksud baris baru dan tab mendatar.&lt;br /&gt;
* Jujukan lepasan istimewa &amp;lt;code&amp;gt;\s&amp;lt;/code&amp;gt; melambangkan aksara ruang (selang). Ianya berguna untuk memasukkan ruang hadapan atau ruang belakang ke dalam teks sumber atau terjemahan, kerana ruang-ruang ini akan dibuang jika tidak berbuat sedemikian. Contohnya, jika teks tersebut ialah perenggan dan perlu bermula dengan beberapa ruang, perlulah menggunakan jujukan lepasan ini.&lt;br /&gt;
&lt;br /&gt;
== Menggunakan pustaka sebagai pembangun ==&lt;br /&gt;
&lt;br /&gt;
Sekiranya anda pembangun mods yang ingin menambah sokongan pengantarabangsaan kepada mods anda, anda perlu melalukan perkara berikut.&lt;br /&gt;
&lt;br /&gt;
=== Membolehkan pengantarabangsaan ===&lt;br /&gt;
&lt;br /&gt;
Untuk membolehkan pengantarabangsaan untuk mods anda, anda perlu salin fail &amp;lt;code&amp;gt;lib/intllib.lua&amp;lt;/code&amp;gt; ke dalam direktori akar mods anda, kemudian masukkan kod plat dandang (boilerplate) ini ke dalam fail yang memerlukan pengantarabangsaan:&lt;br /&gt;
&lt;br /&gt;
  -- Load support for intllib.&lt;br /&gt;
  local MP = minetest.get_modpath(minetest.get_current_modname())&lt;br /&gt;
  local S, NS = dofile(MP..&amp;quot;/intllib.lua&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Anda juga perlu bergantung secara pilihan kepada intllib, untuk menambah kebergantungan pilihan, masukkan &amp;lt;code&amp;gt;intllib?&amp;lt;/code&amp;gt; ke dalam baris kosong di dalam fail &amp;lt;code&amp;gt;depends.txt&amp;lt;/code&amp;gt; mods anda. Ambil perhatian bahawa jika intllib tidak dipasang, fungsi pengambil telah ditakrifkan untuk memulangkan rentetan tanpa perubahan. Perkara ini dibuat supaya anda tidak perlu merenjiskan beratus-ratus penyemak &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; (atau pembina lain yang serupa) untuk memeriksa sama ada pustaka tersebut memang telah dipasang.&lt;br /&gt;
&lt;br /&gt;
Apabila kod tersebut telah dimasukkan, anda perlu menanda rentetan yang memerlukan terjemahan. Untuk setiap rentetan boleh terjemah dalam teks sumber anda, gunakan fungsi &amp;lt;code&amp;gt;S&amp;lt;/code&amp;gt; (lihat atas) untuk memulangkan rentetan yang telah diterjemah. Contohnya:&lt;br /&gt;
&lt;br /&gt;
  minetest.register_node(&amp;quot;mymod:mynode&amp;quot;, {&lt;br /&gt;
      -- Rentetan biasa:&lt;br /&gt;
      description = S(&amp;quot;My Fabulous Node&amp;quot;),&lt;br /&gt;
      -- Rentetan dengan penyisipan:&lt;br /&gt;
      description = S(&amp;quot;@1 Car&amp;quot;, &amp;quot;Blue&amp;quot;),&lt;br /&gt;
      -- ...&lt;br /&gt;
  })&lt;br /&gt;
&lt;br /&gt;
Fungsi &amp;lt;code&amp;gt;NS&amp;lt;/code&amp;gt; pula serupa dengan &amp;lt;code&amp;gt;ngettext&amp;lt;/code&amp;gt;. Ia patut digunakan apabila rentetan untuk diterjemah mempunyai bentuk mufrad dan bentuk jamak. Contohnya:&lt;br /&gt;
&lt;br /&gt;
  -- `count` pertama untuk `ngettext` menentukan bentuk mana untuk digunakan.&lt;br /&gt;
  -- `count` kedua pula penggantian sebenar.&lt;br /&gt;
  print(NS(&amp;quot;You have one item.&amp;quot;, &amp;quot;You have @1 items.&amp;quot;, count, count))&lt;br /&gt;
&lt;br /&gt;
=== Menjana dan mengemaskini katalog ===&lt;br /&gt;
&lt;br /&gt;
Ini alir kerja asas untuk bekerja dengan [https://www.gnu.org/software/gettext/ gettext]&lt;br /&gt;
&lt;br /&gt;
Setiap kali anda mempunyai rentetan baru untuk diterjemah, anda patut buat seperti berikut:&lt;br /&gt;
&lt;br /&gt;
  cd /laluan/kepada/mods&lt;br /&gt;
  /laluan/kepada/mods/intllib/tools/xgettext.sh file1.lua file2.lua ...&lt;br /&gt;
&lt;br /&gt;
Skrip tersebut akan mencipta direktori bernama &amp;lt;code&amp;gt;locale&amp;lt;/code&amp;gt; jika ia belum wujud, dan ia akan menjana fail &amp;lt;code&amp;gt;template.pot&amp;lt;/code&amp;gt; (sebuah templat dengan semua rentetan boleh terjemah). Jika anda sudah ada terjemahan, skrip tersebut akan mengemaskini kesemuanya dengan rentetan yang baru.&lt;br /&gt;
&lt;br /&gt;
Skrip tersebut menghantar beberapa pilihan kepada &amp;lt;code&amp;gt;xgettext&amp;lt;/code&amp;gt; sebenar yang sepatutnya cukup untuk kebanyakan waktunya. Anda boleh meletakkan pilihan lain jika mahu:&lt;br /&gt;
&lt;br /&gt;
  xgettext.sh -o file.pot --keyword=blargh:4,5 a.lua b.lua ...&lt;br /&gt;
&lt;br /&gt;
Ambil perhatian bahawa terdapat juga fail kelompok Windows &amp;lt;code&amp;gt;xgettext.bat&amp;lt;/code&amp;gt; untuk pengguna Windows, tetapi anda perlu memasang alatan baris perintah secara berasingan. Lihat pengepala fail untuk konfigurasi.&lt;br /&gt;
&lt;br /&gt;
[[Category:Malay]]&lt;/div&gt;</summary>
		<author><name>&gt;Voxel</name></author>
	</entry>
</feed>