# gettext-examples Bahasa Melayu (Malay) (ms).
# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids)
# Copyright (C) 2006, 2015 Free Software Foundation, Inc.
# This file is distributed under the same license as the gettext package.
# Sharuzzaman Ahmat Raslan <sharuzzaman@gmail.com>, 2006, 2015.
#
msgid ""
msgstr ""
"Project-Id-Version: gettext-examples 0.19.4.73\n"
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
"POT-Creation-Date: 2020-04-11 22:35+0200\n"
"PO-Revision-Date: 2015-06-25 20:48+0800\n"
"Last-Translator: Sharuzzaman Ahmat Raslan <sharuzzaman@gmail.com>\n"
"Language-Team: Malay <translation-team-ms@lists.sourceforge.net>\n"
"Language: ms\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"X-Generator: Poedit 1.8.1\n"

#: hello-c/hello.c:30 hello-c-gnome/hello.c:46
#: hello-c-gnome3/hello.desktop.in.in:5 hello-c++/hello.cc:39
#: hello-c++-qt/hello.cc:45 hello-c++-kde/hellowindow.cc:42
#: hello-c++-gnome/hello.cc:50 hello-c++-wxwidgets/hello.cc:68
#: hello-objc/hello.m:30 hello-objc-gnustep/Hello.m:49
#: hello-objc-gnome/hello.m:47 hello-sh/hello.sh:14 hello-python/hello.py.in:12
#: hello-clisp/hello.lisp.in:11 hello-librep/hello.jl.in:12
#: hello-guile/hello.scm:15 hello-smalltalk/hello.st.in:31
#: hello-java/Hello.java:14 hello-java-awt/Hello.java:23
#: hello-java-swing/Hello.java:20 hello-java-qtjambi/Hello.java:27
#: hello-csharp/hello.cs:14 hello-csharp-forms/hello.cs:29
#: hello-gawk/hello.awk:11 hello-pascal/hello.hello_world
#: hello-ycp/hello.ycp:15 hello-tcl/hello.tcl:11 hello-tcl-tk/hello.tcl:13
#: hello-perl/hello-1.pl.in:17 hello-perl/hello-2.pl.in:12
#: hello-php/hello.php:12
msgid "Hello, world!"
msgstr "Hello, world!"

#: hello-c/hello.c:31 hello-c-gnome/hello.c:51 hello-c++/hello.cc:40
#: hello-c++-gnome/hello.cc:55 hello-c++-wxwidgets/hello.cc:71
#: hello-objc/hello.m:31 hello-objc-gnustep/Hello.m:58
#: hello-objc-gnome/hello.m:52 hello-librep/hello.jl.in:14
#: hello-gawk/hello.awk:12 hello-pascal/hello.running_as hello-tcl/hello.tcl:12
#: hello-tcl-tk/hello.tcl:16 hello-perl/hello-1.pl.in:19 hello-php/hello.php:14
#, php-format
msgid "This program is running as process number %d."
msgstr "Program ini dilaksanakan sebagai proses bernombor %d."

#: hello-c-gnome3/hello.c:79
#, c-format
msgid ""
"<big>Hello world!</big>\n"
"This program is running as process number <b>%d</b>."
msgstr ""
"<big>Hello dunia!</big>\n"
"Program ini dilaksanakan sebagai proses bernombor <b>%d</b>."

#: hello-c-gnome3/hello.c:84
msgid "<big><u>This is another text</u></big>"
msgstr "<big><u>Ini adalah teks lain</u></big>"

#: hello-c-gnome3/hello.c:86
msgid "<big><i>This is yet another text</i></big>"
msgstr "<big><i>Ini adalah satu lagi teks lain</i></big>"

#: hello-c-gnome3/hello.desktop.in.in:4
msgid "Hello"
msgstr "Hello"

#: hello-c-gnome3/hello.ui:6
msgid "Example Application"
msgstr "Contoh Aplikasi"

#: hello-c-gnome3/hello.ui:34
msgid "Update text"
msgstr "Kemaskini teks"

#: hello-c-gnome3/hello.gschema.xml:8
msgid "Use XML markup"
msgstr "Guna penanda XML"

#: hello-c-gnome3/hello.gschema.xml:9
msgid "Whether to use XML markup in the text."
msgstr "Sama ada untuk menggunakan penanda XML dalam teks."

#: hello-c++-qt/hello.cc:52 hello-c++-kde/hellowindow.cc:49
#: hello-smalltalk/hello.st.in:32 hello-ycp/hello.ycp:19
#, ycp-format
msgid "This program is running as process number %1."
msgstr "Program ini dilaksanakan sebagai proses bernombor %1."

#: hello-c++-kde/hello.cc:46
msgid "Hello example"
msgstr "Contoh hello"

#: hello-c++-kde/hello.cc:48
msgid "Hello world example"
msgstr "Contoh hello world"

#: hello-sh/hello.sh:17
#, sh-format
msgid "This program is running as process number $pid."
msgstr "Program ini dilaksanakan sebagai proses bernombor $pid."

#: hello-python/hello.py.in:13
#, python-format
msgid "This program is running as process number %(pid)d."
msgstr "Program ini dilaksanakan sebagai proses bernombor %(pid)d."

#: hello-clisp/hello.lisp.in:13 hello-guile/hello.scm:17
#, scheme-format
msgid "This program is running as process number ~D."
msgstr "Program ini dilaksanakan sebagai proses bernombor ~D."

#: hello-java/Hello.java:18 hello-java-awt/Hello.java:28
#: hello-java-swing/Hello.java:25 hello-java-qtjambi/Hello.java:34
#: hello-csharp/hello.cs:17 hello-csharp-forms/hello.cs:36
#, csharp-format
msgid "This program is running as process number {0}."
msgstr "Program ini dilaksanakan sebagai proses bernombor {0}."

#: hello-perl/hello-2.pl.in:14
#, perl-brace-format
msgid "This program is running as process number {pid}."
msgstr "Program ini dilaksanakan sebagai proses bernombor {pid}."
