From 8c125fa5ad6f56d33dc03b3d7bbc6488f22c5119 Mon Sep 17 00:00:00 2001 From: OpenStack Proposal Bot <openstack-infra@lists.openstack.org> Date: Sun, 12 May 2019 09:11:41 +0000 Subject: [PATCH] Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I887cb149d10d333eb06b3f821ec6223bc8c48d11 --- .../locale/id/LC_MESSAGES/doc-contributor.po | 1377 ++++++++++++++++- 1 file changed, 1374 insertions(+), 3 deletions(-) diff --git a/doc/source/locale/id/LC_MESSAGES/doc-contributor.po b/doc/source/locale/id/LC_MESSAGES/doc-contributor.po index 30660cfed5..7f6643e242 100644 --- a/doc/source/locale/id/LC_MESSAGES/doc-contributor.po +++ b/doc/source/locale/id/LC_MESSAGES/doc-contributor.po @@ -2,13 +2,13 @@ # suhartono <cloudsuhartono@gmail.com>, 2019. #zanata msgid "" msgstr "" -"Project-Id-Version: horizon 15.1.0.dev79\n" +"Project-Id-Version: horizon 15.1.0.dev84\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-08 05:54-0500\n" +"POT-Creation-Date: 2019-05-11 04:24-0500\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2019-05-09 05:11+0000\n" +"PO-Revision-Date: 2019-05-11 05:40+0000\n" "Last-Translator: suhartono <cloudsuhartono@gmail.com>\n" "Language-Team: Indonesian\n" "Language: id\n" @@ -62,6 +62,24 @@ msgstr "" "dashboard``, atau patched ``local_settings.py`` default untuk menulis " "``SECRET_KEY`` di /var." +msgid ":class:`~horizon.tables.Action`" +msgstr ":class:`~horizon.tables.Action`" + +msgid ":class:`~horizon.tables.BatchAction`" +msgstr ":class:`~horizon.tables.BatchAction`" + +msgid ":class:`~horizon.tables.DeleteAction`" +msgstr ":class:`~horizon.tables.DeleteAction`" + +msgid ":class:`~horizon.tables.FilterAction`" +msgstr ":class:`~horizon.tables.FilterAction`" + +msgid ":class:`~horizon.tables.FixedFilterAction`" +msgstr ":class:`~horizon.tables.FixedFilterAction`" + +msgid ":class:`~horizon.tables.LinkAction`" +msgstr ":class:`~horizon.tables.LinkAction`" + msgid "" ":meth:`~horizon.tabs.Tab.get_context_data` method and the :meth:`~horizon." "tabs.Tab.get_template_name` method are called." @@ -181,6 +199,24 @@ msgid "A class-based generic view to handle basic DataTable processing." msgstr "" "Tampilan generik berbasis kelas untuk menangani pemrosesan DataTable dasar." +msgid "" +"A common pitfall is to take a known test object, pass it through your code, " +"and then verify the properties of that object on the output. This is all " +"well and good, except if you're verifying properties that were untouched by " +"your code. What you want to check are the pieces that were *changed*, " +"*added*, or *removed*. Don't check the object's id attribute unless you have " +"reason to suspect it's not the object you started with. But if you added a " +"new attribute to it, be damn sure you verify that came out right." +msgstr "" +"Jebakan (pitfall) yang umum adalah mengambil objek uji yang diketahui, " +"meneruskannya melalui kode Anda, dan kemudian memverifikasi properti objek " +"itu pada output. Ini semua baik dan bagus, kecuali jika Anda memverifikasi " +"properti yang tidak tersentuh oleh kode Anda. Yang ingin Anda periksa adalah " +"bagian-bagian yang *changed*, *added*, atau *removed*. Jangan periksa " +"atribut id objek kecuali Anda memiliki alasan untuk curiga itu bukan objek " +"yang Anda mulai. Tetapi jika Anda menambahkan atribut baru ke dalamnya, " +"yakinlah Anda memverifikasi yang keluar benar." + msgid "A container class which knows how to manage and render Tab objects." msgstr "Kelas kontainer yang tahu cara mengelola dan merender objek Tab." @@ -199,6 +235,17 @@ msgstr "" "yang diberikan, untuk saat tabel tertentu membutuhkan styling khusus. " "Default: ``\"\"``." +msgid "" +"A dashboard class will usually contain a ``name`` attribute (the display " +"name of the dashboard), a ``slug`` attribute (the internal name that could " +"be referenced by other components), a list of panels, default panel, etc. We " +"will cover how to add a panel in the next section." +msgstr "" +"Kelas dashboard biasanya akan berisi atribut ``name`` (nama tampilan " +"dashboard), atribut ``slug`` (nama internal yang dapat dirujuk oleh komponen " +"lain), daftar panel, panel default, dll. Kami akan membahas cara menambahkan " +"panel di bagian selanjutnya." + msgid "" "A descriptive name used for display purposes. Defaults to the value of " "``name`` with the first letter of each word capitalized." @@ -262,6 +309,9 @@ msgstr "" "Diperlukan nama domain jika mengautentikasi dengan Keystone V3 yang " "menjalankan konfigurasi multi-domain." +msgid "A few simple guidelines:" +msgstr "Beberapa pedoman sederhana:" + msgid "" "A field can only safely define one slug in its ``\"switch-on\"`` attribute. " "While switching on multiple fields is possible, the behavior is very hard to " @@ -311,6 +361,21 @@ msgstr "" "Pandangan umum yang menangani seluk-beluk (intricacies) pemrosesan alur " "kerja." +msgid "" +"A good rule of thumb is to mock as close to the source as possible. If you " +"have a function call that calls an external API in a view , mock out the " +"external API, not the whole function. If you mock the whole function you've " +"suddenly lost test coverage for an entire chunk of code *inside* your " +"codebase. Cut the ties cleanly right where your system ends and the external " +"world begins." +msgstr "" +"Aturan praktis yang baik adalah mock sedekat mungkin dengan sumbernya. Jika " +"Anda memiliki panggilan fungsi yang memanggil API eksternal dalam tampilan, " +"mock out API eksternal, bukan seluruh fungsi. Jika Anda mock seluruh fungsi " +"Anda tiba-tiba kehilangan cakupan tes untuk seluruh potongan kode *inside* " +"codebase Anda. Potong ikatan dengan benar di tempat sistem Anda berakhir dan " +"dunia eksternal dimulai." + msgid "" "A label of a menu button for ``table_actions_menu``. The default is \"Actions" "\" or \"More Actions\" depending on ``table_actions``." @@ -944,9 +1009,21 @@ msgstr "" msgid "Adding a feature that was introduced in a microversion" msgstr "Menambahkan fitur yang diperkenalkan dalam microversion" +msgid "Adding actions to a table" +msgstr "Menambahkan tindakan ke tabel" + msgid "Adding new SCSS" msgstr "Menambahkan SCSS baru" +msgid "" +"Additionally, the displaying of the table is handled by a reusable template, " +"``horizon/common/_detail_table.html``. Some simple pagination code was added " +"to handle large instance lists." +msgstr "" +"Selain itu, tampilan tabel ditangani oleh templat yang dapat digunakan " +"kembali, ``horizon/common/_detail_table.html``. Beberapa kode pagination " +"sederhana ditambahkan untuk menangani daftar instance besar." + msgid "" "Additionally, we follow `Django's style guide`_ for templates, views, and " "other miscellany." @@ -987,6 +1064,13 @@ msgstr "" msgid "After You Write Your Patch" msgstr "Setelah Anda Menulis Patch Anda" +msgid "" +"After importing the proper package, the completed ``views.py`` file now " +"looks like the following::" +msgstr "" +"Setelah mengimpor paket yang tepat, file ``views.py`` yang telah selesai " +"sekarang tampak seperti berikut::" + msgid "" "After syncing policies from back-end services, you need to check what are " "changed. If a policy referred by horizon has been changed, you need to check " @@ -1313,6 +1397,23 @@ msgstr "" msgid "As a project, Horizon adheres to code quality standards." msgstr "Sebagai sebuah proyek, Horizon mematuhi standar kualitas kode." +msgid "" +"As an example, we'll create a new ``My Dashboard`` dashboard with a ``My " +"Panel`` panel that has an ``Instances Tab`` tab. The tab has a table which " +"contains the data pulled by the Nova instances API." +msgstr "" +"Sebagai contoh, kami akan membuat dasbor ``My Dash`` baru dengan panel ``My " +"Panel`` yang memiliki tab ``Tab Instances``. Tab memiliki tabel yang berisi " +"data yang ditarik oleh Nova instances API." + +msgid "" +"As described above, the ``mypanel`` directory under ``openstack_dashboard/" +"dashboards/mydashboard`` should look like the following::" +msgstr "" +"Seperti dijelaskan di atas, direktori ``mypanel`` di bawah " +"``openstack_dashboard/dashboards/mydashboard`` akan terlihat seperti " +"berikut ::" + msgid "" "As of Queens, the OpenStack community are in the process of `policy-in-code " "<https://governance.openstack.org/tc/goals/queens/policy-in-code.html>`__. " @@ -1327,6 +1428,9 @@ msgstr "" msgid "As with websso, this is only supported in Keystone version 3." msgstr "Seperti halnya websso, ini hanya didukung di Keystone versi 3." +msgid "Assertions and verification" +msgstr "Penegasan dan verifikasi" + msgid "Asserts no messages have been attached by the messages framework." msgstr "Menyatakan tidak ada pesan yang dilampirkan oleh kerangka pesan." @@ -1903,6 +2007,9 @@ msgstr "" msgid "Can't test interactions with live external services." msgstr "Tidak dapat menguji interaksi dengan layanan eksternal langsung." +msgid "Catches *many* bugs that unit and functional tests will not." +msgstr "Menangkap *many* bug yang tidak akan diuji unit dan fungsional." + msgid "Catches internal Horizon exception classes." msgstr "Menangkap kelas pengecualian Horizon internal." @@ -2038,6 +2145,15 @@ msgstr "Fungsi umum untuk mendapatkan wilayah dari endpoint." msgid "Common function for setting the cookie in the response." msgstr "Fungsi umum untuk mengatur cookie dalam respons." +msgid "Common pitfalls" +msgstr "Perangkap umum" + +msgid "Compile the catalog" +msgstr "Kompilasi katalog" + +msgid "Complex example of a workflow" +msgstr "Contoh kompleks alur kerja" + msgid "Component version" msgstr "Versi komponen" @@ -2183,6 +2299,17 @@ msgstr "" msgid "Coverage Reports" msgstr "Coverage Reports (laporan liputan)" +msgid "Coverage reports" +msgstr "Laporan liputan" + +msgid "" +"Create a ``tabs.py`` file under the ``mypanel`` directory. Let's make a tab " +"group which has one tab. The completed code should look like the following::" +msgstr "" +"Buat file ``tabs.py`` di bawah direktori ``mypanel``. Mari kita membuat grup " +"tab yang memiliki satu tab. Kode yang sudah selesai akan terlihat seperti " +"berikut ::" + msgid "Create a subclass of :class:`~horizon.tables.DataTable`." msgstr "Buat subkelas dari :class:`~horizon.tables.DataTable`." @@ -2194,6 +2321,12 @@ msgid "" msgstr "" "Buat kelas inner ``Meta`` untuk memuat opsi-opsi khusus untuk tabel ini." +msgid "Creating a dashboard" +msgstr "Membuat dasbor" + +msgid "Creating a panel" +msgstr "Membuat panel" + msgid "Creating a table is fairly simple:" msgstr "Membuat tabel cukup sederhana:" @@ -2270,6 +2403,9 @@ msgstr "" msgid "DataTables Topic Guide" msgstr "Panduan Topik DataTables" +msgid "Debugging Unit Tests" +msgstr "Tes Unit Debugging" + msgid "Debugging with ``pdb`` becomes much simpler to interact with." msgstr "Debugging dengan ``pdb`` menjadi lebih mudah untuk berinteraksi." @@ -2337,10 +2473,19 @@ msgstr "" msgid "Define columns on it using :class:`~horizon.tables.Column`." msgstr "Tentukan kolom di atasnya menggunakan :class:`~horizon.tables.Column`." +msgid "Defining a dashboard" +msgstr "Menentukan dasbor" + msgid "" "Defining a form_field for each Column that we want to be in-line edited." msgstr "Menentukan form_field untuk setiap Column yang ingin diedit sebaris." +msgid "Defining a panel" +msgstr "Mendefinisikan panel" + +msgid "Defining a table" +msgstr "Mendefinisikan tabel" + msgid "" "Defining an ``get_data`` method in a class inherited from ``tables.Row``. " "This method takes care of fetching the row data. This class has to be then " @@ -2350,6 +2495,9 @@ msgstr "" "Row``. Metode ini menangani pengambilan data baris. Kelas ini kemudian harus " "didefinisikan dalam tabel kelas Meta sebagai ``row_class = UpdateRow``." +msgid "Defining tabs" +msgstr "Menentukan tab" + msgid "" "Dependency checks: XStatic checks that dependencies, such as fonts and " "JavaScript libs, are available in downstream distributions." @@ -2357,6 +2505,13 @@ msgstr "" "Pemeriksaan dependensi: Pemeriksaan XStatic bahwa dependensi, seperti font " "dan lib JavaScript, tersedia di distribusi downstream." +msgid "" +"Designing your code with a functional testing perspective in mind helps keep " +"a higher-level viewpoint in mind." +msgstr "" +"Merancang kode Anda dengan mempertimbangkan perspektif pengujian fungsional " +"membantu menjaga sudut pandang tingkat yang lebih tinggi dalam pikiran." + msgid "Determine if agiven filter field should be used as an API filter." msgstr "" "Tentukan apakah suatu field filter yang diberikan harus digunakan sebagai " @@ -2402,6 +2557,13 @@ msgstr "" "Menentukan apakah alur kerja dapat diselesaikan oleh pengguna yang diberikan " "saat runtime berdasarkan pada semua informasi yang tersedia." +msgid "Did I mention that setting it up is a pain?" +msgstr "Apakah saya menyebutkan bahwa pengaturannya itu menyakitkan?" + +msgid "Difficult and time-consuming to create a repeatable test environment." +msgstr "" +"Sulit dan menyita waktu untuk menciptakan lingkungan pengujian yang berulang." + msgid "" "Directives do not require the module name but are encouraged to begin with " "the ``hz`` prefix. For example: ::" @@ -2489,6 +2651,23 @@ msgstr "" msgid "Does a panel have to be an app in ``INSTALLED_APPS``?" msgstr "Apakah panel harus menjadi aplikasi di ``INSTALLED_APPS``?" +msgid "" +"Doesn't offer any insight into the quality or status of the underlying code, " +"only verifies that it works or it doesn't." +msgstr "" +"Tidak menawarkan wawasan apa pun tentang kualitas atau status kode yang " +"mendasarinya, hanya memverifikasi bahwa kode itu berfungsi atau tidak." + +msgid "Doesn't rely on assumptions about the inputs and outputs." +msgstr "Tidak mengandalkan asumsi tentang input dan output." + +msgid "" +"Don't forget to remove any pseudo translated ``.pot`` or ``.po`` files. " +"Those should **not** be submitted for review." +msgstr "" +"Jangan lupa untuk menghapus file pseudo yang diterjemahkan ``.pot`` atau ``." +"po``. Itu **not** harus diserahkan untuk ditinjau." + msgid "" "Don't put API calls in context processors; they will be called once for each " "template/template fragment which takes context that is used to render the " @@ -2586,6 +2765,9 @@ msgstr "" "disimpan pada permintaan untuk menentukan peran pengguna. Informasi ini " "diekstraksi dari bukti yang diterima dari Keystone ketika diautentikasi." +msgid "Easy to be lax in writing them, or lazy in constructing them." +msgstr "Mudah longgar dalam menulisnya, atau malas membangunnya." + msgid "Editing Horizon's Source" msgstr "Mengedit Sumber Horizon" @@ -2617,6 +2799,11 @@ msgstr "" "Pastikan informasi versi dalam file `xstatic/pkg/<package name>/__init__." "py` adalah yang terbaru, terutama` BUILD`." +msgid "" +"Ensures that your code *always* meets the stated functional requirements." +msgstr "" +"Pastikan kode Anda *always* memenuhi persyaratan fungsional yang dinyatakan." + msgid "" "Ensuring the level of testing is adequate and remains relevant as features " "are added" @@ -2641,6 +2828,9 @@ msgstr "Etiket" msgid "Evaluates whether this user has admin privileges." msgstr "Mengevaluasi apakah pengguna ini memiliki hak admin." +msgid "Every bug fix should have a regression test. Period." +msgstr "Setiap perbaikan bug harus memiliki tes regresi. Periode." + msgid "" "Every distribution must comply with the Filesystem Hierarchy Standards " "(FHS). The FHS defines a set of rules that we *must* follow as package " @@ -2727,6 +2917,9 @@ msgid "" msgstr "" "Pengecualian yang diajukan oleh kode Horizon dan mesin untuk menanganinya." +msgid "Expected Method Never Called" +msgstr "Metode yang Diharapkan Tidak Pernah Disebut" + msgid "Extends IPField to allow comma-separated lists of addresses." msgstr "" "Memperluas IPField untuk memungkinkan daftar alamat yang dipisahkan koma." @@ -2859,6 +3052,16 @@ msgstr "" "mengerjakannya. Namun, mendapatkan konfirmasi independen (dan memverifikasi " "bahwa itu bukan duplikat) selalu merupakan ide bagus jika Anda bisa bersabar." +msgid "" +"For client-side translation, Django embeds a corresponding Django message " +"catalog. Javascript code on the client can use this catalog to do string " +"replacement similar to how server-side translation works." +msgstr "" +"Untuk terjemahan sisi klien, Django menyematkan katalog pesan Django yang " +"sesuai. Kode Javascript pada klien dapat menggunakan katalog ini untuk " +"melakukan penggantian string yang mirip dengan cara kerja terjemahan sisi " +"server." + msgid "" "For convenience it defaults to the value of ``request.get_full_path()`` with " "any query string stripped off, e.g. the path at which the table was " @@ -2876,6 +3079,9 @@ msgstr "" "dengan string kueri apa saja yang dilepas, misal jalur di mana alur kerja " "diminta." +msgid "For detailed API information refer to the :ref:`ref-workflows`." +msgstr "Untuk informasi API terperinci, lihat :ref:`ref-workflows`." + msgid "" "For dynamic insertion of resources created in modals, this method returns " "the display name of the created object. Defaults to returning the ``name`` " @@ -2903,6 +3109,17 @@ msgstr "" "Instance, memiliki satu direktori per langkah. Lihat ``openstack_dashboard/" "dashboards/project/static/dashboard/project/workflow/launch-instance/``" +msgid "" +"For localization in AngularJS files, use the AngularJS service ``horizon." +"framework.util.i18n.gettext``. Ensure that the injected dependency is named " +"``gettext`` or ``nggettext``. If you do not do this, message extraction will " +"not work properly!" +msgstr "" +"Untuk lokalisasi dalam file AngularJS, gunakan layanan AngularJS ``horizon." +"framework.util.i18n.gettext``. Pastikan ketergantungan yang disuntikkan " +"bernama ``gettext`` atau ``nggettext``. Jika Anda tidak melakukan ini, " +"ekstraksi pesan tidak akan berfungsi dengan baik!" + msgid "For more detail, see :doc:`/configuration/settings`." msgstr "Untuk detail lebih lanjut, lihat :doc:`/configuration/settings`." @@ -2956,6 +3173,13 @@ msgstr "" "number. Cukup perbaiki kesalahan, tambahkan nomor build dan lepaskan paket " "yang lebih baru." +msgid "" +"For this tutorial, we will not deal with the static directory, or the " +"``tests.py`` file. Leave them as they are." +msgstr "" +"Untuk tutorial ini, kita tidak akan berurusan dengan direktori statis, atau " +"file ``tests.py``. Biarkan mereka apa adanya." + msgid "" "For usage information, tips & tricks and more examples check out the :ref:" "`topics-datatables`." @@ -3036,6 +3260,9 @@ msgstr "Dari sana Anda dapat mengakses semua metode utama yang Anda butuhkan." msgid "Function was removed (hopefully it was deprecated)" msgstr "Fungsi telah dihapus (mudah-mudahan itu sudah ditinggalkan)" +msgid "Functional tests" +msgstr "Tes fungsional" + msgid "General-purpose decorators for use with Horizon." msgstr "Dekorator tujuan umum untuk digunakan dengan Horizon." @@ -3308,6 +3535,19 @@ msgstr "" "packages/horizon``, dan di Debian/Ubuntu itu ada di ``/usr/lib/python2.7/" "dist-packages/horizon``." +msgid "" +"Horizon provides a :class:`~horizon.forms.SelfHandlingForm` :class:`~horizon." +"tables.DataTable` class which simplifies the vast majority of displaying " +"data to an end-user. We're just going to skim the surface here, but it has a " +"tremendous number of capabilities. Create a ``tables.py`` file under the " +"``mypanel`` directory and add the following code::" +msgstr "" +"Horizon menyediakan kelas :class:`~horizon.forms.SelfHandlingForm` :class:" +"`~horizon.tables.DataTable` yang menyederhanakan sebagian besar menampilkan " +"data ke end-user. Kami hanya akan membaca sekilas permukaannya di sini, " +"tetapi ia memiliki sejumlah kemampuan yang luar biasa. Buat file ``tables." +"py`` di bawah direktori ``mypanel`` dan tambahkan kode berikut::" + msgid "" "Horizon provides a base test case class which provides several useful pre-" "prepared attributes for testing Horizon components." @@ -3315,6 +3555,15 @@ msgstr "" "Horizon menyediakan kelas kasus uji dasar yang menyediakan beberapa atribut " "pre-prepared yang berguna untuk menguji komponen Horizon." +msgid "" +"Horizon provides a custom management command to create a typical base " +"dashboard structure for you. Run the following commands in your Horizon root " +"directory. It generates most of the boilerplate code you need::" +msgstr "" +"Horizon menyediakan perintah manajemen khusus untuk membuat struktur dasbor " +"dasar khas untuk Anda. Jalankan perintah berikut di direktori root Horizon " +"Anda. Ini menghasilkan sebagian besar kode boilerplate yang Anda butuhkan::" + msgid "" "Horizon provides the :mod:`horizon.tables` module to provide a convenient, " "reusable API for building data-driven displays and interfaces. The core " @@ -3326,6 +3575,13 @@ msgstr "" "berbasis data. Komponen inti dari API ini terbagi dalam tiga kategori: " "``DataTables``, ``Actions``, dan ``Class-based Views``." +msgid "" +"Horizon provides three types of basic action classes which can be taken on a " +"table's data:" +msgstr "" +"Horizon menyediakan tiga jenis kelas tindakan dasar yang dapat diambil pada " +"data tabel:" + msgid "" "Horizon ships with a single point of contact for hooking into your project " "if you aren't developing your own :class:`~horizon.Dashboard` or :class:" @@ -3392,6 +3648,14 @@ msgstr "" "Horizon hulu. Untuk informasi tentang cara membuat branding/theming Anda " "sendiri, lihat :ref:`install-customizing`." +msgid "" +"Horizon uses ``mox`` as its mocking framework of choice, and while it offers " +"many nice features, its output when a test fails can be quite mysterious." +msgstr "" +"Horizon menggunakan ``mox`` sebagai kerangka pilihan mengejeknya, dan " +"sementara ia menawarkan banyak fitur bagus, hasilnya ketika sebuah tes gagal " +"bisa sangat misterius." + msgid "" "Horizon uses ``tox`` to manage virtual environments for testing and other " "development tasks. You can install it with" @@ -3675,6 +3939,19 @@ msgstr "" "Jika hanya satu kelas tabel disediakan, variabel konteks ``table`` shortcut " "juga ditambahkan yang berisi tabel tunggal." +msgid "" +"If the error is in the Selenium test suite, you're likely getting very " +"little information about the error. To increase the information provided to " +"you, edit ``horizon/test/settings.py`` to set ``DEBUG = True`` and set the " +"logging level to 'DEBUG' for the default 'test' logger. Also, add a logger " +"config for Django::" +msgstr "" +"Jika kesalahan ada di suite uji Selenium, Anda kemungkinan akan mendapatkan " +"sedikit informasi tentang kesalahan tersebut. Untuk menambah informasi yang " +"diberikan kepada Anda, edit ``horizon/test/settings.py`` untuk mengatur " +"``DEBUG = True`` dan atur level logging ke 'DEBUG' untuk logger 'test' " +"default. Juga, tambahkan konfigurasi logger untuk Django :" + msgid "" "If the exception is not re-raised, an appropriate wrapper exception class " "indicating the type of exception that was encountered will be returned." @@ -3744,6 +4021,13 @@ msgstr "" "Jika nilainya sesuai dengan ``project_id`` tempat token pengguna dicakup, " "maka akses diizinkan." +msgid "" +"If there is unexpected wrapping/truncation there might not be enough space " +"for translations." +msgstr "" +"Jika ada wrapping/truncation yang tidak terduga, mungkin tidak ada cukup " +"ruang untuk terjemahan." + msgid "" "If those are too big, there are lots of great ways to get involved without " "plunging in head-first:" @@ -3774,6 +4058,28 @@ msgstr "" "dengan mencoba men-debug mengapa tes tertentu gagal, Anda dapat melewati " "intro dan langsung melompat ke :ref:`debugging_unit_tests`." +msgid "" +"If you are interested in contributing translations, you may want to " +"investigate `Zanata <https://translate.openstack.org>`_ and the `upstream " +"translations <https://docs.openstack.org/i18n/latest/>`_. You can visit the " +"internationalization project IRC channel **#openstack-i18n**, if you need " +"further assistance." +msgstr "" +"Jika Anda tertarik untuk berkontribusi terjemahan, Anda mungkin ingin " +"menyelidiki `Zanata <https://translate.openstack.org>`_ dan `upstream " +"translations <https://docs.openstack.org/i18n/latest/>`_. Anda dapat " +"mengunjungi saluran IRC proyek internasionalisasi **#openstack-i18n**, jika " +"Anda memerlukan bantuan lebih lanjut." + +msgid "" +"If you are setting up a project and need to know how to make it " +"translatable, please refer to `this guide <https://docs.openstack.org/infra/" +"manual/creators.html#enabling-translation-infrastructure>`_." +msgstr "" +"Jika Anda membuat proyek dan perlu tahu cara membuatnya diterjemahkan, " +"silakan merujuk `this guide <https://docs.openstack.org/infra/manual/" +"creators.html#enabling-translation-infrastructure>`_." + msgid "" "If you are unable to use existing variables - such as for very specific " "functionality - keep the new rules as specific as possible to your component " @@ -3784,6 +4090,17 @@ msgstr "" "mungkin untuk komponen Anda sehingga tidak menimbulkan masalah di tempat " "yang tidak terduga." +msgid "" +"If you are writing software for a global audience, you must ensure that it " +"is translated so that other people around the world are able to use it. " +"Adding translation to your code is not that hard and a requirement for " +"horizon." +msgstr "" +"Jika Anda menulis perangkat lunak untuk audiens global, Anda harus " +"memastikan bahwa itu diterjemahkan sehingga orang lain di seluruh dunia " +"dapat menggunakannya. Menambahkan terjemahan ke kode Anda tidak terlalu " +"sulit dan persyaratan untuk horizon." + msgid "" "If you can't run a virtual display, or would prefer not to, you can use the " "PhantomJS web driver instead::" @@ -3791,6 +4108,16 @@ msgstr "" "Jika Anda tidak dapat menjalankan tampilan virtual, atau memilih untuk tidak " "melakukannya, Anda dapat menggunakan driver web PhantomJS sebagai gantinya::" +msgid "" +"If you do the first suggestion above *first* it makes the second one far " +"less painful. Write once, use everywhere." +msgstr "" +"Jika Anda melakukan saran pertama di atas *first* itu membuat yang kedua " +"jauh lebih tidak menyakitkan. Tulis sekali, gunakan di mana-mana." + +msgid "If you get new crashes, there is probably a bug." +msgstr "Jika Anda mendapatkan crash baru, mungkin ada bug." + msgid "" "If you have an idea for a new feature that isn't in a blueprint yet, it's a " "good idea to write the blueprint first, so you don't end up writing a bunch " @@ -3812,6 +4139,34 @@ msgstr "" "Jika Anda perlu memperbarui catatan rilis dari rilis yang lalu, edit file " "catatan rilis yang sesuai di cabang stabil secara langsung." +msgid "If you see a string in English it's not translatable. Should it be?" +msgstr "" +"Jika Anda melihat string dalam bahasa Inggris, itu tidak dapat " +"diterjemahkan. Haruskah begitu?" + +msgid "" +"If you see a string in the proper translated language, it comes from an " +"external source. (That's not bad, just sometimes useful to know)" +msgstr "" +"Jika Anda melihat string dalam bahasa terjemahan yang tepat, itu berasal " +"dari sumber eksternal. (Itu tidak buruk, kadang-kadang hanya berguna untuk " +"mengetahui)" + +msgid "" +"If you see brackets next to each other that might be concatenation. " +"Concatenation can make quality translations difficult or impossible. See " +"`Use string formatting variables, never perform string concatenation " +"<https://wiki.openstack.org/wiki/I18n/" +"TranslatableStrings#Use_string_formating_variables.2C_never_perform_string_concatenation>`_ " +"for additional information." +msgstr "" +"Jika Anda melihat tanda kurung di samping satu sama lain yang mungkin " +"merupakan gabungan. Penggabungan dapat membuat terjemahan yang berkualitas " +"menjadi sulit atau tidak mungkin. Lihat `Use string formatting variables, " +"never perform string concatenation <https://wiki.openstack.org/wiki/I18n/" +"TranslatableStrings#Use_string_formating_variables.2C_never_perform_string_concatenation>`_ " +"untuk informasi tambahan." + msgid "" "If you turned compression off during development via ``COMPRESS_ENABLED = " "False`` in local_settings.py, re-enable compression and test your code " @@ -3832,6 +4187,33 @@ msgstr "" "dari ``openstack_dashboard/local/local_settings.py.example`` untuk " "melakukannya, pertama perbarui Horizon" +msgid "" +"If you use the ``tree mydashboard`` command to list the ``mydashboard`` " +"directory in ``openstack_dashboard/dashboards`` , you will see a directory " +"structure that looks like the following::" +msgstr "" +"Jika Anda menggunakan perintah ``tree mydashboard`` untuk membuat daftar " +"direktori ``mydashboard`` di ``openstack_dashboard/dashboards`` , Anda akan " +"melihat struktur direktori yang terlihat seperti berikut ::" + +msgid "" +"If you want the dashboard name to be something else, you can change the " +"``name`` attribute in the ``dashboard.py`` file . For example, you can " +"change it to be ``My Dashboard`` ::" +msgstr "" +"Jika Anda ingin nama dasbor menjadi sesuatu yang lain, Anda dapat mengubah " +"atribut ``name`` dalam file ``dashboard.py``. Misalnya, Anda dapat " +"mengubahnya menjadi ``My Dashboard`` ::" + +msgid "" +"If you want the panel name to be something else, you can change the ``name`` " +"attribute in the ``panel.py`` file . For example, you can change it to be " +"``My Panel``::" +msgstr "" +"Jika Anda ingin nama panel menjadi sesuatu yang lain, Anda dapat mengubah " +"atribut ``name`` dalam file ``panel.py``. Misalnya, Anda dapat mengubahnya " +"menjadi ``My Panel``::" + msgid "" "If you want to run the suite headless, without being able to see them (as " "they are ran on Jenkins), you can run the tests::" @@ -3858,6 +4240,9 @@ msgstr "" "kode yang tidak dipelihara, jadi jika bug ditemukan di hulu asli, itu tidak " "dapat dengan mudah diperbaiki dengan memperbarui satu paket." +msgid "In AngularJS templates" +msgstr "Dalam template AngularJS" + msgid "" "In Debian, it is generally forbidden to have multiple versions of the same " "library in the same Debian release. Very few exceptions exist." @@ -3865,9 +4250,40 @@ msgstr "" "Di Debian, umumnya dilarang memiliki beberapa versi dari perpustakaan yang " "sama dalam rilis Debian yang sama. Sangat sedikit pengecualian yang ada." +msgid "In Django" +msgstr "Dalam Django" + +msgid "In Django templates" +msgstr "Dalam template Django" + +msgid "In JavaScript" +msgstr "Dalam JavaScript" + msgid "In Keystone V3, region has been deprecated in favor of region_id." msgstr "Di Keystone V3, region sudah tidak digunakan lagi karena region_id." +msgid "" +"In ``urls.py``, we have the named parameter. E.g. ``resource_class_id``. ::" +msgstr "" +"Dalam ``urls.py``, kami memiliki parameter bernama. Misalnya. " +"``resource_class_id``. ::" + +msgid "" +"In ``views.py``, we pass data to the template and to the action(form) " +"(action can also pass data to the ``get_context_data`` method and to the " +"template). ::" +msgstr "" +"Dalam ``views.py``, kami meneruskan data ke template dan ke action (form) " +"(action juga dapat meneruskan data ke metode ``get_context_data`` dan ke " +"templat). ::" + +msgid "" +"In ``workflows.py`` we process the data, it is just more complex django " +"form. ::" +msgstr "" +"Dalam ``workflows.py`` kami memproses data, itu hanya bentuk Django yang " +"lebih kompleks. ::" + msgid "" "In addition to John Papa, the following guidelines are divided into required " "and recommended sections." @@ -3944,6 +4360,24 @@ msgstr "" "Horizon built untuk Django-1.8. Ini adalah upaya besar dan perlu dievaluasi " "dengan cermat." +msgid "" +"In order for translation to work properly, we need to know the user's " +"locale. In horizon, the user can specify the locale using the Settings " +"panel. Once we know the locale, we know which Portable Object (PO) file to " +"use. The PO file is the file we received from translators in the message " +"extraction process. The gettext functions that we wrapped our code around " +"are then able to replace the untranslated strings with the translated one by " +"using the untranslated string as the message id." +msgstr "" +"Agar terjemahan berfungsi dengan baik, kita perlu mengetahui lokal pengguna. " +"Di horizon, pengguna dapat menentukan lokal menggunakan panel Setting. " +"Setelah kami tahu lokalnya, kami tahu file Portable Object (PO) mana yang " +"akan digunakan. File PO adalah file yang kami terima dari penerjemah dalam " +"proses ekstraksi pesan. Fungsi gettext dimana kita membungkus kode kita, " +"kemudian fungsi gettext dapat mengganti string yang tidak diterjemahkan " +"dengan penterjemah yang menggunakan string yang tidak diterjemahkan sebagai " +"id pesan." + msgid "In our HTML files, we should focus on layout." msgstr "Dalam file HTML kita, kita harus fokus pada tata letak." @@ -3988,6 +4422,13 @@ msgstr "" "Jika tidak ada parameter permintaan GET, nilai parameter kueri tidak valid, " "atau tab tidak allowed/enabled, nilai balik fungsi ini adalah None." +msgid "" +"In the example above, we imported ``ugettext`` as ``_``. This is a common " +"alias for gettext or any of its variants." +msgstr "" +"Pada contoh di atas, kami mengimpor ``ugettext`` sebagai ``_``. Ini adalah " +"alias umum untuk gettext atau variannya." + msgid "" "In the first approach a jQuery object for ``document`` is created each time. " "The second approach creates only one jQuery object and reuses it. Each " @@ -4004,6 +4445,33 @@ msgstr "" "Dalam templat Anda hanya perlu menyertakan hal berikut untuk membuat " "(render) tabel::" +msgid "" +"In this case we want a starting view type that works with both tabs and " +"tables... that'd be the :class:`~horizon.tabs.TabbedTableView` class. It " +"takes the best of the dynamic delayed-loading capabilities tab groups " +"provide and mixes in the actions and AJAX-updating that tables are capable " +"of with almost no work on the user's end. Change ``views.APIView`` to be " +"``tabs.TabbedTableView`` and add ``MypanelTabs`` as the tab group class in " +"the ``IndexView`` class::" +msgstr "" +"Dalam hal ini kami ingin jenis view awal yang berfungsi dengan tab dan " +"tabel ... yang akan menjadi kelas :class: `~ horizon.tabs.TabbedTableView`. " +"Dibutuhkan yang terbaik dari kemampuan dinamis yang disediakan grup tab yang " +"disediakan dan digabungkan dalam tindakan dan pembaruan AJAX yang mampu " +"dilakukan tabel dengan hampir tidak ada pekerjaan di sisi pengguna. Ubah " +"``views.APIView`` menjadi ``tabs.TabbedTableView`` dan tambahkan " +"``MypanelTabs`` sebagai kelas grup tab di kelas ``IndexView``::" + +msgid "" +"In this scenario you may need to submit a secondary patch to address test " +"coverage for another function within horizon to ensure tests rise above the " +"coverage threshold and your original patch can pass the necessary tests." +msgstr "" +"Dalam skenario ini, Anda mungkin perlu mengirimkan patch sekunder untuk " +"mengatasi cakupan tes untuk fungsi lain dalam horizon untuk memastikan tes " +"naik di atas ambang batas cakupan dan patch asli Anda dapat lulus tes yang " +"diperlukan." + msgid "In-depth documentation for Horizon framework and its APIs." msgstr "Dokumentasi mendalam untuk kerangka Horizon dan API-nya." @@ -4077,6 +4545,9 @@ msgstr "Instruksi untuk pengaturan ESLint: `ESLint setup instructions`_" msgid "Integrating a new xstatic package into Horizon" msgstr "Mengintegrasikan paket xstatic baru ke Horizon" +msgid "Integration Tests" +msgstr "Tes Integrasi" + msgid "Interfacing with other OpenStack teams" msgstr "Berinteraksi dengan tim OpenStack lainnya" @@ -4181,6 +4652,17 @@ msgstr "" "Tidak disarankan agar catatan rilis individual menggunakan bagian **prelude " "** karena untuk highlight rilis." +msgid "" +"It is possible for tests to fail on your patch due to the npm-run-test not " +"passing the minimum threshold. This is not necessarily related directly to " +"the functions in the patch that have failed, but more that there are not " +"enough tests across horizon that are related to your patch." +msgstr "" +"Mungkin saja tes gagal pada patch Anda karena npm-run-test tidak melewati " +"ambang minimum. Ini tidak selalu terkait langsung dengan fungsi-fungsi dalam " +"patch yang gagal, tetapi lebih dari itu tidak ada cukup tes lintas horizon " +"yang terkait dengan patch Anda." + msgid "" "It is raised if required data is missing, or existing data is not valid." msgstr "" @@ -4248,6 +4730,19 @@ msgstr "" "``False`` untuk sebagian keberhasilan, misal ada kesalahan non-kritis. (Jika " "gagal sepenuhnya fungsi tidak akan kembali.)" +msgid "" +"It should look weird. More specifically, the translatable segments are going " +"to start and end with a bracket and they are going to have some added " +"characters. For example, \"Log In\" will become \"[~Log In~您好Ñшçã‚]\" This " +"is useful because you can inspect for the following, and consider if your " +"code is working like it should:" +msgstr "" +"Seharusnya terlihat aneh. Lebih khusus lagi, segmen yang diterjemahkan akan " +"mulai dan diakhiri dengan braket dan mereka akan memiliki beberapa karakter " +"tambahan. Misalnya, \"Log In\" akan menjadi \"[~Log In~您好Ñшçã‚]\" Ini " +"berguna karena Anda dapat memeriksa hal-hal berikut, dan mempertimbangkan " +"apakah kode Anda berfungsi seperti seharusnya:" + msgid "" "It's also possible to run a subset of the tests. Open ``tox.ini`` in the " "Horizon root directory to see a list of test environments. You can read more " @@ -4258,6 +4753,19 @@ msgstr "" "membaca lebih lanjut tentang tox secara umum di https://tox.readthedocs.io/" "en/latest/." +msgid "" +"It's also very common to avoid testing things you really care about because " +"it's more difficult. Verifying that the proper messages were displayed to " +"the user after an action, testing for form errors, making sure exception " +"handling is tested... these types of things aren't always easy, but they're " +"extremely necessary." +msgstr "" +"Juga sangat umum untuk menghindari pengujian hal-hal yang benar-benar Anda " +"pedulikan karena itu lebih sulit. Memverifikasi bahwa pesan yang tepat " +"ditampilkan kepada pengguna setelah tindakan, menguji kesalahan formulir, " +"memastikan penanganan pengecualian diuji ... hal-hal semacam ini tidak " +"selalu mudah, tetapi sangat perlu." + msgid "" "Its interface is very straightforward, but it is responsible for handling " "some very important tasks such as:" @@ -4337,6 +4845,33 @@ msgstr "" "WEBSSO_KEYSTONE_URL didefinisikan, nilainya akan digunakan. Kalau tidak, " "nilainya diturunkan dari: - OPENSTACK_KEYSTONE_URL - AVAILABLE_REGIONS" +msgid "" +"Lastly, this code introduces the concept of error handling in horizon. The :" +"func:`horizon.exceptions.handle` function is a centralized error handling " +"mechanism that takes all the guess-work and inconsistency out of dealing " +"with exceptions from the API. Use it everywhere." +msgstr "" +"Terakhir, kode ini memperkenalkan konsep penanganan kesalahan di horizon. " +"Fungsi :func:`horizon.exceptions.handle` adalah mekanisme penanganan " +"kesalahan terpusat yang menghilangkan semua dugaan dan inkonsistensi dari " +"berurusan dengan pengecualian dari API. Gunakan di mana-mana." + +msgid "" +"Lastly, we added a ``Meta`` class which indicates the meta object that " +"describes the ``instances`` table." +msgstr "" +"Terakhir, kami menambahkan kelas ``Meta`` yang menunjukkan objek meta yang " +"menggambarkan tabel ``instances``." + +msgid "" +"Limiting our focus just to unit tests, there are a number of things you can " +"do to make your unit tests as useful, maintainable, and unburdensome as " +"possible." +msgstr "" +"Membatasi fokus kami hanya untuk pengujian unit, ada sejumlah hal yang dapat " +"Anda lakukan untuk membuat tes unit Anda bermanfaat, dapat dipertahankan, " +"dan tidak memberatkan sebanyak mungkin." + msgid "Lines added to ``horizon/test/jasmine/jasmine_tests.py``:" msgstr "Baris ditambahkan ke ``horizon/test/jasmine/jasmine_tests.py``:" @@ -4372,6 +4907,9 @@ msgstr "Temukan tindakan yang sesuai dan rutekan data objek ke sana." msgid "Log error info when exception occurred." msgstr "Info kesalahan log saat pengecualian terjadi." +msgid "Log in and change to the language you pseudo translated." +msgstr "Masuk dan ubah ke bahasa yang Anda pseudo terjemahkan." + msgid "Log messages and print statements go directly to the console." msgstr "Log pesan dan cetak pernyataan langsung ke konsol." @@ -4421,6 +4959,50 @@ msgstr "" "Pastikan unit tes dan tugas serat lulus (linting tasks pass) dengan " "menjalankan ``tox``" +msgid "" +"Make sure there's nothing amiss in your templates (particularly the ``{% url " +"%}`` tag and its arguments). This often comes up when refactoring views or " +"renaming context variables. It can easily result in errors that you might " +"not stumble across while clicking around the development server." +msgstr "" +"Pastikan tidak ada yang salah dalam template Anda (terutama tag ``{% url %}" +"`` dan argumennya). Ini sering muncul ketika refactoring tampilan atau " +"mengubah nama variabel konteks. Ini dapat dengan mudah menghasilkan " +"kesalahan yang mungkin tidak Anda temui saat mengklik di sekitar server " +"pengembangan." + +msgid "" +"Make sure you repeat any stubbed out method calls that happen more than " +"once. They don't automatically repeat, you have to explicitly define them. " +"While this is a nuisance, it makes you acutely aware of how many API calls " +"are involved in a particular function." +msgstr "" +"Pastikan Anda mengulangi semua panggilan metode yang terhenti yang terjadi " +"lebih dari sekali. Mereka tidak secara otomatis mengulang, Anda harus " +"mendefinisikannya secara eksplisit. Meskipun ini merepotkan, ini membuat " +"Anda benar-benar sadar berapa banyak panggilan API yang terlibat dalam " +"fungsi tertentu." + +msgid "" +"Make sure you stub out the method exactly as it's called in the code being " +"tested. For example, if your real code calls ``api.keystone.tenant_get``, " +"stubbing out ``api.tenant_get`` (available for legacy reasons) will fail." +msgstr "" +"Pastikan Anda mematikan metode persis seperti yang disebut dalam kode yang " +"sedang diuji. Misalnya, jika kode asli Anda memanggil ``api.keystone." +"tenant_get``, mematikan ``api.tenant_get`` (tersedia untuk legacy reason) " +"akan gagal." + +msgid "" +"Make sure you're not redirecting to views that no longer exist, e.g. the " +"``index`` view for a panel that got combined (such as instances & volumes)." +msgstr "" +"Pastikan Anda tidak mengarahkan ulang ke tampilan yang tidak ada lagi, misal " +"tampilan ``index`` untuk panel yang digabungkan (seperti instance & volume)." + +msgid "Make sure your .pot files are up to date" +msgstr "Pastikan file .pot Anda terbaru" + msgid "" "Make sure your code is ready for translation: See :ref:`pseudo_translation`." msgstr "" @@ -4432,6 +5014,22 @@ msgid "" msgstr "" "Pastikan kode Anda mutakhir dengan master terbaru: ``git pull --rebase``" +msgid "" +"Make sure your mock calls are in order before calling ``mox.ReplayAll``. The " +"order matters." +msgstr "" +"Pastikan panggilan tiruan Anda sudah beres sebelum memanggil ``mox." +"ReplayAll``. Urutan itu penting." + +msgid "" +"Make sure your test data are completely in line with the expected inputs. " +"Again, ``str`` vs. ``int`` or missing properties on test objects will kill " +"your tests." +msgstr "" +"Pastikan data pengujian Anda sepenuhnya sejalan dengan input yang " +"diharapkan. Sekali lagi, ``str`` vs. ``int`` atau properti yang hilang pada " +"objek uji akan mematikan pengujian Anda." + msgid "" "Make use of Sphinx's autodoc feature to document modules, classes and " "functions. This keeps the docs close to the source." @@ -4439,9 +5037,21 @@ msgstr "" "Manfaatkan fitur autodoc Sphinx untuk mendokumentasikan modul, kelas, dan " "fungsi. Ini membuat dokumen dekat dengan sumbernya." +msgid "" +"Make your test data as accurate to reality as possible. Supply *all* the " +"attributes of an object, provide objects in all the various states you may " +"want to test." +msgstr "" +"Jadikan data pengujian Anda seakurat mungkin dengan kenyataan. Berikan *all* " +"atribut suatu objek, berikan objek di semua berbagai negara bagian yang " +"mungkin ingin Anda uji." + msgid "Making Contributions" msgstr "Membuat Kontribusi" +msgid "Making strings translatable" +msgstr "Membuat string dapat diterjemahkan" + msgid "Manageable" msgstr "Manageable" @@ -4477,6 +5087,29 @@ msgstr "" "Depends-On, sebenarnya aman untuk +W patch Horizon, yang akan ditahan hingga " "penggabungan patch upper-constraints.txt terkait." +msgid "Message Extraction" +msgstr "Ekstraksi Pesan" + +msgid "Message Substitution" +msgstr "Substitusi Pesan" + +msgid "" +"Message extraction is the process of collecting translatable strings from " +"the code. The diagram above shows the flow of how messages are extracted and " +"then translated. Lets break this up into steps we can follow:" +msgstr "" +"Ekstraksi pesan adalah proses mengumpulkan string yang dapat diterjemahkan " +"dari kode. Diagram di atas menunjukkan aliran bagaimana pesan diekstraksi " +"dan kemudian diterjemahkan. Mari kita bagi ini menjadi beberapa langkah yang " +"bisa kita ikuti: " + +msgid "" +"Message substitution is not the reverse process of message extraction. The " +"process is entirely different. Lets walk through this process." +msgstr "" +"Substitusi pesan bukanlah proses kebalikan dari ekstraksi pesan. Prosesnya " +"sama sekali berbeda. Mari kita berjalan melalui proses ini." + msgid "Metaclass to process ExternalFileField fields in a specific way." msgstr "" "Metaclass untuk memproses field ExternalFileField dengan cara tertentu." @@ -4518,6 +5151,25 @@ msgstr "Kebijakan Minified JavaScript" msgid "Mixin class to allow ModalFormView and WorkflowView together." msgstr "Kelas Mixin untuk memungkinkan ModalFormView dan WorkflowView bersama." +msgid "Mocking" +msgstr "Mocking" + +msgid "" +"Mocking is the practice of providing stand-ins for objects or pieces of code " +"you don't need to test. While convenient, they should be used with *extreme* " +"caution." +msgstr "" +"Mocking adalah praktik menyediakan pengamanan untuk objek atau potongan kode " +"yang tidak perlu Anda uji. Meskipun nyaman, mereka harus digunakan dengan " +"hati-hati *extreme*." + +msgid "" +"Modify the ``Mydashboard`` class to include ``Mygroup`` and add ``mypanel`` " +"as the default panel::" +msgstr "" +"Ubah kelas ``Mydashboard`` untuk memasukkan ``Mygroup`` dan tambahkan " +"``mypanel`` sebagai panel default::" + msgid "Module Structure" msgstr "Struktur Modul" @@ -4635,6 +5287,25 @@ msgstr "" msgid "Nova" msgstr "Nova" +msgid "" +"Now let's create and add a filter action to the table. To do so, we will " +"need to edit the ``tables.py`` file used above. To add a filter action which " +"will only show rows which contain the string entered in the filter field, we " +"must first define the action::" +msgstr "" +"Sekarang mari kita buat dan tambahkan aksi filter ke tabel. Untuk " +"melakukannya, kita perlu mengedit file ``tables.py`` yang digunakan di atas. " +"Untuk menambahkan tindakan filter yang hanya akan menampilkan baris yang " +"berisi string yang dimasukkan dalam bidang filter, pertama-tama kita harus " +"mendefinisikan tindakan (action)::" + +msgid "" +"Often requires writing a separate set of tests and/or using a different " +"testing framework from your unit tests." +msgstr "" +"Seringkali membutuhkan penulisan serangkaian tes terpisah dan/atau " +"menggunakan kerangka kerja pengujian yang berbeda dari tes unit Anda." + msgid "On RPM-based distributions (e.g., Fedora/RHEL/CentOS/Scientific Linux)" msgstr "" "Pada distribusi berbasis RPM (misal, Fedora/RHEL/CentOS/Scientific Linux)" @@ -4645,6 +5316,22 @@ msgstr "Pada Ubuntu" msgid "Once logged out, defines the URL where to redirect after login" msgstr "Setelah logout, tentukan URL tempat pengalihan setelah login" +msgid "" +"Once marked, we can then run ``tox -e manage -- extract_messages``, which " +"searches the codebase for these markers and extracts them into a Portable " +"Object Template (POT) file. In horizon, we extract from both the ``horizon`` " +"folder and the ``openstack_dashboard`` folder. We use the AngularJS " +"extractor for JavaScript and HTML files and the Django extractor for Python " +"and Django templates; both extractors are Babel plugins." +msgstr "" +"Setelah ditandai, kita dapat menjalankan ``tox -e manage -- " +"extract_messages``, yang mencari basis kode untuk marker ini dan " +"mengekstraknya menjadi file Portable Object Template (POT). Di horizon, kami " +"mengekstrak dari folder ``horizon`` dan folder ``openstack_dashboard``. Kami " +"menggunakan AngularJS extractor untuk JavaScript dan file HTML dan Django " +"extractor untuk templat Python dan Django; kedua ekstraktor adalah plugin " +"Babel." + msgid "" "Once the Horizon server is running, point a web browser to ``http://" "localhost`` or to the IP and port the server is listening for. Enter your " @@ -4731,6 +5418,33 @@ msgstr "" "default, ini akan menjalankan server pengembangan di ``http://" "localhost:8000``." +msgid "" +"Open the ``dashboard.py`` file again, insert the following code above the " +"``Mydashboard`` class. This code defines the ``Mygroup`` class and adds a " +"panel called ``mypanel``::" +msgstr "" +"Buka file ``dashboard.py`` lagi, masukkan kode berikut di atas kelas " +"``Mydashboard``. Kode ini mendefinisikan kelas ``Mygroup`` dan menambahkan " +"panel yang disebut ``mypanel`` ::" + +msgid "" +"Open the ``dashboard.py`` file. You will notice the following code has been " +"automatically generated::" +msgstr "" +"Buka file ``dashboard.py``. Anda akan melihat kode berikut telah dihasilkan " +"secara otomatis::" + +msgid "" +"Open the ``panel.py`` file, you will have the following auto-generated code::" +msgstr "" +"Buka file ``panel.py``, Anda akan memiliki kode yang dibuat secara otomatis " +"berikut::" + +msgid "" +"Open the ``views.py`` file, the auto-generated code is like the following::" +msgstr "" +"Buka file ``views.py``, kode yang dibuat secara otomatis seperti berikut::" + msgid "" "OpenStack Dashboard is an example of a Horizon-based Angular application. " "Other applications built on the Horizon framework can follow a similar " @@ -4817,6 +5531,9 @@ msgstr "Ganti untuk menyediakan fungsi penghapusan khusus untuk data Anda." msgid "Override to separate rows into categories." msgstr "Ganti untuk memisahkan baris ke dalam kategori." +msgid "Overview and Architecture" +msgstr "Tinjauan Umum dan Arsitektur" + msgid "" "Package build systems are disconnected from the outside network (for several " "reasons). Other packaging systems download dependencies directly from the " @@ -5045,6 +5762,9 @@ msgstr "" msgid "Provides the actual filtering logic." msgstr "Menyediakan logika penyaringan yang sebenarnya." +msgid "Pseudo translation tool" +msgstr "Alat terjemahan semu" + msgid "" "Pull that patch down so you have the edited upper-constraints.txt file " "locally." @@ -5209,6 +5929,16 @@ msgstr "" "Release versi Horizon baru yang kompatibel untuk mengatasi masalah dalam " "rilis xstatic baru:" +msgid "" +"Remember those markers we talked about earlier? Most of them are functions " +"like gettext or one of its variants. This allows the function to serve a " +"dual purpose - acting as a marker and also as a replacer." +msgstr "" +"Ingat marker yang kita bicarakan sebelumnya? Kebanyakan dari mereka adalah " +"fungsi seperti gettext atau salah satu variannya. Ini memungkinkan fungsi " +"untuk melayani tujuan ganda - bertindak sebagai penanda (marker) dan juga " +"sebagai pengganti (replacer)." + msgid "" "Removals and deprecations of back-end feature supports basically follows " "`the standard deprecation policy <https://governance.openstack.org/tc/" @@ -5283,6 +6013,13 @@ msgstr "" "Wajib. Nama pendek atau \"slug\" mewakili tindakan ini. Nama ini tidak boleh " "diubah saat runtime." +msgid "" +"Requires an additional layer of thinking to define functional requirements " +"in terms of inputs and outputs." +msgstr "" +"Membutuhkan lapisan pemikiran tambahan untuk mendefinisikan persyaratan " +"fungsional dalam hal input dan output." + msgid "Restart the web server." msgstr "Mulai ulang server web." @@ -5658,9 +6395,22 @@ msgstr "Baris mampu memperbarui AJAX, dengan sedikit pekerjaan tambahan:" msgid "Rule Targets" msgstr "Rule Targets" +msgid "" +"Run the pseudo tool to create pseudo translations. This example replaces the " +"German translation with a pseudo translation" +msgstr "" +"Jalankan alat pseudo (semu) untuk membuat terjemahan pseudo (semu). Contoh " +"ini menggantikan terjemahan Jerman dengan terjemahan semu" + +msgid "Run your development server." +msgstr "Jalankan server pengembangan Anda." + msgid "Running Tests" msgstr "Running Tests" +msgid "Running the pseudo translation tool" +msgstr "Menjalankan alat terjemahan semu" + msgid "Running unit tests at build time" msgstr "Menjalankan unit test pada waktu build" @@ -5710,6 +6460,13 @@ msgstr "" msgid "Scoped Keystone access info object" msgstr "Objek info akses Scoped Keystone" +msgid "" +"Screenshot directory could be set through horizon.conf file, default value: " +"``./integration_tests_screenshots``" +msgstr "" +"Direktori screenshot dapat diatur melalui file horizon.conf, nilai default: " +"``./integration_tests_screenshots``" + msgid "Second, you'll need to take care of a couple administrative tasks:" msgstr "Kedua, Anda harus mengurus beberapa tugas administrasi:" @@ -5897,6 +6654,19 @@ msgstr "" "pengecualian :exc:` ~horizon.exceptions.NotAuthenticated` jika pengguna " "tidak masuk." +msgid "" +"Similarly, don't mock return values when you could construct a real return " +"value of the correct type with the correct attributes. You're just adding " +"another point of potential failure by exercising your mocking framework " +"instead of real code. Following the suggestions for testing above will make " +"this a lot less burdensome." +msgstr "" +"Demikian pula, jangan mock nilai pengembalian ketika Anda bisa membangun " +"nilai pengembalian nyata dari jenis yang benar dengan atribut yang benar. " +"Anda hanya menambahkan titik kegagalan potensial lainnya dengan menggunakan " +"kerangka kerja mock Anda daripada kode sungguhan. Mengikuti saran untuk " +"pengujian di atas akan membuat ini jauh lebih tidak memberatkan." + msgid "Simple mix of ``DynamicChoiceField`` and ``TypedChoiceField``." msgstr "" "Campuran sederhana dari ``DynamicChoiceField`` dan ``TypedChoiceField``." @@ -5922,6 +6692,18 @@ msgstr "" msgid "So it's enough to just import and use them, e.g. ::" msgstr "Jadi cukup mengimpor dan menggunakannya saja, misal ::" +msgid "" +"So we have a table, ready to receive our data. We could go straight to a " +"view from here, but in this case we're also going to use horizon's :class:" +"`~horizon.tabs.TabGroup` class." +msgstr "" +"Jadi kami punya tabel, siap menerima data kami. Kita bisa langsung melihat " +"dari sini, tetapi dalam kasus ini kita juga akan menggunakan kelas horizon :" +"class: `~ horizon.tabs.TabGroup`." + +msgid "So what should I write?" +msgstr "Jadi apa yang harus saya tulis?" + msgid "Software packages" msgstr "Paket software" @@ -5955,6 +6737,17 @@ msgstr "" "Beberapa widget terbuat dari beberapa elemen HTML - yaitu, RadioSelect. Ini " "adalah kelas yang mewakili elemen HTML \"inner\" dari sebuah widget." +msgid "" +"Sometimes, it is helpful to provide some context via the ``comment`` " +"template tag. There a number of other tags and filters at your disposal " +"should you need to use them. For more information, see the `Django docs " +"<https://docs.djangoproject.com/en/1.8/topics/i18n/translation/>`_" +msgstr "" +"Terkadang, sangat membantu untuk menyediakan beberapa konteks melalui tag " +"template ``comment``. Ada sejumlah tag dan filter lain yang Anda inginkan " +"jika Anda perlu menggunakannya. Untuk informasi lebih lanjut, lihat `Django " +"docs <https://docs.djangoproject.com/en/1.8/topics/i18n/translation/>`_" + msgid "" "Source code changes aren't as easily lost when running ``unstack.sh`` / " "``stack.sh``" @@ -6250,6 +7043,9 @@ msgstr "" msgid "Tables" msgstr "Tables" +msgid "Tables, Tabs, and Views" +msgstr "Tables, Tabs, dan Views" + msgid "Tabs" msgstr "Tabs" @@ -6263,6 +7059,9 @@ msgstr "" msgid "Templates" msgstr "Templat" +msgid "Test data" +msgstr "Uji data" + msgid "Test if any of `subs` strings is present in the `url` path." msgstr "Uji apakah ada string `subs` di jalur `url`." @@ -6361,6 +7160,18 @@ msgstr "" "memungkinkan sebagian besar layanan yang didukung oleh Horizon dikelola, " "lihat :ref:`local-conf`" +msgid "" +"The Django message catalog is injected into the front-end. The gettext " +"function is available as a global function so you can just use it directly. " +"If you are writing AngularJS code, we prefer that you use the gettext " +"service, which is essentially a wrapper around the gettext function." +msgstr "" +"Katalog pesan Django disuntikkan (injected) ke front-end. Fungsi gettext " +"tersedia sebagai fungsi global sehingga Anda bisa menggunakannya secara " +"langsung. Jika Anda menulis kode AngularJS, kami lebih suka Anda menggunakan " +"layanan gettext, yang pada dasarnya adalah pembungkus di sekitar fungsi " +"gettext." + msgid "The Forms Module" msgstr "Forms Module" @@ -6556,6 +7367,19 @@ msgstr "" "Direktori ``openstack_dashboard`` berisi referensi proyek Django yang " "menggunakan ``horizon``." +msgid "" +"The ``panel.py`` file referenced above has a special meaning. Within a " +"dashboard, any module name listed in the ``panels`` attribute on the " +"dashboard class will be auto-discovered by looking for the ``panel.py`` file " +"in a corresponding directory (the details are a bit magical, but have been " +"thoroughly vetted in Django's admin codebase)." +msgstr "" +"File ``panel.py`` yang dirujuk di atas memiliki arti khusus. Di dalam " +"dasbor, setiap nama modul yang tercantum dalam atribut ``panel`` pada kelas " +"dasbor akan ditemukan secara otomatis dengan mencari file ``panel.py`` di " +"direktori yang sesuai (detailnya agak ajaib, tetapi telah diperiksa secara " +"menyeluruh dalam basis kode admin Django)." + msgid "" "The ``panels`` attribute can be either a flat list containing the name of " "each panel **module** which should be loaded as part of this dashboard, or " @@ -6609,6 +7433,14 @@ msgstr "" "Tindakan harus mengembalikan pengalihan HTTP jika berhasil, atau nilai yang " "mengevaluasi menjadi ``False`` jika tidak berhasil." +msgid "" +"The action specified above will default the ``filter_type`` to be ``\"query" +"\"``. This means that the filter will use the client side table sorter." +msgstr "" +"Tindakan (action) yang ditentukan di atas akan default ``filter_type`` " +"menjadi ``\"query\"``. Ini berarti bahwa filter akan menggunakan penyortir " +"tabel sisi klien." + msgid "" "The actions are rendered using the current row data. If `row` is True, the " "actions are rendered in a row of buttons. Otherwise they are rendered in a " @@ -6627,9 +7459,29 @@ msgstr "" "``form_field_attributes={'class': 'bold_input_field'}``. Defaults ke " "``None``." +msgid "" +"The annotations in the example above are guaranteed to work. However, not " +"all of the angular-gettext annotations are supported because we wrote our " +"own custom babel extractor. If you need support for the annotations, ask on " +"IRC in the **#openstack-horizon** room or report a bug. Also note that you " +"should avoid embedding HTML fragments in your texts because it makes it " +"harder to translate. Use your best judgement if you absolutely need to " +"include HTML." +msgstr "" +"Anotasi dalam contoh di atas dijamin berfungsi. Namun, tidak semua anotasi " +"angular-gettext didukung karena kami menulis ekstraktor babel kustom kami " +"sendiri. Jika Anda memerlukan dukungan untuk anotasi, tanyakan IRC di ruang " +"**#openstack-horizon** atau laporkan bug. Perhatikan juga bahwa Anda harus " +"menghindari menyisipkan fragmen HTML ke dalam teks Anda karena itu membuat " +"penerjemahan menjadi lebih sulit. Gunakan penilaian terbaik Anda jika Anda " +"benar-benar perlu memasukkan HTML." + msgid "The auto-generated URLconf for horizon. Usage::" msgstr "URLconf yang dibuat secara otomatis untuk horizon. Usage::" +msgid "The auto-generated ``urls.py`` file is like::" +msgstr "File ``urls.py`` auto-generated seperti::" + msgid "" "The automatic update interval is configurable by setting the key " "``ajax_poll_interval`` in the ``HORIZON_CONFIG`` dictionary. Default: " @@ -6789,6 +7641,13 @@ msgstr "" msgid "The community's guidelines for etiquette are fairly simple:" msgstr "Pedoman etiket komunitas cukup sederhana:" +msgid "The completed ``dashboard.py`` file should look like the following::" +msgstr "" +"File ``dashboard.py`` yang telah selesai akan terlihat seperti berikut::" + +msgid "The completed ``tables.py`` file should look like the following::" +msgstr "File ``tables.py`` yang sudah selesai akan terlihat seperti berikut::" + msgid "" "The connections between this step's fields and changes in the context data " "(e.g. if that piece of data changes, what needs to be updated in this step)." @@ -6803,6 +7662,17 @@ msgstr "" "Kelas inti yang mendefinisikan struktur tingkat tinggi dari tabel yang " "diwakili. Contoh::" +msgid "" +"The coverage reports may be found in the 'cover' directory. There's a " +"subdirectory for horizon and openstack_dashboard, and then under a directory " +"for the browser used to run the tests you should find an ``index.html``. " +"This can then be viewed to see the coverage details." +msgstr "" +"Laporan liputan dapat ditemukan di direktori 'cover'. Ada subdirektori untuk " +"horizon dan openstack_dashboard, dan kemudian di bawah direktori untuk " +"browser yang digunakan untuk menjalankan tes Anda harus menemukan ``index." +"html``. Ini kemudian dapat dilihat untuk melihat detail liputan." + msgid "" "The data object is looked up from the table's dataset and the data which " "matches the ``lookup`` parameter specified. An error will be raised if the " @@ -6943,9 +7813,25 @@ msgstr "" "atau tidak. Defaultnya adalah ``True``. Ini berguna ketika pilihan perlu " "ditampilkan secara kondisional." +msgid "" +"The first step is to mark untranslated strings so that the extractor is able " +"to locate them. Refer to the guide below on how to use translation and what " +"these markers look like." +msgstr "" +"Langkah pertama adalah menandai string yang tidak diterjemahkan sehingga " +"extractor dapat menemukannya. Lihat panduan di bawah ini tentang cara " +"menggunakan terjemahan dan seperti apa bentuk marker ini." + msgid "The first value is the filter parameter." msgstr "Nilai pertama adalah parameter filter." +msgid "" +"The following is a complex example of how data is exchanged between urls, " +"views, workflows and templates:" +msgstr "" +"Berikut ini adalah contoh kompleks tentang bagaimana data dipertukarkan " +"antara url, tampilan, alur kerja, dan template:" + msgid "" "The following is more example to run a specific test class and a specific " "test:" @@ -7059,6 +7945,22 @@ msgstr "" "Kelas :class:`~horizon.tables.DataTable` ada sehingga Anda tidak perlu " "menemukan kembali roda (wheel) setiap kali." +msgid "" +"The method is actually being called *multiple times*. Since mox uses a call " +"stack internally, it simply pops off the expected method calls to verify " +"them. That means once a call is used once, it's gone. An easy way to see if " +"this is the case is simply to copy and paste your method call a second time " +"to see if the error changes. If it does, that means your method is being " +"called more times than you think it is." +msgstr "" +"Metode ini sebenarnya disebut *multiple times*. Karena mox menggunakan " +"tumpukan panggilan secara internal, ia hanya memunculkan panggilan metode " +"yang diharapkan untuk memverifikasinya. Itu berarti sekali panggilan " +"digunakan sekali, itu hilang. Cara mudah untuk melihat apakah ini masalahnya " +"adalah dengan menyalin dan menempelkan panggilan metode Anda untuk kedua " +"kalinya untuk melihat apakah kesalahannya berubah. Jika ya, itu berarti " +"metode Anda dipanggil lebih dari yang Anda pikirkan." + msgid "" "The method is largely meant for internal use, but if you want to override it " "to provide custom behavior you can do so at your own risk." @@ -7291,6 +8193,22 @@ msgstr "" "aturan untuk menegakkan dari file kebijakan yang ditentukan oleh ruang " "lingkup. Contoh tuple adalah ::" +msgid "" +"The pseudo translation tool can be used to verify that code is ready to be " +"translated. The pseudo tool replaces a language's translation with a " +"complete, fake translation. Then you can verify that your code properly " +"displays fake translations to validate that your code is ready for " +"translation." +msgstr "" +"Alat terjemahan semu dapat digunakan untuk memverifikasi bahwa kode siap " +"diterjemahkan. Alat semu ini menggantikan terjemahan bahasa dengan " +"terjemahan palsu yang lengkap. Kemudian Anda dapat memverifikasi bahwa kode " +"Anda menampilkan terjemahan palsu dengan benar untuk memvalidasi bahwa kode " +"Anda siap untuk terjemahan." + +msgid "The quick version" +msgstr "Versi cepat" + msgid "" "The region will be switched if the given region is one of the regions " "available for the scoped project. Otherwise the region is not switched." @@ -7639,6 +8557,11 @@ msgstr "" msgid "Then you add a single line to your project's ``urls.py``" msgstr "Kemudian Anda menambahkan satu baris ke proyek Anda ``urls.py``" +msgid "Then, we add that action to the table actions for our table.::" +msgstr "" +"Kemudian, kami menambahkan action itu ke tindakan tabel (table action) untuk " +"tabel kami. ::" + msgid "" "There are a few settings that must be in place for the Horizon policy engine " "to work." @@ -7655,6 +8578,19 @@ msgstr "" "https://github.com/django/django/blob/master/django/template/defaultfilters." "py" +msgid "" +"There are a number of typical (and non-obvious) ways to break the unit " +"tests. Some common things to look for:" +msgstr "" +"Ada sejumlah cara khas (dan non-obvious) untuk memecahkan tes unit. Beberapa " +"hal umum yang harus dicari:" + +msgid "" +"There are also additional actions which are extensions of the basic Action " +"classes:" +msgstr "" +"Ada juga tindakan tambahan yang merupakan ekstensi dari basic Action classes:" + msgid "" "There are basically 3 things that need to be defined in the table in order " "to enable in-line editing." @@ -7662,6 +8598,13 @@ msgstr "" "Pada dasarnya ada 3 hal yang perlu didefinisikan dalam tabel untuk " "memungkinkan pengeditan in-line." +msgid "" +"There are lots of pre-built class-based views in horizon. We try to provide " +"the starting points for all the common combinations of components." +msgstr "" +"Ada banyak pre-built class-based view di horizon. Kami mencoba memberikan " +"titik awal (starting point) untuk semua kombinasi komponen yang umum." + msgid "There are multiple components in our JavaScript testing framework:" msgstr "Ada beberapa komponen dalam kerangka pengujian JavaScript kami:" @@ -7679,6 +8622,25 @@ msgstr "" "tindakan ini dan memberikan penanganan kesalahan yang konsisten, pencatatan, " "dan interaksi yang dihadapi pengguna." +msgid "" +"There are several things going on here... we created a table subclass, and " +"defined four columns that we want to retrieve data and display. Each of " +"those columns defines what attribute it accesses on the instance object as " +"the first argument, and since we like to make everything translatable, we " +"give each column a ``verbose_name`` that's marked for translation." +msgstr "" +"Ada beberapa hal yang terjadi di sini ... kami membuat subkelas tabel, dan " +"mendefinisikan empat kolom yang ingin kami ambil data dan tampilan. Masing-" +"masing kolom menentukan atribut apa yang diaksesnya pada objek instance " +"sebagai argumen pertama, dan karena kami ingin membuat semuanya " +"diterjemahkan, kami memberikan setiap kolom ``verbose_name`` yang ditandai " +"untuk terjemahan." + +msgid "" +"There are three main types of tests, each with their associated pros and " +"cons:" +msgstr "Ada tiga jenis tes utama, masing-masing dengan pro dan kontra terkait:" + msgid "" "There are two points in the request-response cycle in which actions can take " "place; prior to data being loaded into the table, and after the data is " @@ -7697,6 +8659,22 @@ msgstr "" "Ada juga tampilan berbasis kelas generik yang berguna dan sederhana untuk " "menangani tampilan dari kelas :class:`~horizon.tabs.TabGroup` ." +msgid "" +"These are generally also isolated tests, though sometimes they may interact " +"with other services running locally. The key difference between functional " +"tests and unit tests, however, is that functional tests are written from the " +"perspective of the user (who knows nothing about the code) and only knows " +"what they put in and what they get back. Essentially this is a higher-level " +"testing of \"does the result match the spec?\"." +msgstr "" +"Ini umumnya juga merupakan tes yang terisolasi, meskipun terkadang mereka " +"dapat berinteraksi dengan layanan lain yang berjalan secara lokal. Perbedaan " +"utama antara tes fungsional dan tes unit, adalah bahwa tes fungsional " +"ditulis dari sudut pandang pengguna (yang tidak tahu apa-apa tentang kode) " +"dan hanya tahu apa yang mereka masukkan dan apa yang mereka dapatkan " +"kembali. Pada dasarnya ini adalah pengujian tingkat lebih tinggi dari " +"\"does the result match the spec?\"." + msgid "" "These are isolated, stand-alone tests with no external dependencies. They " "are written from the perspective of \"knowing the code\", and test the " @@ -7735,6 +8713,14 @@ msgstr "" "Mereka menghargai komunitas pengembang dan pengguna yang sehat, bersemangat, " "dan aktif." +msgid "" +"Think long and hard about what you really want to verify in your unit test. " +"In particular, think about what custom logic your code executes." +msgstr "" +"Pikirkan panjang dan keras tentang apa yang benar-benar ingin Anda " +"verifikasi dalam pengujian unit Anda. Secara khusus, pikirkan logika kustom " +"apa yang dijalankan oleh kode Anda." + msgid "This action should not require user input on a per-object basis." msgstr "" "Tindakan ini seharusnya tidak memerlukan input pengguna pada basis per-objek." @@ -7905,6 +8891,14 @@ msgstr "" "Ini adalah daftar test environments yang tersedia untuk dijalankan oleh " "``tox -e <name>``." +msgid "" +"This is a slight simplification from the reality of how the instance object " +"is actually structured. In reality, accessing other attributes requires an " +"additional step." +msgstr "" +"Ini sedikit penyederhanaan dari kenyataan bagaimana objek contoh sebenarnya " +"terstruktur. Pada saat menerima, atribut diakses diperlukan langkah tambahan." + msgid "" "This is a special flavor of FileField which is meant to be used in cases " "when instead of uploading file to Django it should be uploaded to some " @@ -7975,6 +8969,15 @@ msgstr "" "Ini berguna ketika Anda ingin kesalahan API muncul sebagai kesalahan pada " "formulir daripada menggunakan kerangka pesan." +msgid "" +"This layer of testing involves testing all of the components that your " +"codebase interacts with or relies on in conjunction. This is equivalent to " +"\"live\" testing, but in a repeatable manner." +msgstr "" +"Lapisan pengujian ini melibatkan pengujian semua komponen yang berinteraksi " +"atau bergantung pada basis kode Anda bersamaan. Ini sama dengan pengujian " +"\"live\", tetapi dengan cara yang berulang." + msgid "This log can includes information below:" msgstr "Log ini dapat mencakup informasi di bawah ini:" @@ -8034,6 +9037,34 @@ msgstr "" "Kelas mixin ini akan digunakan bersama dengan kelas ModalFormView dan " "WorkflowView untuk menambahkannya dengan data konteks modal_backdrop." +msgid "" +"This occurs when you stubbed out a piece of code, and it was subsequently " +"called in a way that you didn't specify it would be. There are two reasons " +"this tends to come up:" +msgstr "" +"Ini terjadi ketika Anda mematikan sepotong kode, dan selanjutnya dipanggil " +"dengan cara yang tidak Anda tentukan. Ada dua alasan mengapa hal ini " +"cenderung muncul:" + +msgid "" +"This one is the opposite of the unexpected method call. This one means you " +"told mox to expect a call and it didn't happen. This is almost always the " +"result of an error in the conditions of the test. Using the :meth:" +"`~openstack_dashboard.test.helpers.TestCase.assertNoFormErrors` and :meth:" +"`~horizon.test.helpers.TestCase.assertMessageCount` will make it readily " +"apparent what the problem is in the majority of cases. If not, then use " +"``pdb`` and start interrupting the code flow to see where things are getting " +"off track." +msgstr "" +"Ini adalah kebalikan dari pemanggilan metode yang tidak terduga. Yang ini " +"berarti Anda memberi tahu mox untuk menunggu panggilan dan itu tidak " +"terjadi. Ini hampir selalu merupakan hasil dari kesalahan dalam kondisi " +"pengujian. Menggunakan :meth:`~openstack_dashboard.test.helpers.TestCase." +"assertNoFormErrors` dan :meth:`~horizon.test.helpers.TestCase." +"assertMessageCount` akan membuatnya jelas apa masalahnya dalam sebagian " +"besar kasus. Jika tidak, maka gunakan ``pdb`` dan mulailah menginterupsi " +"aliran kode untuk melihat di mana segala sesuatunya keluar jalur." + msgid "" "This optional static method can be used to specify conditions that need to " "be satisfied to load this panel. Unlike ``permissions`` and ``allowed`` this " @@ -8156,6 +9187,39 @@ msgstr "" "digunakan untuk perbandingan dengan penyedia layanan. Seharusnya tidak " "bertentangan dengan id penyedia layanan." +msgid "" +"This tab gets a little more complicated. The tab handles data tables (and " +"all their associated features), and it also uses the ``preload`` attribute " +"to specify that this tab shouldn't be loaded by default. It will instead be " +"loaded via AJAX when someone clicks on it, saving us on API calls in the " +"vast majority of cases." +msgstr "" +"Tab ini menjadi sedikit lebih rumit. Tab menangani tabel data (dan semua " +"fitur terkait), dan juga menggunakan atribut ``preload`` untuk menentukan " +"bahwa tab ini tidak boleh dimuat secara default. Sebagai gantinya itu akan " +"dimuat melalui AJAX ketika seseorang mengkliknya, menyelamatkan kami dari " +"panggilan API di sebagian besar kasus." + +msgid "" +"This tutorial assumes you have either a ``devstack`` or ``openstack`` " +"environment up and running. There are a variety of other resources which " +"may be helpful to read first. For example, you may want to start with the :" +"ref:`quickstart` or the `Django tutorial`_." +msgstr "" +"Tutorial ini mengasumsikan Anda memiliki lingkungan ``devstack`` atau " +"``openstack`` dan berjalan. Ada berbagai sumber daya lain yang mungkin " +"bermanfaat untuk dibaca terlebih dahulu. Sebagai contoh, Anda mungkin ingin " +"memulai dengan :ref: `quickstart` atau`Django tutorial`_." + +msgid "" +"This tutorial covers how to use the various components in horizon to build " +"an example dashboard and a panel with a tab which has a table containing " +"data from the back end." +msgstr "" +"Tutorial ini mencakup cara menggunakan berbagai komponen di horizon untuk " +"membuat contoh dasbor dan panel dengan tab yang memiliki tabel berisi data " +"dari back end." + msgid "" "This view handles selecting specific tabs and deals with AJAX requests " "gracefully." @@ -8206,6 +9270,9 @@ msgstr "" msgid "Timezone-aware checking of the auth token's expiration timestamp." msgstr "Pemeriksaan timezone-aware terhadap timestamp kedaluwarsa token." +msgid "Tips and tricks" +msgstr "Kiat dan trik" + msgid "" "To add a new dashboard to your project, you need to add a configuration file " "to ``openstack_dashboard/local/enabled`` directory. For more information on " @@ -8304,6 +9371,28 @@ msgstr "" msgid "To make a new release of the package, you need to:" msgstr "Untuk membuat rilis baru paket, Anda perlu:" +msgid "" +"To make your life even easier, if your codebase doesn't have a built-in ORM-" +"like function to manage your test data you can consider building (or " +"borrowing) one yourself. Being able to do simple retrieval queries on your " +"test data is incredibly valuable." +msgstr "" +"Untuk membuat hidup Anda lebih mudah, jika basis kode Anda tidak memiliki " +"built-in ORM-like function untuk mengelola data pengujian Anda, Anda dapat " +"mempertimbangkan untuk membangun (atau meminjam) sendiri. Mampu melakukan " +"kueri pengambilan sederhana pada data pengujian Anda sangat berharga." + +msgid "" +"To make your strings translatable, you need to mark it so that horizon can " +"locate and extract it into a POT file. When a user from another locale " +"visits your page, your string is replaced with the correct translated " +"version." +msgstr "" +"Untuk membuat string Anda dapat diterjemahkan, Anda harus menandainya " +"sehingga horizon dapat menemukan dan mengekstraknya ke file POT. Ketika " +"pengguna dari lokal lain mengunjungi halaman Anda, string Anda diganti " +"dengan versi terjemahan yang benar." + msgid "" "To manually add files, add the following arrays and file paths to the " "enabled file: ::" @@ -8339,6 +9428,69 @@ msgstr "" "`Installing MongoDB`_. Kemudian, ubah kunci ``bindIp`` di ``/etc/mongod." "conf`` menjadi ``0.0.0.0`` dan panggil ``sudo service mongod restart``." +msgid "" +"To that end, Horizon includes several custom assertions to make these tasks " +"easier. :meth:`~openstack_dashboard.test.helpers.TestCase." +"assertNoFormErrors`, :meth:`~horizon.test.helpers.TestCase." +"assertMessageCount`, and :meth:`~horizon.test.helpers.TestCase." +"assertNoMessages` all exist for exactly these purposes. Moreover, they " +"provide useful output when things go wrong so you're not left scratching " +"your head wondering why your view test didn't redirect as expected when you " +"posted a form." +msgstr "" +"Untuk itu, Horizon menyertakan beberapa pernyataan khusus untuk mempermudah " +"tugas-tugas ini. :meth:`~openstack_dashboard.test.helpers.TestCase." +"assertNoFormErrors`, :meth:`~horizon.test.helpers.TestCase." +"assertMessageCount`, dan :meth:`~horizon.test.helpers.TestCase." +"assertNoMessages` semua ada untuk tujuan ini. Selain itu, mereka memberikan " +"hasil yang bermanfaat ketika terjadi kesalahan sehingga Anda tidak perlu " +"menggaruk kepala bertanya-tanya mengapa uji tampilan Anda tidak mengarahkan " +"seperti yang diharapkan ketika Anda memposting formulir." + +msgid "" +"To translate a string, simply wrap one of the gettext variants around the " +"string. The examples below show you how to do translation for various " +"scenarios, such as interpolation, contextual markers and translation " +"comments." +msgstr "" +"Untuk menerjemahkan string, cukup bungkus (wrap) salah satu varian gettext " +"di sekitar string. Contoh di bawah ini menunjukkan kepada Anda bagaimana " +"melakukan terjemahan untuk berbagai skenario, seperti interpolasi, penanda " +"kontekstual dan komentar terjemahan." + +msgid "" +"To update the .po files, you can run ``tox -e manage -- update_catalog`` to " +"update the .po file for every language, or you can specify a specific " +"language to update like this: ``tox -e manage -- update_catalog de``. This " +"is useful if you want to add a few extra translatabale strings for a " +"downstream customisation." +msgstr "" +"Untuk memperbarui file .po, Anda dapat menjalankan ``tox -e manage -- " +"update_catalog`` untuk memperbarui file .po untuk setiap bahasa, atau Anda " +"dapat menentukan bahasa tertentu untuk diperbarui seperti ini: ``tox -e " +"manage -- update_catalog de``. Ini berguna jika Anda ingin menambahkan " +"beberapa string translatabale tambahan untuk kustomisasi hilir." + +msgid "" +"To use translation in your AngularJS template, use the translate tag or the " +"translate filter. Note that we are using `angular-gettext <https://angular-" +"gettext.rocketeer.be/>`_ for message substitution but not for message " +"extraction." +msgstr "" +"Untuk menggunakan terjemahan dalam template AngularJS Anda, gunakan tag " +"terjemahan atau filter terjemahan. Perhatikan bahwa kita menggunakan " +"`angular-gettext <https://angular-gettext.rocketeer.be/>` _ untuk substitusi " +"pesan tetapi tidak untuk ekstraksi pesan." + +msgid "" +"To use translation in your template, make sure you load the i18n module. To " +"translate a line of text, use the ``trans`` template tag. If you need to " +"translate a block of text, use the ``blocktrans`` template tag." +msgstr "" +"Untuk menggunakan terjemahan dalam templat Anda, pastikan Anda memuat modul " +"i18n. Untuk menerjemahkan satu baris teks, gunakan tag templat ``trans``. " +"Jika Anda perlu menerjemahkan blok teks, gunakan tag template ``blocktrans``." + msgid "" "Token object provides a consistent interface for accessing the keystone " "token information and service catalog." @@ -8352,6 +9504,9 @@ msgstr "Panduan Topik" msgid "Translation (Internationalization and Localization)" msgstr "Terjemahan (Internasionalisasi dan Pelokalan)" +msgid "Translation in Horizon" +msgstr "Terjemahan di Horizon" + msgid "Treat everyone respectfully and professionally." msgstr "Perlakukan semua orang dengan hormat dan profesional." @@ -8362,6 +9517,12 @@ msgstr "" "Tuples dalam daftar akan memiliki izin yang diperlukan jika pengguna " "memiliki izin yang cocok dengan salah satu elemen tupel itu" +msgid "Tutorial: Building a Dashboard using Horizon" +msgstr "Tutorial: Membangun Dashboard menggunakan Horizon" + +msgid "Tying it together in a view" +msgstr "Mengikatnya bersama dalam tampilan (view)" + msgid "URLs" msgstr "URLs" @@ -8374,6 +9535,15 @@ msgstr "" "menyentuh kode, tetapi jika kita mendapatkan semua tujuan lain maka kita " "bebas untuk fokus pada pengalaman terbaik." +msgid "Understanding the output from ``mox``" +msgstr "Memahami output dari ``mox``" + +msgid "Unexpected Method Call" +msgstr "Panggilan Metode Tak Terduga" + +msgid "Unit tests" +msgstr "Tes unit" + msgid "Unlike NON_FIELD_ERRORS, this doesn't fail form validation." msgstr "Tidak seperti NON_FIELD_ERRORS, ini tidak gagal validasi form." @@ -8416,9 +9586,52 @@ msgstr "" msgid "Use 2 spaces for code indentation." msgstr "Gunakan 2 spasi untuk indentasi kode." +msgid "" +"Use :meth:`~horizon.test.helpers.TestCase.assertMessageCount` and :meth:" +"`~horizon.test.helpers.TestCase.assertNoMessages` when a piece of code is " +"failing inexplicably. Since the core error handlers attach user-facing error " +"messages (and since the core logging is silenced during test runs) these " +"methods give you the dual benefit of verifying the output you expect while " +"clearly showing you the problematic error message if they fail." +msgstr "" +"Gunakan :meth: `~ horizon.test.helpers.TestCase.assertMessageCount` dan :" +"meth:` ~ horizon.test.helpers.TestCase.assertNoMessages` saat sepotong kode " +"gagal dijelaskan secara tidak dapat dijelaskan. Karena penangan kesalahan " +"inti melampirkan pesan kesalahan yang dihadapi pengguna (dan karena " +"pencatatan inti dibungkam selama pengujian berjalan) metode ini memberi Anda " +"manfaat ganda memverifikasi keluaran yang Anda harapkan sambil dengan jelas " +"menunjukkan kepada Anda pesan kesalahan yang bermasalah jika gagal." + +msgid "" +"Use :meth:`~openstack_dashboard.test.helpers.TestCase.assertNoFormErrors` " +"immediately after your ``client.post`` call for tests that handle form " +"views. This will immediately fail if your form POST failed due to a " +"validation error and tell you what the error was." +msgstr "" +"Gunakan :meth: `~ openstack_dashboard.test.helpers.TestCase." +"assertNoFormErrors` segera setelah panggilan ``client.post`` Anda untuk " +"pengujian yang menangani tampilan formulir. Ini akan segera gagal jika " +"formulir POST Anda gagal karena kesalahan validasi dan memberi tahu Anda apa " +"kesalahannya." + msgid "Use ESLint in your development environment." msgstr "Gunakan ESLint di lingkungan pengembangan Anda." +msgid "" +"Use Python's ``pdb`` module liberally. Many people don't realize it works " +"just as well in a test case as it does in a live view. Simply inserting " +"``import pdb; pdb.set_trace()`` anywhere in your codebase will drop the " +"interpreter into an interactive shell so you can explore your test " +"environment and see which of your assumptions about the code isn't, in fact, " +"flawlessly correct." +msgstr "" +"Gunakan modul ``pdb`` Python secara bebas. Banyak orang tidak menyadari itu " +"berfungsi dengan baik dalam kasus uji seperti halnya dalam tampilan " +"langsung. Cukup masukkan ``import pdb; pdb.set_trace()`` di mana pun di " +"basis kode Anda akan menjatuhkan penerjemah ke shell interaktif sehingga " +"Anda dapat menjelajahi lingkungan pengujian Anda dan melihat asumsi Anda " +"tentang kode yang sebenarnya tidak benar sempurna." + msgid "" "Use ``===`` as opposed to ``==`` for equality checks. The ``==`` will do a " "type cast before comparing, which can lead to unwanted results." @@ -8442,6 +9655,15 @@ msgstr "" "Gunakan pernyataan ``{ }`` untuk ``if``, ``for``, ``while`` dan jangan " "gabungkan dalam satu baris. ::" +msgid "" +"Use a single, consistent set of test data. Grow it over time, but do " +"everything you can not to fragment it. It quickly becomes unmaintainable and " +"perniciously out-of-sync with reality." +msgstr "" +"Gunakan satu set, data uji yang konsisten. Tumbuhkan dari waktu ke waktu, " +"tetapi lakukan segala yang Anda bisa untuk tidak memecahnya. Dengan cepat " +"menjadi tidak dapat dipelihara dan tidak sinkron dengan kenyataan." + msgid "" "Use proper grammar, spelling, capitalization and punctuation at all times." msgstr "" @@ -8506,6 +9728,13 @@ msgstr "Nilai dibandingkan dengan cara case-insensitive." msgid "Verifies that all required data is present in the context." msgstr "Memverifikasi bahwa semua data yang diperlukan ada dalam konteks." +msgid "" +"Verifies things from an \"end user\" perspective, which helps to ensure a " +"high-quality experience." +msgstr "" +"Memverifikasi hal-hal dari perspektif \"end user\", yang membantu " +"memastikan pengalaman berkualitas tinggi." + msgid "" "Verifying/validating the overall data integrity and subsequently triggering " "the final method to complete the workflow." @@ -8570,6 +9799,9 @@ msgstr "" "Kami akan mengonversi id objek dan ``lookup`` ke unicode sebelum " "perbandingan." +msgid "We'll create a panel and call it ``My Panel``." +msgstr "Kami akan membuat panel dan menyebutnya ``My Panel``." + msgid "" "We'll start by assuming you've got a working checkout of the repository (if " "not then please see the :ref:`quickstart`)." @@ -8577,16 +9809,29 @@ msgstr "" "Kami akan mulai dengan mengasumsikan Anda sudah memiliki checkout yang baik " "di repositori (jika tidak, silakan lihat :ref: `quickstart`)." +msgid "" +"We'll start with the table, combine that with the tabs, and then build our " +"view from the pieces." +msgstr "" +"Kami akan mulai dengan tabel, menggabungkan itu dengan tab, dan kemudian " +"membangun tampilan (view) kami dari potongan." + msgid "Websso is supported in Keystone version 3." msgstr "Websso didukung dalam Keystone versi 3." msgid "What does this mean for visual design?" msgstr "Apa artinya ini untuk desain visual?" +msgid "What is the point of translating my code?" +msgstr "Apa gunanya menerjemahkan kode saya?" + msgid "" "What is the relationship between ``Dashboards``, ``Panels``, and navigation?" msgstr "Apa hubungan antara ``Dashboards``, ``Panels``, dan navigasi?" +msgid "What makes a good unit test?" +msgstr "Apa yang membuat unit test bagus?" + msgid "When actions get run" msgstr "Ketika tindakan dijalankan" @@ -8611,6 +9856,13 @@ msgstr "" "Ketika dipanggil untuk aksi baris, objek data baris saat ini akan dilewatkan " "sebagai parameter pertama." +msgid "" +"When defining the expected input to a stubbed call, make sure the arguments " +"are *identical*, this includes ``str`` vs. ``int`` differences." +msgstr "" +"Ketika mendefinisikan input yang diharapkan untuk panggilan yang terhenti, " +"pastikan argumennya *identical*, ini termasuk perbedaan ``str`` vs ``int``." + msgid "" "When deriving the :class:`horizon.tables.Action` class for use in a table, " "if a policy check is desired for a particular target, the implementer should " @@ -8636,6 +9888,18 @@ msgstr "" "Ketika pengulangan (iterated), instance ``Row`` akan menghasilkan masing-" "masing selnya." +msgid "" +"When pushing code upstream, the only requirement is to mark the strings " +"correctly. All creation of POT and PO files is handled by a daily upstream " +"job. Further information can be found in the `translation infrastructure " +"documentation <https://docs.openstack.org/i18n/latest/infra.html>`_." +msgstr "" +"Saat mendorong kode ke atas, satu-satunya persyaratan adalah menandai string " +"dengan benar. Semua pembuatan file POT dan PO ditangani oleh pekerjaan hulu " +"harian. Informasi lebih lanjut dapat ditemukan di `translation " +"infrastructure documentation <https://docs.openstack.org/i18n/latest/infra." +"html>`_." + msgid "When returning, the loaded data is set on the tables." msgstr "Saat kembali, data yang dimuat diatur pada tabel." @@ -8668,6 +9932,22 @@ msgstr "" "Ketika daftar kosong dan atribut ``link`` bukan None, semua baris di bawah " "kolom ini akan menjadi tautan." +msgid "" +"When writing a new feature, think about writing unit tests to verify the " +"behavior step-by-step as you write the feature. Every time you'd go to run " +"your code by hand and verify it manually, think \"could I write a test to do " +"this instead?\". That way when the feature is done and you're ready to " +"commit it you've already got a whole set of tests that are more thorough " +"than anything you'd write after the fact." +msgstr "" +"Saat menulis fitur baru, pikirkan tentang menulis unit test untuk " +"memverifikasi perilaku langkah demi langkah saat Anda menulis fitur. Setiap " +"kali Anda menjalankan kode Anda dengan tangan dan memverifikasinya secara " +"manual, pikirkan \"could I write a test to do this instead?\". Dengan " +"begitu ketika fitur selesai dan Anda siap untuk melakukan itu, Anda sudah " +"memiliki seluruh rangkaian tes yang lebih menyeluruh daripada apa pun yang " +"Anda tulis setelah fakta." + msgid "" "Where possible, use Sphinx's cross-reference syntax (e.g. ``:class:`~horizon." "foo.Bar``) when referring to other Horizon components. The better-linked our " @@ -8713,6 +9993,36 @@ msgstr "" msgid "Why we use XStatic" msgstr "Mengapa kami menggunakan XStatic" +msgid "" +"Why? Because overuse of mocks can rapidly land you in a situation where " +"you're not testing any real code. All you've done is verified that your " +"mocking framework returns what you tell it to. This problem can be very " +"tricky to recognize, since you may be mocking things in ``setUp`` methods, " +"other modules, etc." +msgstr "" +"Mengapa? Karena terlalu sering mock bisa dengan cepat membuat Anda dalam " +"situasi di mana Anda tidak menguji kode nyata. Semua yang telah Anda lakukan " +"diverifikasi bahwa kerangka kerja mocking Anda mengembalikan apa yang Anda " +"katakan. Masalah ini bisa sangat sulit dikenali, karena Anda mungkin mocking " +"hal-hal dalam metode ``setUp``, modul lain, dll." + +msgid "Will take screenshot of the current page on test fail for easy debug" +msgstr "" +"Akan mengambil screenshot dari halaman saat ini pada pengujian gagal untuk " +"debug mudah" + +msgid "Will warn you when changes in external components break your code." +msgstr "" +"Akan memperingatkan Anda ketika perubahan komponen eksternal merusak kode " +"Anda." + +msgid "" +"With the rest of the files and directories in place, we can move on to add " +"our own dashboard." +msgstr "" +"Dengan sisa file dan direktori di tempatnya, kita dapat melanjutkan untuk " +"menambahkan dasbor kita sendiri." + msgid "" "Within the application, there is a simple method for registering a :class:" "`~horizon.Panel` (sub-navigation items). Each panel contains the necessary " @@ -8733,9 +10043,31 @@ msgstr "WorkflowView" msgid "Workflows" msgstr "Workflows" +msgid "Workflows Topic Guide" +msgstr "Panduan Topik Alur Kerja" + +msgid "" +"Workflows are complex forms with tabs, each workflow must consist of classes " +"extending the :class:`~horizon.workflows.Workflow`, :class:`~horizon." +"workflows.Step` and :class:`~horizon.workflows.Action`" +msgstr "" +"Alur kerja adalah bentuk kompleks dengan tab, setiap alur kerja harus " +"terdiri dari kelas yang memperpanjang :class:`~horizon.workflows.Workflow`, :" +"class:`~horizon.workflows.Step` dan :class:`~horizon.workflows.Action`" + msgid "Write documentation!" msgstr "Tulis dokumentasi!" +msgid "" +"Write tests that hit every view in your application. Even if they don't " +"assert a single thing about the code, it tells you that your users aren't " +"getting fatal errors just by interacting with your code." +msgstr "" +"Tulis tes yang mengenai setiap tampilan di aplikasi Anda. Bahkan jika mereka " +"tidak menyatakan satu hal pun tentang kode tersebut, ia memberi tahu Anda " +"bahwa pengguna Anda tidak mendapatkan kesalahan fatal hanya dengan " +"berinteraksi dengan kode Anda." + msgid "Write unit tests for untested code!" msgstr "Tulis tes unit untuk kode yang belum diuji!" @@ -8807,6 +10139,45 @@ msgstr "" "seperti ``dnf search foo``, atau ``zypper se -s foo``. `` dnf info foo`` " "mengembalikan informasi lebih rinci tentang paket tersebut." +msgid "" +"You can skip this section if you are only interested in learning how to use " +"translation. This section explains the two main components to translation: " +"message extraction and message substitution. We will briefly go over what " +"each one does for translation as a whole." +msgstr "" +"Anda dapat melewati bagian ini jika Anda hanya tertarik mempelajari cara " +"menggunakan terjemahan. Bagian ini menjelaskan dua komponen utama untuk " +"terjemahan: ekstraksi pesan dan substitusi pesan. Kami akan membahas secara " +"singkat apa yang masing-masing lakukan untuk terjemahan secara keseluruhan." + +msgid "" +"You defined the expected call, but a subtle difference crept in. This may be " +"a string versus integer difference, a string versus unicode difference, a " +"slightly off date/time, or passing a name instead of an id." +msgstr "" +"Anda mendefinisikan panggilan yang diharapkan, tetapi perbedaan yang halus " +"merayap masuk. Ini mungkin perbedaan string versus integer, string versus " +"perbedaan kode, date/time yang sedikit tidak aktif, atau meneruskan nama " +"daripada id." + +msgid "" +"You introduced an awesome piece of code and revel in your glorious " +"accomplishment. Suddenly your world comes crashing down when a core hands " +"you a -1 because your code is not translated. What gives?" +msgstr "" +"Anda memperkenalkan sepotong kode yang luar biasa dan menikmati pencapaian " +"gemilang Anda. Tiba-tiba dunia Anda runtuh ketika sebuah core memberi Anda " +"-1 karena kode Anda tidak diterjemahkan. Apa yang menyebabkannya?" + +msgid "" +"You will notice that the directory ``mydashboard`` gets automatically " +"populated with the files related to a dashboard and the ``mypanel`` " +"directory gets automatically populated with the files related to a panel." +msgstr "" +"Anda akan melihat bahwa direktori ``mydashboard`` secara otomatis diisi " +"dengan file yang terkait dengan dasbor dan direktori ``mypanel`` secara " +"otomatis diisi dengan file yang terkait dengan panel." + msgid "" "`Create a new repository under OpenStack`_. Use \"xstatic-core\" and " "\"xstatic-ptl\" groups for the ACLs. Make sure to include the ``-pypi-wheel-" -- GitLab