horizon 23.4.1.dev25 - en to id translation catalogue (1793 entries)

en: "Think simple" as my old master used to say - meaning reduce the whole of its parts into the simplest terms, getting back to first principles.
id: "Think simple" seperti yang dulu dikatakan oleh tuan lama saya (my old master) - artinya mengurangi seluruh bagiannya menjadi istilah yang paling sederhana, kembali ke prinsip pertama.

en: **app.module.js** - The root of the application. Defines the modules required by
id: **app.module.js** - Root aplikasi. Menentukan modul yang dibutuhkan oleh

en: **framework.module.js** - Reusable Horizon components. It is one of the
id: **framework.module.js** - Komponen Horizon yang dapat digunakan kembali (reusable). Itu adalah salah satu

en: /usr is considered read only. Software must not write in /usr at runtime. However, it is fine for a package post-installation script to write in /usr. When this rule was not followed, distributions had to write many tricks to convince Horizon to write in ``/var/lib`` only. For example, distributions wrote symlinks to ``/var/lib/openstack-dashboard``, or patched the default ``local_settings.py`` to write the ``SECRET_KEY`` in /var.
id: /usr dianggap hanya baca. Perangkat lunak tidak boleh menulis di /usr saat runtime. Namun, tidak masalah untuk menulis paket pasca instalasi untuk menulis di /usr. Ketika aturan ini tidak diikuti, distribusi harus menulis banyak trik untuk meyakinkan Horizon untuk menulis hanya dalam ``/var/lib``. Sebagai contoh, distribusi menulis symlinks ke ``/var/lib/openstack-dashboard``, atau patched ``local_settings.py`` default untuk menulis ``SECRET_KEY`` di /var.

en: :meth:`~horizon.tabs.Tab.get_context_data` method and the :meth:`~horizon.tabs.Tab.get_template_name` method are called.
id: Metodee :meth:`~horizon.tabs.Tab.get_context_data` dan metode  :meth:`~horizon.tabs.Tab.get_template_name` dipanggil.

en: :param component containing the view (panel or dashboard).
id: komponen :param yang berisi tampilan (panel atau dasbor).

en: :ref:`faq` Common questions and answers.
id: :ref:`faq` Pertanyaan dan jawaban umum

en: :ref:`glossary` Common terms and their definitions.
id: :ref:`glossary` Istilah umum dan definisi mereka.

en: :ref:`quickstart` A short guide to getting started with using Horizon.
id: :ref:`quickstart` Panduan singkat untuk memulai menggunakan Horizon.

en: A DataTable with support for Django Formsets.
id: DataTable dengan dukungan untuk Django Formsets.

en: A Horizon dashboard application is based around the :class:`~horizon.Dashboard` class that provides a consistent API and set of capabilities for both core OpenStack dashboard apps shipped with Horizon and equally for third-party apps. The :class:`~horizon.Dashboard` class is treated as a top-level navigation item.
id: Aplikasi dasbor Horizon berbasis di sekitar kelas :class:`~horizon.Dashboard` yang menyediakan API yang konsisten dan serangkaian kemampuan untuk kedua aplikasi dasbor OpenStack inti yang dikirimkan bersama Horizon dan juga untuk aplikasi pihak ketiga. Kelas :class:`~horizon.Dashboard` diperlakukan sebagai item navigasi tingkat atas.

en: A Tab class which knows how to deal with DataTable classes inside of it.
id: Kelas Tab yang tahu bagaimana menangani kelas DataTable di dalamnya.

en: A User class with some extra special sauce for Keystone.
id: Kelas pengguna dengan beberapa saus istimewa untuk Keystone.

en: A Workflow is a collection of Steps.
id: Alur Kerja adalah kumpulan Step.

en: A ``RequestFactory`` class which supports Django's ``contrib.messages`` framework via ``self.factory``.
id: Kelas ``RequestFactory`` yang mendukung kerangka kerja ``contrib.messages`` Django melalui ``self.factory``.

en: A ``Step`` class has the following attributes:
id: Kelas ``Step`` memiliki atribut berikut:

en: A base Form class which includes processing logic in its subclasses.
id: Kelas bentuk dasar yang mencakup pemrosesan logika dalam subclassnya.

en: A base class for defining Horizon dashboard panels.
id: Kelas dasar untuk mendefinisikan panel dasbor Horizon.

en: A base class for defining Horizon dashboards.
id: Kelas dasar untuk mendefinisikan dasbor Horizon.

en: A base class representing a filter action for a table.
id: Kelas dasar mewakili aksi filter untuk tabel.

en: A better approach: ::
id: Pendekatan yang lebih baik: ::

en: A boolean value which indicates whether or not this step has any errors on the action within it or in the scope of the workflow. This attribute will only accurately reflect this status after validation has occurred.
id: Nilai boolean yang menunjukkan apakah langkah ini memiliki kesalahan pada tindakan di dalamnya atau dalam lingkup alur kerja. Atribut ini hanya akan secara akurat mencerminkan status ini setelah validasi terjadi.

en: A callable to get the HTML attributes of a column cell depending on the data. For example, to add additional description or help information for data in a column cell (e.g. in Images panel, for the column 'format')::
id: Dapat dipanggil untuk mendapatkan atribut HTML dari sel kolom tergantung pada data. Misalnya, untuk menambahkan deskripsi tambahan atau informasi bantuan untuk data dalam sel kolom (misalnya di panel Image, untuk kolom 'format') ::

en: A callable used to render additional HTML attributes for the option object. It returns a dictionary containing the html attributes and their values. For example, to define a title attribute for the choices::
id: Sebuah callable digunakan untuk membuat atribut HTML tambahan untuk objek opsi. Ini mengembalikan kamus yang berisi atribut html dan nilainya. Misalnya, untuk menentukan atribut judul untuk choices::

en: A callable used to render the display value from the option object.
id: Sebuah callable digunakan untuk membuat nilai tampilan dari objek opsi.

en: A class made with ``django.forms.formsets.formset_factory`` containing the definition of the formset to use with this data table.
id: Kelas yang dibuat dengan ``django.forms.formsets.formset_factory`` berisi definisi formset untuk digunakan dengan tabel data ini.

en: A class which defines a table with all data and associated actions.
id: Kelas yang mendefinisikan tabel dengan semua data dan aksi terkait.

en: A class which represents a single column in a :class:`.DataTable`.
id: Kelas yang mewakili satu kolom dalam :class:`.DataTable`.

en: A class-based generic view to handle basic DataTable processing.
id: Tampilan generik berbasis kelas untuk menangani pemrosesan DataTable dasar.

en: 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.
id: 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.

en: A container class which knows how to manage and render Tab objects.
id: Kelas kontainer yang tahu cara mengelola dan merender objek Tab.

en: A container for a set of :class:`~horizon.Panel` classes.
id: Sebuah kontainer untuk satu set kelas :class:`~horizon.Panel`.

en: A core reviewer's responsibility doesn't end with merging code.
id: Tanggung jawab peninjau inti tidak berakhir dengan menggabungkan kode.

en: A custom CSS class or classes to add to the ``<table>`` tag of the rendered table, for when the particular table requires special styling. Default: ``""``.
id: Kelas CSS kustom atau kelas untuk ditambahkan ke ``<table>`` tag dari tabel yang diberikan, untuk saat tabel tertentu membutuhkan styling khusus. Default: ``""``.

en: 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.
id: 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.

en: A descriptive name used for display purposes. Defaults to the value of ``name`` with the first letter of each word capitalized.
id: Nama deskriptif yang digunakan untuk tujuan tampilan. Default untuk nilai ``name `` dengan huruf pertama dari setiap kata yang dikapitalisasi.

en: A developer building a package is comparable to an engineer building a car with only a manual and very few tools. If the engineer needs a specific tool to build the car, he must create the tool, too.
id: Pengembang yang membuat paket dapat dibandingkan dengan insinyur yang membuat mobil hanya dengan alat manual dan sangat sedikit. Jika insinyur membutuhkan alat khusus untuk membuat mobil, ia juga harus membuat alat itu.

en: A dict of HTML attribute strings which should be added to this column. Example: ``attrs={"data-foo": "bar"}``.
id: Sebuah dict string atribut HTML yang harus ditambahkan ke kolom ini. Contoh: ``attrs={"data-foo": "bar"}``.

en: A dict of HTML attribute strings which should be added when the column's text is displayed as a link. Examples: ``link_attrs={"data-foo": "bar"}``. ``link_attrs={"target": "_blank", "class": "link-foo link-bar"}``. Defaults to ``None``.
id: Sebuah dict string atribut HTML yang harus ditambahkan ketika teks kolom ditampilkan sebagai tautan. Examples: ``link_attrs={"data-foo": "bar"}``. ``link_attrs={"target": "_blank", "class": "link-foo link-bar"}``. Defaults untuk ``None``.

en: A dictionary of HTML attributes which should be rendered into the markup for this tab group.
id: Kamus atribut HTML yang harus dirender ke dalam markup untuk grup tab ini.

en: A dictionary of HTML attributes which should be rendered into the markup for this tab.
id: Kamus atribut HTML yang harus dirender ke dalam markup untuk tab ini.

en: A dictionary settings will be broken down into separate options. Good examples are ``OPENSTACK_KEYSTONE_BACKEND`` and ``OPENSTACK_NEUTRON_NETWORK``.
id: Pengaturan kamus akan dipecah menjadi opsi yang terpisah. Contoh yang baik adalah ``OPENSTACK_KEYSTONE_BACKEND`` dan ``OPENSTACK_NEUTRON_NETWORK``.

en: A dictionary which maps context data key names to lists of callbacks. The callbacks may be functions, dotted python paths to functions which may be imported, or dotted strings beginning with ``"self"`` to indicate methods on the current ``Step`` instance.
id: Kamus yang memetakan nama kunci data konteks ke daftar Callback. Callback dapat berupa fungsi, jalur dotted python ke fungsi yang dapat diimpor, atau string dotted yang diawali dengan ``"self"`` untuk menunjukkan metode pada instance ``Step`` saat ini.

en: A domain name is required if authenticating with Keystone V3 running multi-domain configuration.
id: Diperlukan nama domain jika mengautentikasi dengan Keystone V3 yang menjalankan konfigurasi multi-domain.

en: A dummy Auth object
id: Objek Auth dummy

en: A few simple guidelines:
id: Beberapa pedoman sederhana:

en: 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 predict due to the events being fired from the various switchable fields in order. You generally end up just having it hidden most of the time by accident, so it's not recommended. Instead just add a second field to the form and control the two independently, then merge their results in the form's clean or handle methods at the end.
id: Field hanya dapat dengan aman mendefinisikan satu slug dalam atribut ``"switch-on"``-nya. Sementara mengaktifkan beberapa field dimungkinkan, perilaku ini sangat sulit untuk diprediksi karena peristiwa yang dipecat dari berbagai field yang dapat diganti secara berurutan. Anda biasanya berakhir hanya dengan menyembunyikan sebagian besar waktu secara tidak sengaja, jadi tidak disarankan. Alih-alih, tambahkan saja field kedua ke formulir dan kendalikan keduanya secara mandiri, lalu gabungkan hasilnya di metode formulir atau pegangan formulir di bagian akhir.

en: A filter action with fixed buttons.
id: Aksi filter dengan tombol tetap.

en: A form field used for inline editing of the column. A django forms.Field can be used or django form.Widget can be used.
id: Bidang formulir (form field) yang digunakan untuk pengeditan sebaris kolom. forms.Field django dapat digunakan atau form.Widget django dapat digunakan.

en: A full reference is included below:
id: Referensi lengkap termasuk di bawah ini:

en: A full suite of test data through various attached objects and managers (e.g. ``self.servers``, ``self.user``, etc.). See the docs for :class:`~openstack_dashboard.test.test_data.utils.TestData` for more information.
id: Serangkaian lengkap data uji melalui berbagai objek dan manajer yang dilampirkan (misal. ``self.servers``, ``self.user``, dll.). Lihat dokumen untuk: class: `~openstack_dashboard.test.test_data.utils.TestData` untuk informasi lebih lanjut.

en: A general instruction on how to enable translation support is described in the Infrastructure User Manual [#]_.
id: Instruksi umum tentang cara mengaktifkan dukungan terjemahan dijelaskan dalam Infrastructure User Manual [#]_.

en: A generic view for displaying a :class:`horizon.tabs.TabGroup`.
id: Tampilan umum untuk menampilkan  :class:`horizon.tabs.TabGroup`.

en: A generic view which handles the intricacies of workflow processing.
id: Pandangan umum yang menangani seluk-beluk (intricacies) pemrosesan alur kerja.

en: 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.
id: 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.

en: A key of the top-level dict is a name of Django settings. A corresponding value specifies oslo.config name by a list or a tuple where the first and second elements specify a section and a option name respectively.
id: Kunci dari top-level dict adalah nama pengaturan Django. Nilai yang sesuai menentukan nama oslo.config berdasarkan daftar atau tuple dimana elemen pertama dan kedua menentukan bagian dan nama opsi masing-masing.

en: A label of a menu button for ``table_actions_menu``. The default is "Actions" or "More Actions" depending on ``table_actions``.
id: Label dari tombol menu untuk ``table_actions_menu``. Defaultnya adalah "Actions" atau "More Actions" bergantung pada ``table_actions``.

en: A list of :class:`.Tab` classes. Tabs specified here are displayed in the order of the list.
id: Daftar kelas :class:`.Tab`. Tab yang ditentukan di sini ditampilkan dalam urutan daftar.

en: A list of :class:`~horizon.workflows.Step` classes which serve as the starting point for this workflow's ordered steps. Defaults to an empty list (``[]``).
id: Daftar kelas :class: `~ horizon.workflows.Step` yang berfungsi sebagai titik awal untuk langkah-langkah yang diperintahkan alur kerja ini. Default ke daftar kosong (``[]``).

en: A list of CSS classes which should be displayed on this tab group.
id: Daftar kelas CSS yang harus ditampilkan pada grup tab ini.

en: A list of CSS classes which should be displayed on this tab.
id: Daftar kelas CSS yang harus ditampilkan pada tab ini.

en: A list of action classes derived from the :class:`~horizon.tables.Action` class. These actions will handle tasks such as bulk deletion, etc. for multiple objects at once.
id: Daftar kelas aksi berasal dari kelas :class:`~horizon.tables.Action`. Aksi ini akan menangani tugas seperti penghapusan massal, dll. untuk beberapa objek sekaligus.

en: A list of action classes similar to ``table_actions`` except these will be displayed in a menu instead of as individual buttons. Actions from this list will take precedence over actions from the ``table_actions`` list.
id: Daftar kelas aksi yang mirip dengan ``table_actions`` kecuali ini akan ditampilkan dalam menu, bukan sebagai tombol individu. Aksi dari daftar ini akan lebih diutamakan daripada aksi dari daftar ``table_actions``.

en: A list of column objects or column names. Controls ordering/display of the columns in the table.
id: Daftar objek kolom atau nama kolom. Kontrol pemesanan/tampilan (ordering/display) kolom di dalam tabel.

en: A list of context data keys which this step requires in order to begin interaction.
id: Daftar kunci data konteks yang diperlukan langkah ini untuk memulai interaksi.

en: A list of data types for which the link should be created. Default is an empty list (``[]``).
id: Daftar tipe data yang harus dibuat tautannya. Default adalah daftar kosong (``[]``).

en: A list of data types that this table would accept. Default to be an empty list, but if the attribute ``mixed_data_type`` is set to ``True``, then this list must have at least one element.
id: Daftar tipe data yang akan diterima oleh tabel ini. Default menjadi daftar kosong, tetapi jika atribut ``mixed_data_type`` diatur ke ``True``, maka daftar ini harus memiliki setidaknya satu elemen.

en: A list of dictionaries containing role names and ids as returned by Keystone.
id: Daftar kamus yang berisi nama peran dan id seperti yang dikembalikan oleh Keystone.

en: A list of functions (often template filters) to be applied to the value of the data for this column prior to output. This is effectively a shortcut for writing a custom ``transform`` function in simple cases.
id: Daftar fungsi (sering kali filter template) untuk diterapkan ke nilai data untuk kolom ini sebelum keluaran. Ini adalah cara pintas yang efektif untuk menulis fungsi ``transform`` kustom dalam kasus sederhana.

en: A list of keys which this step will contribute to the workflow's context data. Optional keys should still be listed, even if their values may be set to ``None``.
id: Daftar kunci yang langkah ini akan berkontribusi pada data konteks alur kerja. Kunci opsional masih harus didaftar, bahkan jika nilainya dapat diatur ke ``None``.

en: A list of non-identity service endpoint regions extracted from the service catalog.
id: Daftar wilayah endpoint layanan non-identitas yang diekstrak dari katalog layanan.

en: A list of panel module names which should be contained within this grouping.
id: Daftar nama modul panel yang harus ada dalam pengelompokan ini.

en: A list of permission names which this action requires in order to be completed. Defaults to an empty list (``[]``).
id: Daftar nama izin yang diperlukan tindakan ini untuk diselesaikan. Default ke daftar kosong  (``[]``).

en: A list of permission names which this tab requires in order to be displayed. Defaults to an empty list (``[]``).
id: Daftar nama izin yang diperlukan tab ini untuk ditampilkan. Default ke daftar kosong (``[]``).

en: A list of permission names which this table requires in order to be displayed. Defaults to an empty list (``[]``).
id: Daftar nama izin yang diperlukan tabel ini agar dapat ditampilkan. Default ke daftar kosong (``[]``).

en: A list of permission names, all of which a user must possess in order to access any panel registered with this dashboard. This attribute is combined cumulatively with any permissions required on individual :class:`~horizon.Panel` classes.
id: Daftar nama izin, yang semuanya harus dimiliki pengguna untuk mengakses panel apa pun yang terdaftar dengan dasbor ini. Atribut ini digabungkan secara kumulatif dengan izin yang diperlukan pada individu kelas :class:`~horizon.Panel`.

en: A list of permission names, all of which a user must possess in order to access any view associated with this panel. This attribute is combined cumulatively with any permissions required on the ``Dashboard`` class with which it is registered.
id: Daftar nama izin, yang semuanya harus dimiliki pengguna untuk mengakses tampilan apa pun yang terkait dengan panel ini. Atribut ini digabungkan secara kumulatif dengan izin yang diperlukan pada kelas ``Dashboard``  yang terdaftar.

en: A list or tuple of column names which represents the "state" of the data object being represented.
id: Daftar atau tuple nama kolom yang mewakili "state" dari objek data yang diwakili.

en: A list similar to ``table_actions`` except tailored to appear for each row. These actions act on a single object at a time.
id: Daftar yang mirip dengan ``table_actions`` kecuali disesuaikan untuk ditampilkan untuk setiap baris. Aksi ini bertindak pada objek tunggal pada suatu waktu.

en: A list that contains the allowed data types of the action.  If the datum's type is in this list, the action will be shown on the row for the datum.
id: Daftar yang berisi tipe data yang diizinkan dari tindakan. Jika tipe datum ada dalam daftar ini, tindakan akan ditampilkan pada baris untuk datum.

en: A mixin for DataTable to support Django Formsets.
id: Mixin untuk DataTable untuk mendukung Django Formsets.

en: A more verbose name for the table meant for display purposes.
id: Nama yang lebih verbose untuk tabel dimaksudkan untuk tujuan tampilan.

en: A new config option is added that the deployer should consider changing from the default
id: Opsi konfigurasi baru ditambahkan bahwa deployer harus mempertimbangkan perubahan dari standar

en: A new feature is implemented
id: Fitur baru diimplementasikan

en: A no-op on this class. Tables are handled at the tab level.
id: No-op di kelas ini. Tabel ditangani di tingkat tab.

en: A panel can live in any Python module. It can be a standalone which ties into an existing dashboard, or it can be contained alongside others within a larger dashboard "app". There is no strict enforcement here. Python is "a language for consenting adults." A module containing a Panel does not need to be added to ``INSTALLED_APPS``, but this is a common and convenient way to load a standalone panel.
id: Panel dapat hidup dalam modul Python apa pun. Ini bisa berupa standalone yang mengikat ke dashboard yang ada, atau bisa dimasukkan bersama yang lain di dalam "app" dashboard yang lebih besar. Tidak ada penegakan yang tegas di sini. Python adalah "a language for consenting adults." Modul yang berisi Panel tidak perlu ditambahkan ke ``INSTALLED_APPS``, tetapi ini adalah cara yang umum dan mudah untuk memuat panel mandiri.

en: A path to a template which contains more complex help text to be displayed alongside the Action's fields. In conjunction with :meth:`~horizon.workflows.Action.get_help_text` method you can customize your help text template to display practically anything.
id: Jalur ke template yang berisi teks bantuan yang lebih kompleks untuk ditampilkan di samping Action's fields.  Dalam hubungannya dengan metode :meth:`~horizon.workflows.Action.get_help_text` Anda dapat menyesuaikan template teks bantuan Anda untuk menampilkan apa saja secara praktis.

en: A path to a template which will be used to render this step. In general the default common template should be used. Default: ``"horizon/common/_workflow_step.html"``.
id: Jalur ke template yang akan digunakan untuk merender langkah ini. Secara umum template biasa default harus digunakan. Default: ``"horizon/common/_workflow_step.html"``.

en: A ready-to-go request object via ``self.request``.
id: Objek permintaan ready-to-go via ``self.request``.

en: A release note is suggested if a long-standing or important bug is fixed. Otherwise, a release note is not required.
id: Catatan rilis disarankan jika bug lama atau penting diperbaiki. Kalau tidak, catatan rilis tidak diperlukan.

en: A requested service is not available in the ``ServiceCatalog``.
id: Layanan yang diminta tidak tersedia di ``ServiceCatalog``.

en: A reusable interface for constructing a tab within a TabGroup.
id: Antarmuka yang dapat digunakan kembali untuk membuat tab di dalam TabGroup.

en: A roll-up list of all the ``contributes`` values compiled from the workflow's steps.
id: Daftar roll-up semua nilai ``contributes`` dikompilasi dari langkah-langkah alur kerja.

en: A roll-up list of all the ``depends_on`` values compiled from the workflow's steps.
id: Daftar roll-up semua nilai ``depend_on`` dikompilasi dari langkah-langkah alur kerja.

en: A second theme is provided by default at ``openstack_dashboard/themes/material/``. When adding new SCSS to horizon, you should check that it does not interfere with the Material theme. Images of how the Material theme should look can be found at https://bootswatch.com/3/paper/. This theme is now configured to run as the alternate theme within Horizon.
id: Tema kedua disediakan secara default di ``openstack_dashboard/themes/material/``.  Saat menambahkan SCSS baru ke horizon, Anda harus memeriksa bahwa itu tidak mengganggu tema Material. Images  tentang bagaimana tema Material seharusnya terlihat dapat ditemukan di https://bootswatch.com/3/paper/. Tema ini sekarang dikonfigurasi untuk dijalankan sebagai tema alternatif dalam Horizon.

en: A security bug is fixed
id: Bug keamanan diperbaiki

en: A security time margin in seconds before real expiration. Will return ``True`` if the token expires in less than ``margin`` seconds of time. A default margin can be set by the TOKEN_TIMEOUT_MARGIN in the django settings.
id: Batas waktu keamanan dalam detik sebelum kedaluwarsa nyata. Akan mengembalikan ``True`` jika token berakhir dalam waktu kurang dari ``margin`` detik. Margin default dapat ditetapkan oleh TOKEN_TIMEOUT_MARGIN dalam pengaturan Django.

en: A semi-unique slug for this action. Defaults to the "slugified" name of the class.
id: Slug semi-unique untuk aksi ini. Default untuk nama "slugified" dari kelas.

en: A set of request context data via ``self.context``.
id: Satu set data konteks permintaan via ``self.context``.

en: A short name or "slug" representing this action. Defaults to 'delete'
id: Nama pendek atau "slug" yang mewakili tindakan ini. Default untuk 'delete'

en: A short name or "slug" representing this action. Should be one word such as "delete", "add", "disable", etc.
id: Nama pendek atau "slug" yang mewakili tindakan ini. Harus berupa satu kata seperti  "delete", "add", "disable", dll.

en: A short name or slug for the table.
id: Nama pendek atau slug untuk table.

en: A simple form for selecting a range of time.
id: Bentuk sederhana untuk memilih rentang waktu.

en: A simplified example is as follows::
id: Contoh yang disederhanakan adalah sebagai berikut::

en: A string containing the name of a summation method to be used in the generation of a summary row for this column. By default the options are ``"sum"`` or ``"average"``, which behave as expected. Optional.
id: String yang berisi nama metode penjumlahan untuk digunakan dalam pembuatan ringkasan baris untuk kolom ini. Secara default, opsi adalah ``"sum"`` atau ``"average"``,  yang berperilaku seperti yang diharapkan. Optional.

en: A string of simple help text displayed in a tooltip when you hover over the help icon beside the Column name. Defaults to ``None``.
id: String teks bantuan sederhana yang ditampilkan di tooltip saat Anda mengarahkan kursor ke ikon bantuan di sebelah nama Column. Default untuk ``None``.

en: A string of simple help text to be displayed alongside the Action's fields.
id: String teks bantuan sederhana yang akan ditampilkan di samping Action's fields.

en: A string of simple help text which will be prepended to the ``Action`` class' help text if desired.
id: String teks bantuan sederhana yang akan ditambahkan ke teks bantuan ``Action`` class 'jika diinginkan.

en: A string or a callable which resolves to a url to be used as the link target. You must either define the ``url`` attribute or override the ``get_link_url`` method on the class.
id: String atau callable yang memutuskan untuk menggunakan url sebagai target tautan. Anda harus mendefinisikan atribut ``url`` atau mengganti metode ``get_link_url`` di kelas.

en: A string or callable to be used for cells which have no data. Defaults to the string ``"-"``.
id: String atau callable untuk digunakan untuk sel yang tidak memiliki data. Default ke string ``"-"``.

en: A string or callable which returns a URL which will be wrapped around this column's text as a link.
id: String atau callable yang mengembalikan URL yang akan melilit teks kolom ini sebagai tautan.

en: A string or callable. If ``transform`` is a string, it should be the name of the attribute on the underlying data class which should be displayed in this column. If it is a callable, it will be passed the current row's data at render-time and should return the contents of the cell. Required.
id: String atau callable. Jika ``transform `` adalah string, seharusnya nama atribut pada kelas data yang mendasari yang harus ditampilkan dalam kolom ini. Jika ini callable, itu akan melewati data baris saat ini pada waktu render dan harus mengembalikan isi sel. Wajib.

en: A string representing the name of the request parameter used for the search term. Default: ``"q"``.
id: String yang mewakili nama parameter permintaan yang digunakan untuk istilah pencarian. Default: ``"q"``.

en: A string representing the type of this filter. If this is set to ``"server"`` then ``filter_choices`` must also be provided. Default: ``"query"``.
id: String yang mewakili jenis filter ini. Jika ini disetel ke ``"server"`` maka ``filter_choices`` juga harus disediakan. Default: ``"query"``.

en: A string uniquely representing this row composed of the table name and the row data object's identifier.
id: String yang secara unik mewakili baris ini terdiri dari nama tabel dan pengidentifikasi objek data baris.

en: A string which will be displayed to the user upon failure to complete the workflow. Defaults to ``"{{ workflow.name }} did not complete."``
id: String yang akan ditampilkan kepada pengguna setelah gagal menyelesaikan alur kerja. Default ke ``"{{ workflow.name }} did not complete."``

en: A string which will be displayed to the user upon successful completion of the workflow. Defaults to ``"{{ workflow.name }} completed successfully."``
id: String yang akan ditampilkan kepada pengguna setelah berhasil menyelesaikan alur kerja. Default ke ``"{{ workflow.name }} completed successfully."``

en: A string which will be rendered as the link text. (Required)
id: String yang akan ditampilkan sebagai teks tautan. (Wajib)

en: A subclass of the ``Select`` widget which renders extra attributes for use in callbacks to handle dynamic changes to the available choices.
id: Sebuah subkelas dari widget ``Select`` yang membuat atribut tambahan untuk digunakan dalam callback untuk menangani perubahan dinamis pada pilihan yang tersedia.

en: A table action used to perform delete operations on table data.
id: Aksi tabel yang digunakan untuk melakukan operasi penghapusan pada data tabel.

en: A table action which is simply a link rather than a form POST.
id: Aksi tabel yang hanya berupa tautan daripada bentuk POST.

en: A table action which takes batch action on one or more objects.
id: Aksi tabel yang mengambil aksi batch pada satu atau lebih objek.

en: A time margin in seconds to subtract from the real token's validity. An example usage is that the token can be valid once the middleware passed, and invalid (timed-out) during a view rendering and this generates authorization errors during the view rendering. A default margin can be set by the TOKEN_TIMEOUT_MARGIN in the django settings.
id: Margin waktu dalam detik untuk mengurangi validitas token nyata. Contoh penggunaan adalah bahwa token dapat valid setelah middleware berlalu, dan tidak valid (habis waktu) selama rendering tampilan dan ini menghasilkan kesalahan otorisasi selama rendering tampilan. Margin default dapat ditetapkan oleh TOKEN_TIMEOUT_MARGIN dalam pengaturan Django.

en: A toggle to indicate if the table accepts two or more types of data. Optional. Default: ``False``
id: Sebuah toggle untuk menunjukkan jika tabel menerima dua atau lebih jenis data. Optional. Default: ``False``

en: A tuple of permission names, all of which the request user must possess in order access the decorated view.
id: Satu tupel nama permission, yang semuanya harus dimiliki oleh pengguna permintaan untuk mengakses tampilan yang dihias.

en: A tuple of tuples representing the possible data values for the status column and their associated boolean equivalent. Positive states should equate to ``True``, negative states should equate to ``False``, and indeterminate states should be ``None``.
id: Sebuah tuple dari beberapa tuple yang mewakili kemungkinan nilai data untuk kolom status dan persamaan boolean terkait. Positive state harus sama dengan ``True``, negative state harus sama dengan ``False``, dan status yang tidak ditentukan harus ``None``.

en: A tuple of tuples representing the possible values to substitute the data when displayed in the column cell.
id: Sebuah tuple dari beberapa tuple yang mewakili nilai yang mungkin untuk menggantikan data ketika ditampilkan dalam sel kolom.

en: A unique "short name" for the dashboard. The slug is used as a component of the URL path for the dashboard. Default: ``''``.
id:  "short name" unik untuk dasbor. Slug digunakan sebagai komponen dari jalur URL untuk dasbor. Default: `` '' ``.

en: A unique "short name" for the panel. The slug is used as a component of the URL path for the panel. Default: ``''``.
id: "short name" unik untuk panel. Slug digunakan sebagai komponen jalur URL untuk panel. Default: ``''``.

en: A unique string to identify this panel group. Required.
id: String unik untuk mengidentifikasi grup panel ini. Wajib.

en: A user-friendly name which will be used as the group heading in places such as the navigation. Default: ``None``.
id: Nama yang mudah digunakan yang akan digunakan sebagai judul grup di tempat-tempat seperti navigasi. Default: ``None``.

en: A valid filter function takes one parameter and returns the decorated value. So e.g. these are valid filter functions ::
id: Fungsi filter yang valid mengambil satu parameter dan mengembalikan nilai yang didekorasi. Misal, ini adalah fungsi filter yang valid ::

en: A very simple example::
id: Contoh yang sangat sederhana::

en: A workflow extends the ``extensibleService``. This means that all workflows inherit properties and methods provided by the ``extensibleService``. Extending a workflow allows you to add your own steps, remove existing steps, and inject custom data handling logic. Refer to inline documentation on what those properties and methods are.
id: Alur kerja (workflow) memperluas ``extensibleService``. Ini berarti bahwa semua alur kerja mewarisi properti dan metode yang disediakan oleh ``extensibleService``. Memperluas alur kerja memungkinkan Anda untuk menambahkan langkah-langkah Anda sendiri, menghapus langkah-langkah yang ada, dan menyuntikkan logika penanganan data khusus. Lihat dokumentasi sebaris tentang apa properti dan metode itu.

en: A wrapper around an action which defines its context in a workflow.
id: Wrapper di sekitar tindakan yang mendefinisikan konteksnya dalam alur kerja.

en: API resources tried to create already exists.
id: Sumber daya API yang coba dibuat sudah ada.

en: Accepts a single object id and performs the specific action.
id: Menerima id objek tunggal dan melakukan aksi spesifik.

en: Accepts a single object id passing it over to the delete method responsible for the object's destruction.
id: Menerima satu objek id yang meneruskannya ke metode penghapusan yang bertanggung jawab atas penghancuran objek.

en: Action classes which have their :attr:`~horizon.tables.Action.preempt` attribute set to ``True`` will be evaluated before any data is loaded into the table. As such, you must be careful not to rely on any table methods that require data, such as :meth:`~horizon.tables.DataTable.get_object_display` or :meth:`~horizon.tables.DataTable.get_object_by_id`. The advantage of preemptive actions is that you can avoid having to do all the processing, API calls, etc. associated with loading data into the table for actions which don't require access to that information.
id: Kelas tindakan yang memiliki atribut :attr:`~horizon.tables.Action.preempt` yang disetel ke ``True`` akan dievaluasi sebelum data dimasukkan ke dalam tabel. Karena itu, Anda harus berhati-hati untuk tidak bergantung pada metode tabel apa pun yang memerlukan data, seperti :meth:`~horizon.tables.DataTable.get_object_display` atau :meth:`~horizon.tables.DataTable.get_object_by_id`. Keuntungan dari tindakan pencegahan adalah bahwa Anda dapat menghindari keharusan melakukan semua pemrosesan, panggilan API, dll. yang terkait dengan memuat data ke dalam tabel untuk tindakan yang tidak memerlukan akses ke informasi itu.

en: Action entry point. Overrides base class' action method.
id: Titik masuk aksi. Menggantikan metode aksi kelas dasar.

en: Actions comprise any manipulations that might happen on the data in the table or the table itself. For example, this may be the standard object CRUD, linking to related views based on the object's id, filtering the data in the table, or fetching updated data when appropriate.
id: Tindakan terdiri dari manipulasi yang mungkin terjadi pada data dalam tabel atau tabel itu sendiri. Sebagai contoh, ini mungkin objek CRUD standar, menghubungkan ke tampilan terkait berdasarkan id objek, memfilter data dalam tabel, atau mengambil data yang diperbarui bila perlu.

en: Active and consistent review of review activity, bug triage and other activity will be performed periodically and fed back to the core reviewer team so everyone knows how things are progressing.
id: Tinjauan aktif dan konsisten atas aktivitas tinjauan, triase bug, dan aktivitas lain akan dilakukan secara berkala dan diumpankan kembali ke tim peninjau inti sehingga semua orang tahu bagaimana perkembangannya.

en: Actively reviewing patch submissions, considering whether the patch: - is functional - fits use cases and vision of the project - is complete in terms of testing, documentation, and release notes - takes into consideration upgrade concerns from previous versions
id: Secara aktif reviewing pengiriman patch, mempertimbangkan apakah patch: - berfungsi - sesuai dengan kasus penggunaan dan visi proyek - lengkap dalam hal pengujian, dokumentasi, dan catatan rilis - mempertimbangkan masalah peningkatan dari versi sebelumnya

en: Add a new panel/ panel group/ dashboard (See :ref:`tutorials-dashboard`). JavaScript file inclusion is the same as the Upstream process.
id: Tambahkan panel/ panel group/ dasbor baru (Lihat :ref: `tutorials-dashboard`). Penyertaan file JavaScript sama dengan proses Upstream.

en: Add or update proper bug tags
id: Tambahkan atau perbarui tag bug yang tepat

en: Add the feature to the ``MICROVERSION_FEATURES`` dict in ``openstack_dashboard/api/microversions.py`` under the appropriate service name. The feature should have at least two versions listed; the minimum version (i.e. the version that introduced the feature) and the current working version. Providing multiple versions reduces project maintenance overheads and helps Horizon work with older service deployments.
id: Tambahkan fitur ke dict `` MICROVERSION_FEATURES`` di ``openstack_dashboard/api/microversions.py`` di bawah nama layanan yang sesuai. Fitur tersebut harus memiliki paling tidak dua versi yang terdaftar; versi minimum (yaitu versi yang memperkenalkan fitur) dan versi kerja saat ini. Menyediakan beberapa versi mengurangi biaya pemeliharaan proyek dan membantu Horizon bekerja dengan penyebaran layanan yang lebih lama.

en: Add the new package to `global-requirements`_.
id: Tambahkan paket baru ke `global-requirements`_.

en: Added for maintaining backward compatibility with horizon that expects Token object in the user object.
id: Ditambahkan untuk menjaga kompatibilitas dengan horizon yang mengharapkan objek Token di objek pengguna.

en: Adding a complex action to a table
id: Menambahkan tindakan kompleks ke tabel

en: Adding a feature that was introduced in a microversion
id: Menambahkan fitur yang diperkenalkan dalam  microversion

en: Adding actions to a table
id: Menambahkan tindakan ke tabel

en: Adding new SCSS
id: Menambahkan SCSS baru

en: Adding the url
id: Menambahkan url

en: 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.
id: 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.

en: Additionally, we follow `Django's style guide`_ for templates, views, and other miscellany.
id: Selain itu, kami mengikuti `Django's style guide`_ untuk templat, tampilan, dan bermacam-macam lainnya.

en: Adds a ``{{ table_name }}_table`` item to the context for each table.
id: Menambahkan item ``{{ table_name }}_table`` ke konteks untuk setiap tabel.

en: Adds an error message to the workflow's Step.
id: Menambahkan pesan kesalahan ke Step alur kerja.

en: Adds an error to the Action's Step based on API issues.
id: Menambahkan kesalahan ke Action's Step berdasarkan masalah API.

en: Adds an error to the Step based on API issues.
id: Menambahkan kesalahan ke Step berdasarkan masalah API.

en: Adds an error to the form's error dictionary.
id: Menambahkan kesalahan ke kamus kesalahan formulir.

en: Adds the ``tab_group`` variable to the context data.
id: Menambahkan variabel ``tab_group`` ke data konteks.

en: Adds the data listed in ``contributes`` to the workflow's context.
id: Menambahkan data yang tercantum dalam ``contributes`` ke konteks alur kerja.

en: Adhere to Filesystem Hierarchy Standards (FHS). A specific file system layout is not required.
id: Patuhi Filesystem Hierarchy Standards (FHS). Tidak diperlukan tata letak sistem file tertentu.

en: Adopting oslo.log might be a good candidate, but it is not covered by this effort. It can be explored as future possible improvement.
id: Mengadopsi oslo.log mungkin kandidat yang baik, tetapi tidak dicakup oleh upaya ini. Ini dapat dieksplorasi sebagai perbaikan di masa depan.

en: After importing the proper package, the completed ``views.py`` file  now looks like the following::
id: Setelah mengimpor paket yang tepat, file ``views.py`` yang telah selesai sekarang tampak seperti berikut::

en: Again, readability is paramount; however be conscientious of how the browser will handle whitespace when rendering the output. Two spaces is the preferred indentation style to match all front-end code.
id: Sekali lagi, keterbacaan adalah yang terpenting; Namun berhati-hatilah dengan bagaimana browser akan menangani spasi ketika rendering output. Dua spasi adalah gaya lekukan yang disukai untuk mencocokkan semua kode front-end.

en: All Horizon dashboard panels should extend from this class. It provides the appropriate hooks for automatically constructing URLconfs, and providing permission-based access control.
id: Semua panel dashboard Horizon harus diperluas dari kelas ini. Ini menyediakan kait yang sesuai untuk secara otomatis membangun URLconfs, dan menyediakan kontrol akses berbasis izin.

en: All Horizon dashboards should extend from this base class. It provides the appropriate hooks for automatic discovery of :class:`~horizon.Panel` modules, automatically constructing URLconfs, and providing permission-based access control.
id: Semua dasbor Horizon harus diperluas dari kelas dasar ini. Ini menyediakan kait yang sesuai untuk penemuan otomatis :class:`~horizon.Panel` modules, secara otomatis membangun URLconfs, dan menyediakan kontrol akses berbasis izin.

en: All changes proposed to horizon require two +2 votes from the horizon core reviewers before one of the core reviewers can approve a change by giving "Workflow +1" vote.
id: Semua perubahan yang diusulkan ke horizon memerlukan dua  +2 votes dari peninjau inti horizon sebelum salah satu peninjau inti dapat menyetujui perubahan dengan memberikan suara  "Workflow +1" vote.

en: All common PTL duties are enumerated in the `PTL guide <https://docs.openstack.org/project-team-guide/ptl.html>`_.
id: Semua tugas PTL umum disebutkan di  `PTL guide <https://docs.openstack.org/project-team-guide/ptl.html>`_.

en: All other actions are checked to see if they should run.
id: Semua tindakan lain diperiksa untuk melihat apakah tindakan tersebut harus dijalankan.

en: All other exceptions bubble the stack as normal unless the ``ignore`` argument is passed in as ``True``, in which case only unrecognized errors are bubbled.
id: Semua pengecualian lainnya menggelembung (bubble) tumpukan seperti biasa kecuali argumen ``ignore`` dilewatkan sebagai ``True``, dalam hal ini hanya kesalahan yang tidak dikenali yang menggelembung.

en: All view which handles forms in Horiozn should inherit this class. It takes care of all details with processing :class:`~horizon.forms.base.SelfHandlingForm` classes, and modal concerns when the associated template inherits from `horizon/common/_modal_form.html`.
id: Semua pandangan (view) yang menangani form dalam Horiozn harus mewarisi kelas ini. Ini mengurus semua detail dengan memproses kelas :class:`~horizon.forms.base.SelfHandlingForm``, dan kekhawatiran modal ketika template terkait mewarisi dari `horizon/common/_modal_form.html`.

en: Also takes an alternative builder as an optional argument, such as ``tox -e docs -- <builder>``, which will output to ``doc/build/<builder>``. Available builders are listed at http://www.sphinx-doc.org/en/latest/builders.html
id: Juga mengambil pembuat alternatif sebagai argumen opsional, seperti ``tox -e docs -- <builder>``,  yang akan ditampilkan ke  ``doc/build/<builder>``. Pembangun yang tersedia terdaftar di http://www.sphinx-doc.org/en/latest/builders.html

en: Also takes an alternative builder as an optional argument, such as ``tox -e docs -- <builder>``, which will output to ``releasenotes/build/<builder>``. Available builders are listed at http://www.sphinx-doc.org/en/latest/builders.html
id: Juga mengambil pembuat alternatif sebagai argumen opsional, seperti ``tox -e docs -- <builder>``,  yang akan ditampilkan ke  ``releasenotes/build/<builder>``.  Pembangun yang tersedia terdaftar di http://www.sphinx-doc.org/en/latest/builders.html

en: Alternate Theme
id: Tema Alternatif

en: Alternatively, many distributions have system packages for PhantomJS, or it can be downloaded from http://phantomjs.org/download.html.
id: Atau, banyak distribusi memiliki paket sistem untuk PhantomJS, atau dapat diunduh dari  http://phantomjs.org/download.html.

en: Although DevStack installs and configures an instance of Horizon when running stack.sh, the preferred development setup follows the instructions above on the server/VM running DevStack. There are several advantages to maintaining a separate copy of the Horizon repo, rather than editing the DevStack installed copy.
id: Meskipun DevStack menginstal dan mengonfigurasi instance Horizon ketika menjalankan stack.sh, pengaturan pengembangan yang disukai mengikuti instruksi di atas pada server/VM yang menjalankan DevStack. Ada beberapa keuntungan untuk mempertahankan salinan repo Horizon yang terpisah, daripada mengedit salinan DevStack yang diinstal.

en: Although this tutorial focuses on extending a workflow, the steps here can easily be adapted to extend any service that inherited the ``extensibleService``. Examples of other extensible points include table columns and table actions.
id: Meskipun tutorial ini berfokus pada perluasan alur kerja, langkah-langkah di sini dapat dengan mudah diadaptasi untuk memperluas layanan apa pun yang mewarisi ``extensibleService``. Contoh poin yang dapat diperluas lainnya termasuk kolom tabel dan action tabel.

en: Always put ``var`` in front of your variables. Not putting ``var`` in front of a variable puts that variable into the global space, see above.
id: Selalu letakkan ``var`` di depan variabel Anda. Tidak menempatkan ``var`` di depan suatu variabel menempatkan variabel itu ke dalam ruang global, lihat di atas.

en: An AngularJS plugin is a collection of JavaScript files or static resources. Because it runs entirely in your browser, we need to place all of our static resources inside the ``static`` folder. This ensures that the Django static collector picks it up and distributes it to the browser correctly.
id: Plugin AngularJS adalah kumpulan file JavaScript atau sumber daya statis. Karena sepenuhnya berjalan di browser Anda, kami perlu menempatkan semua sumber daya statis kami di dalam folder ``static``. Ini memastikan bahwa kolektor statis Django mengambilnya dan mendistribusikannya ke browser dengan benar.

en: An ``Action`` represents an atomic logical interaction with the system.
id: ``Action`` mewakili interaksi logis atom dengan sistem.

en: An alternative function can be supplied to customize this behavior by specifying a either a URL or a function which returns a URL via the ``"user_home"`` key in ``HORIZON_CONFIG``. Each of these would be valid::
id: Fungsi alternatif dapat diberikan untuk menyesuaikan perilaku ini dengan menetapkan URL atau fungsi yang mengembalikan URL melalui tombol `` "user_home" `` dalam ``HORIZON_CONFIG``. Masing-masing ini akan valid ::

en: An application would have the following structure (we'll use project as an example)
id: Aplikasi akan memiliki struktur berikut (kami akan menggunakan proyek sebagai contoh)

en: An example of historically limiting, non-free software is Selenium. For a long time, Selenium was only available from the non-free repositories of Debian. The reason was that upstream included some .xpi binaries. These .xpi included some Windows .dll and Linux .so files. Because they could not be rebuilt from the source, all of python-selenium was declared non-free. If we made Horizon build-depends on python-selenium, this would mean Horizon wouldn't be in Debian main anymore (contrib and non-free are *not* considered part of Debian). Recently, the package maintainer of python-selenium decided to remove the .xpi files from python-selenium, and upload it to Debian Experimental (this time, in main, not in non-free). If at some point it is possible for Horizon to use python-selenium (without the non-free .xpi files), then we could run Selenium tests at package build time.
id: Contoh perangkat lunak yang secara historis membatasi, tidak bebas adalah Selenium. Untuk waktu yang lama, Selenium hanya tersedia dari repositori Debian yang tidak bebas. Alasannya adalah hulu termasuk beberapa binari .xpi. File .xpi ini menyertakan beberapa file .dll Windows dan Linux .so. Karena mereka tidak dapat dibangun kembali dari sumbernya, semua python-selenium dinyatakan tidak bebas. Jika kita membuat Horizon build-depend pada python-selenium, ini berarti Horizon tidak akan berada di main Debian lagi (contrib dan non-bebas *not* dianggap bagian dari Debian). Baru-baru ini, pengelola paket python-selenium memutuskan untuk menghapus file .xpi dari python-selenium, dan mengunggahnya ke Debian Experimental (kali ini, pada intinya, bukan dalam tidak bebas). Jika pada suatu saat Horizon dapat menggunakan python-selenium (tanpa file .xpi yang tidak bebas), maka kita dapat menjalankan tes Selenium pada waktu paket build.

en: An integer for the maximum length of the string in this column. If the length of the data in this column is larger than the supplied number, the data for this column will be truncated and an ellipsis will be appended to the truncated data. Defaults to ``None``.
id: Bilangan integer untuk panjang maksimum string dalam kolom ini. Jika panjang data dalam kolom ini lebih besar dari jumlah yang disediakan, data untuk kolom ini akan terpotong dan ellipsis akan ditambahkan ke data yang terpotong. Default untuk ``None``.

en: An iterable containing the :class:`~horizon.tables.DataTable` classes which this tab will contain. Equivalent to the :attr:`~horizon.tables.MultiTableView.table_classes` attribute on :class:`~horizon.tables.MultiTableView`. For each table class you need to define a corresponding ``get_{{ table_name }}_data`` method as with :class:`~horizon.tables.MultiTableView`.
id: Iterable berisi kelas :class: `~ horizon.tables.DataTable` yang akan berisi tab ini. Setara dengan atribut :attr: `~ horizon.tables.MultiTableView.table_classes` pada :class:`~horizon.tables.MultiTableView`. Untuk setiap kelas tabel, Anda perlu mendefinisikan metode ``get _ {{table_name}} yang sesuai seperti :class:`~horizon.tables.MultiTableView`.

en: An iterable of CSS classes which should be added to this column. Example: ``classes=('foo', 'bar')``.
id: Sebuah iterable kelas CSS yang harus ditambahkan ke kolom ini. Contoh: ``classes=('foo', 'bar')``.

en: An iterable of CSS classes which will be added when the column's text is displayed as a link. This is left for backward compatibility. Deprecated in favor of the link_attributes attribute. Example: ``link_classes=('link-foo', 'link-bar')``. Defaults to ``None``.
id: Sebuah iterable kelas CSS yang akan ditambahkan ketika teks kolom ditampilkan sebagai tautan. Ini dibiarkan untuk kompatibilitas ke belakang. Tidak lagi mendukung atribut link_attributes. Contoh: ``link_classes=('link-foo', 'link-bar')``. Defaults ke ``None``.

en: An object used by ChoiceFieldRenderer that represents a single <input type='$input_type'>.
id: Objek yang digunakan oleh ChoiceFieldRenderer yang mewakili satu <input type='$input_type'>.

en: An overview of testing
id: Ikhtisar pengujian

en: And in your ``sidebar.html`` you might have
id: Dan di ``sidebar.html`` Anda, Anda mungkin memilikinya

en: Angular specific testing
id: Pengujian spesifik sudut

en: Angular templates should have extension of ``.html``.
id: Templat sudut harus memiliki ekstensi ``.html``.

en: Angular's directives are prefixed with ng. Similarly, Horizon's directives are prefixed with hz. You can think of them as namespaces.
id: Arahan Angular diawali dengan ng. Demikian pula, arahan Horizon diawali dengan hz. Anda dapat menganggapnya sebagai ruang nama (namespace).

en: Angular: ifAllowed method
id: Angular: metode ifAllowed

en: AngularJS Topic Guide
id: Panduan Topik AngularJS

en: Another ``Step`` class. This attribute has the same purpose as :meth:`~horizon.workflows.Step.before` except that it will instead attempt to place the current step after the given step.
id: Kelas ``Step`` lainnya. Atribut ini memiliki tujuan yang sama dengan :meth:`~horizon.workflows.Step.before` kecuali bahwa ia akan mencoba untuk menempatkan langkah saat ini setelah langkah yang diberikan.

en: Another ``Step`` class. This optional attribute is used to provide control over workflow ordering when steps are dynamically added to workflows. The workflow mechanism will attempt to place the current step before the step specified in the attribute.
id: Kelas ``Step`` lainnya. Atribut opsional ini digunakan untuk memberikan kontrol atas pemesanan alur kerja ketika langkah-langkah ditambahkan secara dinamis ke alur kerja. Mekanisme alur kerja akan mencoba untuk menempatkan langkah saat ini sebelum langkah yang ditentukan dalam atribut.

en: Another idea is to introduce a new field to oslo.config classes. oslo-sample-generator might need to be updated. If this approach is really attractive, we can try this approach in future. The above dictionary-based approach will be used in the initial effort.
id: Gagasan lain adalah memperkenalkan field baru ke kelas oslo.config. oslo-sample-generator mungkin perlu diperbarui. Jika pendekatan ini benar-benar menarik, kita dapat mencoba pendekatan ini di masa depan. Pendekatan dictionary-based di atas akan digunakan dalam upaya awal.

en: Another reason to avoid copying a library into Horizon source code is that it might create conflicting licenses. Distributing sources with conflicting licenses in one tarball revokes rights in best case. In the worst case, you could be held legally responsible.
id: Alasan lain untuk menghindari menyalin pustaka ke kode sumber Horizon adalah bahwa hal itu dapat membuat lisensi yang bertentangan. Mendistribusikan sumber dengan lisensi yang bertentangan dalam satu tarball mencabut hak dalam best case. Dalam worst case, Anda dapat dianggap bertanggung jawab secara hukum.

en: Answering questions and participating in mailing list discussions
id: Menjawab pertanyaan dan berpartisipasi dalam diskusi milis

en: Any "preemptive" actions are checked to see if they should run.
id: Semua tindakan "preemptive" diperiksa untuk melihat apakah tindakan tersebut harus dijalankan.

en: Any remaining :class:`~horizon.Dashboard` classes registered with Horizon but not listed in ``HORIZON_CONFIG['dashboards']`` will be appended to the end of the list alphabetically.
id: Sisa: kelas  :class:`~horizon.Dashboard` terdaftar dengan Horizon tetapi tidak terdaftar di ``HORIZON_CONFIG ['dasbor']` `akan ditambahkan ke bagian akhir daftar menurut abjad.

en: Any time multiple rules are specified in a single `policy.check` method call, the result is the logical `and` of each rule check. So, if any rule fails verification, the result is `False`.
id: Setiap kali beberapa aturan ditentukan dalam pemanggilan metode `policy.check` tunggal, hasilnya adalah logika `and` dari setiap pemeriksaan aturan. Jadi, jika ada aturan yang gagal verifikasi, hasilnya adalah `False`.

en: Application Design
id: Application Design (desain aplikasi)

en: Application Structure
id: Struktur Aplikasi

en: As a developer, if you are going to add a library named "foo", the package must adhere to the following standards:
id: Sebagai pengembang, jika Anda akan menambahkan perpustakaan bernama "foo", paket harus mematuhi standar berikut:

en: As a project, Horizon adheres to code quality standards.
id: Sebagai sebuah proyek, Horizon mematuhi standar kualitas kode.

en: 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.
id: 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.

en: As described above, the ``mypanel`` directory under ``openstack_dashboard/dashboards/mydashboard`` should look like the following::
id: Seperti dijelaskan di atas, direktori ``mypanel`` di bawah ``openstack_dashboard/dashboards/mydashboard`` akan terlihat seperti berikut ::

en: As the first step toward ini-based-configuration, I propose to define all default values of existing settings in a single place per module. More specifically, the following modules are used:
id: Sebagai langkah pertama menuju konfigurasi berbasis ini, saya mengusulkan untuk mendefinisikan semua nilai default pengaturan yang ada di satu tempat per modul. Lebih khusus lagi, modul berikut digunakan:

en: As you can see, the main body will be defined in ``_create_snapshot.html``, so we must also create that file under the ``mypanel/templates/mypanel`` directory. It should contain the following code::
id: Seperti yang Anda lihat, isi utama akan didefinisikan dalam ``_create_snapshot.html``, jadi kita juga harus membuat file itu di bawah direktori ``mypanel/templates/mypanel``. Itu harus berisi kode berikut ::

en: Assertions and verification
id: Penegasan dan verifikasi

en: Asserts no messages have been attached by the messages framework.
id: Menyatakan tidak ada pesan yang dilampirkan oleh kerangka pesan.

en: Asserts that the expected number of messages have been attached.
id: Menyatakan bahwa jumlah pesan yang diharapkan telah dilampirkan.

en: Asserts that the given response issued a 302 redirect without processing the view which is redirected to.
id: Menyatakan bahwa respons yang diberikan mengeluarkan 302 redirect tanpa memproses tampilan yang dialihkan ke.

en: Asserts that the response does contain a form in its context, and that form has errors, if count were given, it must match the exact numbers of errors
id: Menegaskan bahwa respons memang berisi formulir dalam konteksnya, dan formulir itu memiliki kesalahan, jika penghitungan diberikan, harus sesuai dengan jumlah kesalahan yang tepat

en: Asserts that the response does contain a workflow in its context, and that workflow has errors, if count were given, it must match the exact numbers of errors
id: Menyatakan bahwa respons memang mengandung alur kerja dalam konteksnya, dan alur kerja tersebut memiliki kesalahan, jika dihitung, ia harus cocok dengan jumlah kesalahan yang tepat

en: Asserts that the response either does not contain a form in its context, or that if it does, that form has no errors.
id: Menyatakan bahwa respons tidak mengandung formulir dalam konteksnya, atau bahwa jika itu terjadi, formulir itu tidak memiliki kesalahan.

en: Asserts that the response either does not contain a workflow in its context, or that if it does, that workflow has no errors.
id: Menyatakan bahwa respons tidak mengandung alur kerja dalam konteksnya, atau bahwa jika itu terjadi, alur kerja itu tidak memiliki kesalahan.

en: Assign the importance. If it breaks horizon basic functionality, the importance should be marked as "Critical" or "High".
id: Tetapkan kepentingannya. Jika itu merusak fungsionalitas dasar horizon, kepentingan harus ditandai sebagai "Critical" atau "High".

en: Assist in bug triage and delivery of bug fixes
id: Membantu dalam triage bug dan pengiriman perbaikan bug

en: Assuming you implemented ``my_rest_api.py``, you can use a REST client to hit the url directly and test it. There should be many REST clients available on your web browser.
id: Dengan asumsi Anda menerapkan ``my_rest_api.py``, Anda dapat menggunakan klien REST untuk menekan url secara langsung dan mengujinya. Seharusnya ada banyak klien REST yang tersedia di browser web Anda.

en: At its core, **Horizon should be a registration pattern for applications to hook into**. Here's what that means and how it is implemented in terms of our values:
id: Pada intinya, **Horizon should be a registration pattern for applications to hook into**. Inilah yang artinya dan bagaimana penerapannya dalam hal nilai-nilai kami:

en: At least one of the following methods must be defined:
id: Setidaknya satu dari metode berikut harus didefinisikan:

en: At their simplest, there are three types of actions: actions which act on the data in the table, actions which link to related resources, and actions that alter which data is displayed. These correspond to :class:`~horizon.tables.Action`, :class:`~horizon.tables.LinkAction`, and :class:`~horizon.tables.FilterAction`.
id: Paling sederhana, ada tiga jenis tindakan: tindakan yang bertindak atas data dalam tabel, tindakan yang menautkan ke sumber daya terkait, dan tindakan yang mengubah data mana yang ditampilkan. Ini sesuai dengan :class:`~horizon.tables.Action`, :class:`~horizon.tables.LinkAction`, dan :class:`~horizon.tables.FilterAction`.

en: At this point, you have a very basic plugin. Note that new templates are required to extend base.html. Including base.html is important for a number of reasons. It is the template that contains all of your static resources along with any functionality external to your panel (things like navigation, context selection, etc...). As of this moment, this is also true for Angular plugins.
id: Pada titik ini, Anda memiliki plugin yang sangat mendasar. Perhatikan bahwa templat baru diperlukan untuk memperpanjang base.html. Termasuk base.html penting karena sejumlah alasan. Ini adalah templat yang berisi semua sumber daya statis Anda beserta fungsi apa pun di luar panel Anda (hal-hal seperti navigasi, pemilihan konteks, dll ...). Pada saat ini, ini juga berlaku untuk plugin Angular.

en: At times it might not be possible to support all versions of a library. It might be too much work, or it might be very hard to test in the gate. In this case, it is best to use whatever is available inside the target distributions. For example, Horizon currently supports jQuery >= 1.7.2, as this is what is currently available in Debian Jessie and Ubuntu Trusty (the last LTS).
id: Terkadang tidak mungkin untuk mendukung semua versi perpustakaan. Mungkin terlalu banyak pekerjaan, atau mungkin sangat sulit untuk menguji di gate. Dalam hal ini, yang terbaik adalah menggunakan apa pun yang tersedia di dalam distribusi target. Misalnya, Horizon saat ini mendukung jQuery> = 1.7.2, karena inilah yang saat ini tersedia di Debian Jessie dan Ubuntu Trusty (LTS terakhir).

en: Attend and participate in the weekly IRC meetings (if your timezone allows)
id: Hadiri dan berpartisipasi dalam pertemuan IRC mingguan (jika zona waktu Anda memungkinkan)

en: Authenticates a user via the Keystone Identity API.
id: Otentikasi pengguna melalui Keystone Identity API.

en: Authentication type selected by the user from the login form. The value is derived from the horizon setting WEBSSO_CHOICES.
id: Jenis otentikasi dipilih oleh pengguna dari formulir login. Nilai ini berasal dari pengaturan horizon WEBSSO_CHOICES.

en: Automatic Mapping
id: Pemetaan Otomatis

en: Automatically generated navigation will use the order of the modules in this attribute.
id: Navigasi yang dibuat secara otomatis akan menggunakan urutan modul dalam atribut ini.

en: Available filters
id: Filter yang tersedia

en: Avoid HTML and CSS in JS code. HTML and CSS belong in templates and stylesheets respectively. For example:
id: Hindari HTML dan CSS dalam kode JS. HTML dan CSS masing-masing termasuk dalam template dan stylesheet. Sebagai contoh:

en: Avoid commented-out code.
id: Hindari kode komentar.

en: Avoid creating instances of the same object repeatedly within the same scope. Instead, assign the object to a variable and re-use the existing object. For example: ::
id: Hindari membuat instance dari objek yang sama berulang kali dalam cakupan yang sama. Sebagai gantinya, tetapkan objek ke variabel dan gunakan kembali objek yang ada. Sebagai contoh: ::

en: Avoid dead code.
id: Hindari kode mati.

en: Avoid excessive nesting.
id: Hindari bersarang (nesting) berlebihan.

en: Avoid in-lining styles into element in HTML. Use attributes and classes instead.
id: Hindari gaya in-lining menjadi elemen dalam HTML. Gunakan atribut dan kelas sebagai gantinya.

en: Avoid modifying an existing release note file even though it is related to your change. If you modify a release note file of a past release, the whole content will be shown in a latest release. The only allowed case is to update a release note in a same release.
id: Hindari mengubah file catatan rilis yang sudah ada meskipun itu terkait dengan perubahan Anda. Jika Anda memodifikasi file catatan rilis dari rilis yang lalu, seluruh konten akan ditampilkan dalam rilis terbaru. Satu-satunya kasus yang diizinkan adalah memperbarui catatan rilis dalam rilis yang sama.

en: Avoid propogating direct exception messages thrown by OpenStack APIs to the UI. It is a precaution against giving obscure or possibly sensitive data to a user. These error messages from the API are also not translatable. Until there is a standard error handling framework implemented by the services which presents clean and translated messages, horizon catches all the exceptions thrown by the API and normalizes them in :func:`horizon.exceptions.handle`.
id: Hindari mempropagandakan pesan pengecualian langsung yang dilemparkan oleh OpenStack APIs ke UI. Ini adalah tindakan pencegahan agar tidak memberikan data yang tidak jelas atau sensitif kepada pengguna. Pesan kesalahan dari API ini juga tidak dapat diterjemahkan. Sampai ada kerangka kerja penanganan kesalahan standar yang diterapkan oleh layanan yang menyajikan pesan yang bersih dan diterjemahkan, horizon menangkap semua pengecualian yang dilemparkan oleh API dan menormalkannya dalam :func:`horizon.exceptions.handle`.

en: Avoid statements such as ``$("<div><span>abc</span></div>")`` they belong in a HTML template file. Use ``show`` | ``hide`` | ``clone`` elements if dynamic content is required.
id: Hindari pernyataan seperti  ``$("<div><span>abc</span></div>")``  mereka termasuk dalam file template HTML. Gunakan ``show`` | ``hide`` | ``clone`` element jika konten dinamis diperlukan.

en: Avoid statements such as ``element.css({property1,property2...})`` they belong in a CSS class.
id: Hindari pernyataan seperti ``element.css ({property1, property2 ...}) `` mereka termasuk dalam kelas CSS.

en: Avoid using classes for detection purposes only, instead, defer to attributes. For example to find a div:
id: Hindari menggunakan kelas untuk tujuan deteksi saja, sebaliknya, tunduk pada atribut. Sebagai contoh untuk menemukan div:

en: Back-end service support
id: Dukungan layanan back-end

en: Base exception class for distinguishing our own exception classes.
id: Kelas pengecualian dasar untuk membedakan kelas pengecualian kami sendiri.

en: Base test case class for Horizon with numerous additional features.
id: Kelas kasus uji dasar untuk Horizon dengan banyak fitur tambahan.

en: Based on the authentication type selected by the user in the login form, it will construct the keystone WebSSO endpoint.
id: Berdasarkan jenis otentikasi yang dipilih oleh pengguna dalam formulir login, itu akan membangun endpoint WebSSO keystone.

en: Basic actions
id: Tindakan dasar

en: Basic strategy of mapping
id: Strategi dasar pemetaan

en: Be a free package created with free software.
id: Jadilah paket gratis yang dibuat dengan perangkat lunak gratis.

en: Be careful about the version of all the components you use in your application. Since it is not acceptable to embed a given component within Horizon, we must use what is in the distribution, including all fonts, JavaScript, etc. This is where it becomes a bit tricky.
id: Berhati-hatilah dengan versi semua komponen yang Anda gunakan dalam aplikasi Anda. Karena tidak dapat menanamkan komponen tertentu dalam Horizon, kita harus menggunakan apa yang ada dalam distribusi, termasuk semua font, JavaScript, dll. Di sinilah agak rumit.

en: Be sure to generate the documentation before submitting a patch for review. Unexpected warnings often appear when building the documentation, and slight reST syntax errors frequently cause links or cross-references not to work correctly.
id: Pastikan untuk membuat dokumentasi sebelum mengirimkan patch untuk ditinjau. Peringatan yang tidak terduga sering muncul ketika membuat dokumentasi, dan sedikit kesalahan sintaks ulang sering menyebabkan tautan atau rujukan silang tidak berfungsi dengan benar.

en: Be sure to include ``<modulename>`` (``myplugin`` in this example) in ``ADD_INSTALLED_APPS`` in the corresponding ``enabled`` file.
id: Pastikan untuk memasukkan ``<modulename> `` (``myplugin`` dalam contoh ini) dalam ``ADD_INSTALLED_APPS`` dalam file ``enabled`` terkait.

en: Because Horizon consumes so many different APIs with completely different ``Exception`` types, it's necessary to have a centralized place for handling exceptions which may be raised.
id: Karena Horizon mengkonsumsi begitu banyak API berbeda dengan jenis ``Exception`` yang sangat berbeda, maka perlu memiliki tempat terpusat untuk menangani pengecualian yang mungkin dinaikkan.

en: Because Horizon is composed of both the ``horizon`` app and the ``openstack_dashboard`` reference project, there are in fact two sets of unit tests. While they can be run individually without problem, there is an easier way:
id: Karena Horizon terdiri dari aplikasi ``horizon`` dan proyek referensi ``openstack_dashboard``, sebenarnya ada dua set unit test. Meskipun dapat dijalankan secara individual tanpa masalah, ada cara yang lebih mudah:

en: Because ``Actions`` are always interactive, they always provide form controls, and thus inherit from Django's ``Form`` class. However, they have some additional intelligence added to them:
id: Karena  ``Actions`` selalu interaktif, mereka selalu menyediakan kontrol formulir, dan dengan demikian mewarisi dari kelas ``Form`` Django. Namun, mereka memiliki beberapa kecerdasan tambahan yang ditambahkan kepada mereka:

en: Because package maintainers care about the quality of the packages we upload, we run tests that are available from upstream repositories. This also qualifies test requirements as build requirements. The same rules apply for building the software as for the software itself. Special build requirements that are not included in the overall distribution are not allowed.
id: Karena pengelola paket peduli dengan kualitas paket yang kami unggah, kami menjalankan tes yang tersedia dari repositori hulu. Ini juga memenuhi syarat persyaratan pengujian sebagai persyaratan bangunan. Aturan yang sama berlaku untuk membangun perangkat lunak seperti untuk perangkat lunak itu sendiri. Persyaratan bangunan khusus yang tidak termasuk dalam distribusi keseluruhan tidak diperbolehkan.

en: Because rendering is done client-side, all our view needs is to reference some HTML page. If you are writing a Python plugin, this view can be much more complex. Refer to the topic guides for more details.::
id: Karena rendering dilakukan di sisi klien, semua kebutuhan tampilan kami adalah untuk merujuk beberapa halaman HTML. Jika Anda menulis plugin Python, view ini bisa jauh lebih kompleks. Lihat panduan topik untuk lebih jelasnya. ::

en: Because the code is in ``openstack_dashboard/dashboards/identity`` we know it is specific to just the ``identity`` dashboard and not used by any others.
id: Karena kode ini berada di  ``openstack_dashboard/dashboards/identity`` kita tahu itu khusus untuk hanya ``identity `` dasbor dan tidak digunakan oleh orang lain.

en: Below is a skeleton of what your plugin should look like.::
id: Di bawah ini adalah kerangka tampilan plugin Anda. ::

en: Below will cover the more project specific information you need to get started with horizon.
id: Di bawah ini akan mencakup lebih banyak informasi spesifik proyek yang Anda butuhkan untuk memulai horizon.

en: Boolean designating whether or not this column represents a status (i.e. "enabled/disabled", "up/down", "active/inactive"). Default: ``False``.
id: Boolean menentukan apakah kolom ini mewakili status (misal "enabled/disabled", "up/down", "active/inactive"). Default: ``False``.

en: Boolean flag to validate subnet masks along with IP address. E.g: 10.0.0.1/32
id: Boolean flag untuk memvalidasi subnet mask bersama dengan alamat IP.  Misal: 10.0.0.1/32

en: Boolean to control whether or not to show the table's footer. Default: ``True``.
id: Boolean untuk mengontrol apakah akan menampilkan footer tabel atau tidak. Default: ``True``.

en: Boolean to control whether or not to show the table's title. Default: ``True``.
id: Boolean untuk mengontrol apakah akan menampilkan judul tabel atau tidak. Default: ``True``.

en: Boolean to control whether the active tab state should be stored across requests for a given user. (State storage is all done client-side.)
id: Boolean untuk mengontrol apakah keadaan tab aktif harus disimpan di seluruh permintaan untuk pengguna tertentu. (Penyimpanan status semua dilakukan sisi klien.)

en: Boolean to control whether the tab bar is shown when the tab group has only one tab. Default: ``False``
id: Boolean untuk mengontrol apakah bilah tab ditampilkan ketika grup tab hanya memiliki satu tab.  Default: ``False``

en: Boolean to determine whether or not this column should be displayed when rendering the table. Default: ``False``.
id: Boolean untuk menentukan apakah kolom ini harus ditampilkan atau tidak saat merender tabel. Default: ``False``.

en: Boolean to determine whether this column should be sortable or not. Defaults to ``True``.
id: Boolean untuk menentukan apakah kolom ini harus diurutkan atau tidak. Default ke ``True``.

en: Boolean value indicating whether or not this action can be taken without any additional input (e.g. an object id). Defaults to ``True``.
id: Nilai Boolean menunjukkan apakah aksi ini dapat dilakukan tanpa masukan tambahan (mis. Id objek). Default ke ``True``.

en: Boolean value indicating whether the contents of this cell should be wrapped in a ``<ul></ul>`` tag. Useful in conjunction with Django's ``unordered_list`` template filter. Defaults to ``False``.
id: Nilai Boolean yang menunjukkan apakah isi sel ini harus dibungkus dengan tag ``<ul></ul>``. Berguna dalam hubungannya dengan filter template Django ``unordered_list``. Default ke ``False``.

en: Boolean value indicating whether this action should be evaluated in the period after the table is instantiated but before the data has been loaded.
id: Nilai Boolean menunjukkan apakah aksi ini harus dievaluasi dalam periode setelah tabel dibuat tetapi sebelum data telah dimuat.

en: Boolean value representing the status of this row calculated from the values of the table's ``status_columns`` if they are set.
id: Nilai Boolean mewakili status baris ini yang dihitung dari nilai-nilai ``status_columns` tabel jika tabel itu ditetapkan.

en: Boolean value to control rendering of an additional column containing the various actions for each row. Defaults to ``True`` if any actions are specified in the ``row_actions`` option.
id: Nilai Boolean untuk mengontrol rendering kolom tambahan yang berisi berbagai tindakan untuk setiap baris. Default ke ``True`` jika ada tindakan yang ditentukan dalam opsi ``row_actions``.

en: Boolean value to control rendering of an extra column with checkboxes for selecting multiple objects in the table. Defaults to ``True`` if any actions are specified in the ``table_actions`` option.
id: Nilai Boolean untuk mengontrol rendering kolom tambahan dengan kotak centang untuk memilih beberapa objek dalam tabel. Default ke ``True`` jika ada tindakan yang ditentukan dalam opsi ``table_actions``.

en: Boolean value to control the display of the "filter" search box in the table actions. By default it checks whether or not an instance of :class:`.FilterAction` is in ``table_actions``.
id: Nilai Boolean untuk mengontrol tampilan kotak pencarian "filter" dalam tindakan tabel. Secara default ia memeriksa apakah instance dari :class:`.FilterAction`  ada di ``table_actions``.

en: Boolean value to determine whether ajax updating for this row is enabled.
id: Nilai Boolean untuk menentukan apakah pembaruan ajax untuk baris ini diaktifkan.

en: Boolean value to determine whether this dashboard can be viewed without being logged in. Defaults to ``False``.
id: Nilai Boolean untuk menentukan apakah dasbor ini dapat dilihat tanpa login. Default ke ``False``.

en: Boolean. Read-only access to whether or not this table should display a column for multi-select checkboxes.
id: Boolean. Apakah akses read-only ke tabel ini menampilkan kolom untuk kotak centang multi-select atau tidak.

en: Bootstrap base select field widget.
id: Bootstrap basis pilih widget field.

en: Bootstrap based select field.
id: Bootstrap berdasarkan pilih field.

en: By architecting around these core classes and reusable components we create an implicit contract that changes to these components will be made in the most backwards-compatible ways whenever possible.
id: Dengan membuat arsitektur di sekitar kelas inti ini dan komponen yang dapat digunakan kembali, kami membuat kontrak implisit bahwa perubahan pada komponen ini akan dibuat dengan cara yang paling kompatibel dengan mundur kapan pun memungkinkan.

en: By default a :class:`~horizon.Panel` class looks for a ``urls.py`` file in the same directory as ``panel.py`` to include in the rollup of url patterns from panels to dashboards to Horizon, resulting in a wholly extensible, configurable URL structure.
id: Secara default kelas :class:`~horizon.Panel` mencari file ``urls.py`` dalam direktori yang sama dengan ``panel.py`` untuk dimasukkan dalam rollup pola url dari panel ke dashboard ke Horizon , menghasilkan struktur URL yang sepenuhnya dapat diperluas dan dapat dikonfigurasi.

en: By default if multiselect enabled return True. You can remove the checkbox after an ajax update here if required.
id: Secara default jika multiselect diaktifkan, kembali True. Anda dapat menghapus kotak centang setelah pembaruan ajax di sini jika diperlukan.

en: By default it returns the value of the ``template_name`` attribute on the ``Tab`` class.
id: Secara default ia mengembalikan nilai atribut ``template_name`` pada kelas ``Tab``.

en: By default it simply inserts the workflow's name into the message string.
id: Secara default itu hanya memasukkan nama alur kerja ke dalam string pesan.

en: By default it will attempt to parse a ``success_url`` attribute on the workflow, which can take the form of a reversible URL pattern name, or a standard HTTP URL.
id: Secara default, ia akan mencoba mem-parse atribut ``success_url`` pada alur kerja, yang dapat berbentuk nama pola URL yang dapat dibalik, atau URL HTTP standar.

en: By default running the Selenium tests will open your Firefox browser (you have to install it first, else an error is raised), and you will be able to see the tests actions::
id: Secara default menjalankan tes Selenium akan membuka browser Firefox Anda (Anda harus menginstalnya terlebih dahulu, jika tidak kesalahan akan muncul), dan Anda akan dapat melihat tindakan tes::

en: By default this parses a string formatted as ``{{ table_name }}__{{ action_name }}__{{ row_id }}`` and returns each of the pieces. The ``row_id`` is optional.
id: Secara default ini mem-parsing string yang diformat sebagai ``{{ table_name }}__{{ action_name }}__{{ row_id }}`` dan mengembalikan masing-masing bagian. ``row_id`` merupakan opsional.

en: By default this returns an ``id`` attribute on the given object, but this can be overridden to return other values.
id: Secara default ini mengembalikan atribut ``id`` pada objek yang diberikan, tetapi ini dapat diganti untuk mengembalikan nilai-nilai lainnya.

en: By default, it uses the following logic:
id: Secara default, ini menggunakan logika berikut:

en: By default, the context is simply updated with all the data returned by the action.
id: Secara default, konteksnya hanya diperbarui dengan semua data dikembalikan oleh action.

en: By default, this returns a ``name`` attribute from the given object, but this can be overridden to return other values.
id: Secara default, ini mengembalikan atribut ``name`` dari objek yang diberikan, tetapi ini bisa diganti untuk mengembalikan nilai lainnya.

en: By marking fields with the ``"switchable"`` and ``"switched"`` classes along with defining a few data attributes you can programmatically hide, show, and rename fields in a form.
id: Dengan menandai bidang dengan kelas  ``"switchable"`` and ``"switched"`` bersama dengan mendefinisikan beberapa atribut data, Anda secara terprogram dapat menyembunyikan, menampilkan, dan mengganti nama bidang dalam form.

en: By providing the necessary core classes to build from, as well as a solid set of reusable templates and additional tools (base form classes, base widget classes, template tags, and perhaps even class-based views) we can maintain consistency across applications.
id: Dengan menyediakan kelas inti yang diperlukan untuk membangun, serta sekumpulan templat yang dapat digunakan kembali dan alat tambahan (kelas formulir dasar, kelas widget dasar, tag templat, dan mungkin bahkan tampilan berbasis kelas) kami dapat mempertahankan konsistensi di seluruh aplikasi.

en: Calculates the number days until the user must change their password, once the password expires the user will not able to log in until an admin changes its password.
id: Menghitung jumlah hari sampai pengguna harus mengubah kata sandi mereka, setelah kata sandi berakhir pengguna tidak akan dapat masuk sampai admin mengubah kata sandinya.

en: Calling "patch_middleware_get_user" is done in our custom middleware at "openstack_auth.middleware" to monkeypatch the code in before it is needed.
id: Memanggil "patch_middleware_get_user" dilakukan di middleware khusus kami di "openstack_auth.middleware" untuk melakukan monkeypatch kode sebelum diperlukan.

en: Calls the ``get_{{ table_name }}_data`` methods for each table class.
id: Memanggil metode ``get {{name table}} data`` untuk setiap kelas tabel.

en: Can be run anywhere, anytime since they have no external dependencies.
id: Dapat dijalankan di mana saja, kapan saja karena mereka tidak memiliki dependensi eksternal.

en: Can't test interactions with live external services.
id: Tidak dapat menguji interaksi dengan layanan eksternal langsung.

en: Catches *many* bugs that unit and functional tests will not.
id: Menangkap *many* bug yang tidak akan diuji unit dan fungsional.

en: Catches internal Horizon exception classes.
id: Menangkap kelas pengecualian Horizon internal.

en: Centralized error handling for Horizon.
id: Penanganan kesalahan terpusat untuk Horizon.

en: Changes user's password when it's expired or otherwise inaccessible.
id: Mengubah kata sandi pengguna bila sudah kadaluarsa atau tidak dapat diakses.

en: Check for form errors.
id: Periksa kesalahan formulir.

en: Check for redirect.
id: Periksa pengalihan.

en: Check for workflow errors.
id: Periksa kesalahan alur kerja.

en: Check if a bug is filed for a correct project. Otherwise, change the project or mark it as "Invalid"
id: Periksa apakah bug diajukan untuk proyek yang benar. Jika tidak, ubah proyek atau tandai sebagai "Invalid"

en: Check if a similar bug was reported before. If found, mark it as duplicate (using "Mark as duplicate" button in the right-top menu).
id: Periksa apakah bug serupa telah dilaporkan sebelumnya. Jika ditemukan, tandai sebagai duplikat (menggunakan tombol "Mark as duplicate" di menu kanan atas).

en: Check if enough information like below is provided:
id: Periksa apakah cukup informasi seperti di bawah ini disediakan:

en: Check if existing components suit your use case. There may be existing components defined by Bootstrap or Horizon that can be reused, rather than writing new ones.
id: Periksa apakah komponen yang ada sesuai dengan use case Anda. Mungkin ada komponen yang sudah ada didefinisikan oleh Bootstrap atau Horizon yang dapat digunakan kembali, daripada menulis yang baru.

en: Check if the library is already packaged as xstatic on PyPi, by searching for the library name. If it already is, go to step 5. If it is, but not in the right version, contact the original packager to have them update it.
id: Periksa apakah perpustakaan sudah dikemas sebagai xstatic di PyPi, dengan mencari nama perpustakaan. Jika sudah, lanjutkan ke langkah 5. Jika ya, tetapi tidak pada versi yang benar, hubungi pembuat paket asli untuk meminta mereka memperbaruinya.

en: Checkbox widget which renders extra markup.
id: Widget kotak centang (checkbox) yang membuat markup ekstra.

en: Checks an exception for given keywords and raises an error if found.
id: Memeriksa pengecualian untuk kata kunci yang diberikan dan memunculkan kesalahan jika ditemukan.

en: Checks for a valid authentication.
id: Memeriksa otentikasi yang valid.

en: Checks for access to any panels in the dashboard and of the dashboard itself.
id: Memeriksa akses ke panel apa pun di dasbor dan dasbor itu sendiri.

en: Checks for no form errors.
id: Memeriksa tidak ada kesalahan formulir.

en: Checks for no workflow errors.
id: Memeriksa tidak ada kesalahan alur kerja.

en: Checks for role based access for this dashboard.
id: Memeriksa akses berbasis peran untuk dasbor ini.

en: Checks if users should be able to change their expired passwords.
id: Cek apakah pengguna harus dapat mengubah kata sandi yang kadaluwarsa.

en: ChoiceField that make dynamically updating its elements easier.
id: ChoiceField yang membuat pembaruan elemen secara dinamis lebih mudah.

en: ChoiceInput class from django 1.10.7 codebase
id: Kelas ChoiceInput dari basis kode django 1.10.7

en: Clean up the auth url to extract the exact Keystone URL
id: Bersihkan url autor untuk mengekstrak URL Keystone yang tepat

en: Code Merge Responsibilities
id: Tanggung Jawab Penggabungan Kode

en: Code Style
id: Gaya Kode

en: Code review: https://review.opendev.org/#/q/project:openstack/horizon+status:open
id: Ulasan kode: https://review.opendev.org/#/q/project:openstack/horizon+status:open

en: Code shared by multiple dashboards
id: Kode dibagikan oleh banyak dasbor

en: Code specific to one dashboard
id: Kode khusus untuk satu dasbor

en: Code that isn't shared beyond a single dashboard is placed in ``openstack_dashboard/dashboards/mydashboard/static``. Entire dashboards may be enabled or disabled using Horizon's plugin mechanism. Therefore no dashboards other than ``mydashboard`` can safely use this code.
id: Kode yang tidak dibagi di luar satu dashboard ditempatkan di ``openstack_dashboard/dashboards/mydashboard/static``. Seluruh dasbor dapat diaktifkan atau dinonaktifkan menggunakan mekanisme plugin Horizon. Karenanya tidak ada dasbor selain ``mydashboard`` yang dapat menggunakan kode ini dengan aman.

en: Collect and compress static assets with ``python manage.py collectstatic -c`` and ``python manage.py compress``.
id: Kumpulkan dan kompres aset statis dengan ``python manage.py collectstatic -c`` dan ``python manage.py compress``.

en: Common function for getting the admin permissions from settings
id: Fungsi umum untuk mendapatkan izin admin dari pengaturan

en: Common function for getting the admin roles from settings
id: Fungsi umum untuk mendapatkan peran admin dari pengaturan

en: Common function for getting the permission froms arg
id: Fungsi umum untuk mendapatkan izin dari arg

en: Common function for getting the region from endpoint.
id: Fungsi umum untuk mendapatkan wilayah dari endpoint.

en: Common function for setting the cookie in the response.
id: Fungsi umum untuk mengatur cookie dalam respons.

en: Common pitfalls
id: Perangkap umum

en: Communication
id: Komunikasi

en: Compile the catalog
id: Kompilasi katalog

en: Complex example of a workflow
id: Contoh kompleks alur kerja

en: Component version
id: Versi komponen

en: Component versioning has consequences for an upstream author willing to integrate their software in a downstream distribution. The best situation is when it is possible to support whatever version is currently available in the target distributions, up to the latest version upstream. Declaring lower and upper bounds within your requirements.txt does not solve the issue. It allows all the tests to pass on gate because they are run against a narrow set of versions in requirements.txt. The downstream distribution might still have some dependencies with versions outside of the range that is specified in requirements.txt. These dependencies may lead to failures that are not caught in the OpenStack gate.
id: Versi komponen memiliki konsekuensi bagi penulis hulu yang bersedia mengintegrasikan perangkat lunak mereka dalam distribusi hilir. Situasi terbaik adalah ketika dimungkinkan untuk mendukung versi apa pun yang saat ini tersedia di distribusi target, hingga versi terbaru di hulu. Mendeklarasikan batas bawah dan atas dalam requirement.txt Anda tidak menyelesaikan masalah. Itu memungkinkan semua tes untuk lulus di gate karena mereka dijalankan terhadap satu set sempit versi di requirement.txt. Distribusi hilir mungkin masih memiliki beberapa dependensi dengan versi di luar rentang yang ditentukan dalam requirement.txt. Ketergantungan ini dapat menyebabkan kegagalan yang tidak tertangkap di gate OpenStack.

en: Conclusion
id: Kesimpulan

en: Configuration files should reside under ``/etc/openstack-dashboard``. Policy files should be created and modified there as well.
id: File konfigurasi harus berada di bawah ``/etc/openstack-dashboard``. File kebijakan harus dibuat dan dimodifikasi di sana juga.

en: Configuration must always be in /etc, no matter what. When this rule was not followed, package maintainers had to place symlinks to ``/etc/openstack-dashboard/local_settings`` in Red Hat based distributions instead of using directly ``/usr/share/openstack-dashboard/openstack_dashboard/local/local_settings.py`` which Horizon expects. In Debian,the configuration file is named ``/etc/openstack-dashboard/local_settings.py.``
id: Konfigurasi harus selalu di /etc, tidak peduli apa. Ketika aturan ini tidak diikuti, pengelola paket harus menempatkan symlink ke  ``/etc/openstack-dashboard/local_settings`` dalam distribusi berbasis Red Hat daripada menggunakan secara langsung ``/usr/share/openstack-dashboard/openstack_dashboard/local/local_settings.py`` yang Horizon harapkan. Di Debian, file konfigurasi bernama ``/etc/openstack-dashboard/local_settings.py.``

en: Connecting a table to a view
id: Menghubungkan tabel ke tampilan

en: Consistent: Visual and interaction paradigms are maintained throughout.
id: Consistent: Paradigma visual dan interaksi dipertahankan semuanya.

en: Contacting the Core Team
id: Menghubungi Tim Inti

en: Contains options for :class:`.DataTable` objects.
id: Berisi opsi untuk objek  :class:`.DataTable`.

en: Context processors used by Horizon.
id: Prosesor konteks digunakan oleh Horizon.

en: Continue to -1 the upper-constraints.txt patch above until this process is complete. A +1 from a Horizon developer will indicate to the requirements team that the upper-constraints.txt patch is OK to merge.
id: Lanjutkan ke -1 patch upper-constraints.txt di atas hingga proses ini selesai. +1 dari pengembang Horizon akan menunjukkan kepada tim persyaratan bahwa patch upper-constraints.txt OK untuk bergabung.

en: Contributor Documentation
id: Dokumentasi Kontributor

en: Conventions
id: Konvensi

en: Copy ``_9001_developer.py`` and ``_9010_preview.py`` from ``openstack_dashboard/contrib/developer/enabled/`` to ``openstack_dashboard/local/enabled/``.
id: Salin ``_9001_developer.py`` and ``_9010_preview.py`` dari  ``openstack_dashboard/contrib/developer/enabled/`` ke ``openstack_dashboard/local/enabled/``.

en: Copy ``openstack_dashboard/contrib/developer/enabled/_9030_profiler.py`` to ``openstack_dashboard/local/enabled/_9030_profiler.py``.
id: Salinan ``openstack_dashboard/contrib/developer/enabled/_9030_profiler.py`` ke ``openstack_dashboard/local/enabled/_9030_profiler.py``.

en: Copy ``openstack_dashboard/local/local_settings.d/_9030_profiler_settings.py.example`` to ``openstack_dashboard/local/local_settings.d/_9030_profiler_settings.py``
id: Salinan ``openstack_dashboard/local/local_settings.d/_9030_profiler_settings.py.example`` ke ``openstack_dashboard/local/local_settings.d/_9030_profiler_settings.py``

en: Core Reviewer Expectations
id: Core Reviewer Expectations (Harapan Peninjau Inti)

en: Core Reviewer Team
id: Tim Peninjau Inti

en: Core Support
id: Dukungan Inti (Core Support).

en: Core Support: Out-of-the-box support for all core OpenStack projects.
id: Core Support: Dukungan out-of-the-box untuk semua proyek inti OpenStack.

en: Could I hook an external service into a panel using, for example, an iFrame?
id: Bisakah saya menghubungkan layanan eksternal ke panel menggunakan, misalnya, iFrame?

en: Coverage Reports
id: Coverage Reports (laporan liputan)

en: Coverage reports
id: Laporan liputan

en: Create a ``create_snapshot.html`` file under the ``mypanel/templates/mypanel`` directory and add the following code::
id: Buat file ``create_snapshot.html`` di bawah direktori  ``mypanel/templates/mypanel`` dan tambahkan kode berikut ::

en: 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::
id: 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 ::

en: Create a subclass of :class:`~horizon.tables.DataTable`.
id: Buat subkelas dari :class:`~horizon.tables.DataTable`.

en: Create an inner ``Meta`` class to contain the special options for this table.
id: Buat kelas inner ``Meta`` untuk memuat opsi-opsi khusus untuk tabel ini.

en: Create the ``forms.py`` file under the ``mypanel`` directory and add the following::
id: Buat file ``forms.py`` di bawah direktori ``mypanel`` dan tambahkan berikut ::

en: Creating a dashboard
id: Membuat dasbor

en: Creating a panel
id: Membuat panel

en: Creating a table is fairly simple:
id: Membuat tabel cukup sederhana:

en: Creating the Plugin
id: Membuat Plugin

en: Creating your own panel
id: Membuat panel Anda sendiri

en: Creating your own tables
id: Membuat tabel Anda sendiri

en: Curating the gate and triaging failures
id: Curating gerbang dan gagal triaging

en: Current behavior is changed
id: Perilaku saat ini diubah

en: Currently all default values are defined in codes where they are consumed. This leads to the situation that it is not easy to know what are the default values and in a worse case default values defined in our codebase can have different default values.
id: Saat ini semua nilai default didefinisikan dalam kode di mana mereka dikonsumsi. Ini mengarah pada situasi bahwa tidak mudah untuk mengetahui apa nilai default dan dalam kasus yang lebih buruk nilai default yang didefinisikan dalam codebase kami dapat memiliki nilai default yang berbeda.

en: Currently this matches for the app_label ``"openstack"``.
id: Saat ini cocok dengan app_label ``"openstack"``.

en: Currently, Angular module names must still be manually declared with ``ADD_ANGULAR_MODULES``, even when using automatic file discovery.
id: Saat ini, nama modul Angular masih harus dideklarasi secara manual dengan ``ADD_ANGULAR_MODULES``, bahkan ketika menggunakan penemuan file otomatis.

en: Currently, ``AUTO_DISCOVER_STATIC_FILES = True`` will only discover JavaScript files, not SCSS files.
id: Saat ini, ``AUTO_DISCOVER_STATIC_FILES = True`` hanya akan menemukan file JavaScript, bukan file SCSS.

en: Currently, a great deal of theming is also kept in the ``horizon.scss`` file in this directory, but that will be reduced as we proceed with the new code design.
id: Saat ini, banyak tema juga disimpan dalam file ``horizon.scss`` di direktori ini, tetapi itu akan berkurang ketika kita melanjutkan dengan desain kode baru.

en: Custom select widget.
id: Pilih widget khusus.

en: Dashboard Classes
id: Dashboard Classes (kelas dasbor)

en: Dashboard configuration
id: Konfigurasi dasbor

en: Data is fetched and loaded into the table.
id: Data diambil dan dimuat ke dalam tabel.

en: DataTable Options
id: Opsi DataTable

en: DataTable displays lists of objects in rows and object attributes in cell. How should we proceed, if we want to decorate some column, e.g. if we have column ``memory`` which returns a number e.g. 1024, and we want to show something like 1024.00 GB inside table?
id: DataTable menampilkan daftar objek dalam baris dan atribut objek dalam sel. Bagaimana seharusnya kita melanjutkan, jika kita ingin menghias beberapa kolom, misal jika kita memiliki kolom ``memory`` yang mengembalikan angka misal 1024, dan kami ingin menampilkan sekitar 1024.00 GB di dalam tabel?

en: DataTable takes tuple of filter functions, so e.g. this is valid decorating of a value with float format and with unit ::
id: DataTable mengambil tuple fungsi filter, misal ini adalah dekorasi nilai yang valid dengan format float dan dengan unit ::

en: DataTables Topic Guide
id: Panduan Topik DataTables

en: Debugging Unit Tests
id: Tes Unit Debugging

en: Debugging with ``pdb`` becomes much simpler to interact with.
id: Debugging dengan ``pdb`` menjadi lebih mudah untuk berinteraksi.

en: Decorator pattern
id: Pola dekorator

en: Default to be an empty list (``[]``). When set to empty, the action will accept any kind of data.
id: Default menjadi daftar kosong (``[]``).  Ketika diatur untuk kosong, aksi akan menerima segala jenis data.

en: Defaults to ``"{{ tab_group.slug }}__{{ tab.slug }}"``.
id: Defaults ke ``"{{ tab_group.slug }}__{{ tab.slug }}"``.

en: Defaults to ``["nav", "nav-tabs", "ajax-tabs"]``.
id: Defaults ke ``["nav", "nav-tabs", "ajax-tabs"]``.

en: Defaults to ``{{ table.name }}__{{ action.name }}__{{ action.param_name }}``.
id: Default untuk ``{{ table.name }}__{{ action.name }}__{{ action.param_name }}``.

en: Defaults to ``{{ table.name }}__{{ action.name }}``.
id: Default untuk ``{{ table.name }}__{{ action.name }}``.

en: Defaults to and empty list (``[]``), however additional classes may be added depending on the state of the tab as follows:
id: Default ke dan kosongkan daftar (``[]``), however namun kelas tambahan dapat ditambahkan tergantung pada kondisi tab sebagai berikut:

en: Defaults to be an empty list (``[]``). When set to empty, the action will accept any kind of data.
id: Default menjadi daftar kosong (``[]``). Ketika diatur untuk kosong, aksi akan menerima segala jenis data.

en: Defaults to the value of the tab group's :attr:`horizon.tabs.Tab.slug`.
id: Nilai default untuk nilai grup tab :attr:`horizon.tabs.Tab.slug`.

en: Defaults to using the GET parameters to allow pre-seeding of the workflow context values.
id: Default menggunakan parameter GET untuk memungkinkan pre-seeding dari nilai konteks alur kerja.

en: Define any actions for the table, and add them to :attr:`~horizon.tables.DataTableOptions.table_actions` or :attr:`~horizon.tables.DataTableOptions.row_actions`.
id: Tentukan tindakan apa pun untuk tabel, dan tambahkan ke :attr:`~horizon.tables.DataTableOptions.table_actions` atau  :attr:`~horizon.tables.DataTableOptions.row_actions`.

en: Define columns on it using :class:`~horizon.tables.Column`.
id: Tentukan kolom di atasnya menggunakan :class:`~horizon.tables.Column`.

en: Define default values of existing settings
id: Tetapkan nilai default dari pengaturan yang ada

en: Define the action
id: Tentukan tindakannya (action)

en: Define the default values of existing settings
id: Tetapkan nilai default pengaturan yang ada

en: Defining a dashboard
id: Menentukan dasbor

en: Defining a form_field for each Column that we want to be in-line edited.
id: Menentukan form_field untuk setiap Column yang ingin diedit sebaris.

en: Defining a panel
id: Mendefinisikan panel

en: Defining a table
id: Mendefinisikan tabel

en: 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 defined in the table Meta class as ``row_class = UpdateRow``.
id: Mendefinisikan metode ``get_data`` di kelas yang diwarisi dari ``tables.Row``. Metode ini menangani pengambilan data baris. Kelas ini kemudian harus didefinisikan dalam tabel kelas Meta sebagai ``row_class = UpdateRow``.

en: Defining default settings in code
id: Menentukan pengaturan default dalam kode

en: Defining tabs
id: Menentukan tab

en: Defining the view
id: Menentukan view

en: Dependency checks: XStatic checks that dependencies, such as fonts and JavaScript libs, are available in downstream distributions.
id: Pemeriksaan dependensi: Pemeriksaan XStatic bahwa dependensi, seperti font dan lib JavaScript, tersedia di distribusi downstream.

en: Designing your code with a functional testing perspective in mind helps keep a higher-level viewpoint in mind.
id: Merancang kode Anda dengan mempertimbangkan perspektif pengujian fungsional membantu menjaga sudut pandang tingkat yang lebih tinggi dalam pikiran.

en: Detailed tutorials to help you get started.
id: Tutorial terperinci untuk membantu Anda memulai.

en: Determine if agiven filter field should be used as an API filter.
id: Tentukan apakah suatu field filter yang diberikan harus digunakan sebagai filter API.

en: Determine if the token is expired.
id: Tentukan apakah token sudah kadaluarsa.

en: Determine whether processing/displaying the column is allowed.
id: Tentukan apakah processing/displaying kolom diperbolehkan.

en: Determine whether the request should be handled by this table.
id: Tentukan apakah permintaan harus ditangani oleh tabel ini.

en: Determine whether the request should be handled in earlier phase.
id: Tentukan apakah permintaan harus ditangani pada tahap sebelumnya.

en: Determines whether or not the step is displayed.
id: Menentukan apakah langkah ditampilkan atau tidak.

en: Determines whether or not the tab is displayed.
id: Menentukan apakah tab ditampilkan atau tidak.

en: Determines whether or not the tab should be accessible.
id: Menentukan apakah tab harus dapat diakses atau tidak.

en: Determines whether the contents of the tab should be rendered into the page's HTML when the tab group is rendered, or whether it should be loaded dynamically when the tab is selected. Default: ``True``.
id: Menentukan apakah konten tab harus dirender ke dalam HTML halaman saat grup tab diberikan, atau apakah konten harus dimuat secara dinamis saat tab dipilih. Default: ``True``.

en: Determines whether the row can be selected.
id: Menentukan apakah baris dapat dipilih.

en: Determining if the workflow can be completed by a given user at runtime based on all available information.
id: Menentukan apakah alur kerja dapat diselesaikan oleh pengguna yang diberikan saat runtime berdasarkan pada semua informasi yang tersedia.

en: DevStack for Horizon
id: DevStack untuk Horizon

en: Did I mention that setting it up is a pain?
id: Apakah saya menyebutkan bahwa pengaturannya itu menyakitkan?

en: Difficult and time-consuming to create a repeatable test environment.
id: Sulit dan menyita waktu untuk menciptakan lingkungan pengujian yang berulang.

en: Directives do not require the module name but are encouraged to begin with the ``hz`` prefix. For example: ::
id: Arahan tidak memerlukan nama modul tetapi didorong untuk memulai dengan awalan ``hz``. Sebagai contoh: ::

en: Dispatching connections between steps to ensure that when context data changes all the applicable callback functions are executed.
id: Pengiriman koneksi di antara langkah-langkah untuk memastikan bahwa ketika data konteks mengubah semua fungsi panggilan balik yang berlaku dijalankan.

en: Display in edit mode.
id: Tampilan dalam mode edit.

en: Display validation errors.
id: Menampilkan kesalahan validasi.

en: Django (and django related packages) provide many settings. It is not a good idea to expose all of them via oslo.config. What should we expose?
id: Django (dan paket terkait Django) menyediakan banyak pengaturan. Bukan ide yang bagus untuk mengekspos semuanya melalui oslo.config. Apa yang harus kita paparkan?

en: Django authentication backend for use with ``django.contrib.auth``.
id: Backend otentikasi Django untuk digunakan dengan ``django.contrib.auth``.

en: Django http request object
id: Objek permintaan Django http

en: Django http request object.
id: Objek permintaan Django http.

en: Django looks for translation message catalogs from each path specified in ``INSTALLED_APPS`` [#]_.
id: Django mencari katalog pesan terjemahan dari setiap jalur yang ditentukan dalam ``INSTALLED_APPS`` [#] _.

en: Django provides a lot of settings and it is not practical to cover all in horizon. Only Django settings which horizon explicitly set will be defined in a dedicated python module.
id: Django menyediakan banyak pengaturan dan tidak praktis untuk mencakup semua di horizon. Hanya pengaturan Django yang diatur secara eksplisit oleh horizon akan ditentukan dalam modul python dedicated.

en: Django support
id: Dukungan Django

en: Django: policy check function
id: Django: fungsi pemeriksaan kebijakan

en: Do not put variables or functions in the global namespace. There are several reasons why globals are bad, one being that all JavaScript included in an application runs in the same scope. The issue with that is if another script has the same method or variable names they overwrite each other.
id: Jangan letakkan variabel atau fungsi di namespace global. Ada beberapa alasan mengapa global buruk, salah satunya adalah bahwa semua JavaScript yang disertakan dalam aplikasi berjalan dalam cakupan yang sama. Masalahnya adalah jika skrip lain memiliki metode atau nama variabel yang sama, mereka saling menimpa.

en: Do not use '``with`` object {code}'. The ``with`` statement is used to access properties of an object. The issue with ``with`` is that its execution is not consistent, so by reading the statement in the code it is not always clear how it is being used.
id: Jangan gunakan  '``with`` object {code}'.  Pernyataan ``with`` digunakan untuk mengakses properti dari suatu objek. Masalah dengan ``with`` adalah bahwa eksekusinya tidak konsisten, jadi dengan membaca pernyataan dalam kode itu tidak selalu jelas bagaimana itu digunakan.

en: Do not use ``eval( )``. The eval (expression) evaluates the expression passed to it. This can open up your code to security vulnerabilities and other issues.
id: Jangan gunakan `` eval () ``. Eval (expression) mengevaluasi ekspresi yang diberikan padanya. Ini dapat membuka kode Anda untuk kerentanan keamanan dan masalah lainnya.

en: Documentation
id: Dokumentasi

en: Documentation is generated with Sphinx using the tox command. To create HTML docs and man pages:
id: Dokumentasi dibuat dengan Sphinx menggunakan perintah tox. Untuk membuat dokumen HTML dan halaman manual:

en: Documentation: https://docs.openstack.org/horizon/latest/
id: Dokumentasi: https://docs.openstack.org/horizon/latest/

en: Does a panel have to be an app in ``INSTALLED_APPS``?
id: Apakah panel harus menjadi aplikasi di ``INSTALLED_APPS``?

en: Doesn't offer any insight into the quality or status of the underlying code, only verifies that it works or it doesn't.
id: Tidak menawarkan wawasan apa pun tentang kualitas atau status kode yang mendasarinya, hanya memverifikasi bahwa kode itu berfungsi atau tidak.

en: Doesn't rely on assumptions about the inputs and outputs.
id: Tidak mengandalkan asumsi tentang input dan output.

en: Don't forget to remove any pseudo translated ``.pot`` or ``.po`` files. Those should **not** be submitted for review.
id: Jangan lupa untuk menghapus file pseudo yang diterjemahkan ``.pot`` atau ``.po``. Itu **not**  harus diserahkan untuk ditinjau.

en: 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 complete output.
id: Jangan menaruh panggilan API dalam pengolah konteks; mereka akan dipanggil satu kali untuk setiap fragmen template/template yang mengambil konteks yang digunakan untuk membuat output yang lengkap.

en: During the "Diablo" release cycle an initial plugin system was added using signals to hook in additional URL patterns and add links into the "dash" and "syspanel" navigation.
id: Selama siklus rilis "Diablo", sistem plugin awal ditambahkan menggunakan sinyal untuk menghubungkan pola URL tambahan dan menambahkan tautan ke navigasi "dash" dan "syspanel".

en: ESLint is a great tool to be used during your code editing to improve JavaScript quality by checking your code against a configurable list of checks. Therefore, JavaScript developers should configure their editors to use ESLint to warn them of any such errors so they can be addressed. Since ESLint has a ton of configuration options to choose from, links are provided below to the options Horizon wants enforced along with the instructions for setting up ESLint for Eclipse, Sublime Text, Notepad++ and WebStorm/PyCharm.
id: ESLint adalah alat yang hebat untuk digunakan selama pengeditan kode Anda untuk meningkatkan kualitas JavaScript dengan memeriksa kode Anda terhadap daftar cek yang dapat dikonfigurasi. Oleh karena itu, pengembang JavaScript harus mengonfigurasi editor mereka untuk menggunakan ESLint untuk memperingatkan mereka tentang kesalahan semacam itu sehingga dapat diatasi. Karena ESLint memiliki banyak opsi konfigurasi untuk dipilih, tautan disediakan di bawah ini untuk opsi yang ingin ditegakkan Horizon bersama dengan instruksi untuk menyiapkan ESLint untuk Eclipse, Sublime Text, Notepad ++ dan WebStorm / PyCharm.

en: ESLint is a tool for identifying and reporting on patterns in your JS code, and is part of the automated tests run by Jenkins. You can run ESLint from the horizon root directory with ``tox -e npm -- lint``, or alternatively on a specific directory or file with ``eslint file.js``.
id: ESLint adalah alat untuk mengidentifikasi dan melaporkan pola dalam kode JS Anda, dan merupakan bagian dari tes otomatis yang dijalankan oleh Jenkins. Anda dapat menjalankan ESLint dari direktori root horizon dengan ``tox -e npm - lint``, atau sebagai alternatif pada direktori atau file tertentu dengan ``eslint file.js``.

en: ESLint is part of the automated unit tests performed by Jenkins. The automated test use the default configurations, which are less strict than the configurations we recommended to run in your local development environment.
id: ESLint adalah bagian dari pengujian unit otomatis yang dilakukan oleh Jenkins. Pengujian otomatis menggunakan konfigurasi default, yang kurang ketat dari konfigurasi yang kami sarankan untuk dijalankan di lingkungan pengembangan lokal Anda.

en: Each DataTable class must be a :class:`~horizon.tables.DataTable` class or its subclass.
id: Setiap kelas DataTable harus berupa kelas :class: `~ horizon.tables.DataTable` atau subkelasnya.

en: Each component should have its own folder, with the code broken up into one JS component per file. (See `Single Responsibility <https://github.com/johnpapa/angular-styleguide#single-responsibility>`_ in the style guide). Each folder may include styling (``*.scss``), as well as templates (``*.html``) and tests (``*.spec.js``). You may also include examples, by appending ``.example``.
id: Setiap komponen harus memiliki folder sendiri, dengan kode dipecah menjadi satu komponen JS per file. (Lihat  `Single Responsibility <https://github.com/johnpapa/angular-styleguide#single-responsibility>` _ dalam panduan gaya). Setiap folder dapat menyertakan gaya (``*.scss``), serta template (``*.html``)  dan pengujian (``*.spec.js``). Anda juga dapat menyertakan contoh, dengan menambahkan ``.example``.

en: Each list item should be a dict with the following keys:
id: Setiap item daftar harus berupa tanda dengan tombol-tombol berikut:

en: Each policy check uses information about the user stored on the request to determine the user's roles. This information was extracted from the scoped token received from Keystone when authenticating.
id: Setiap pemeriksaan kebijakan menggunakan informasi tentang pengguna yang disimpan pada permintaan untuk menentukan peran pengguna. Informasi ini diekstraksi dari bukti yang diterima dari Keystone ketika diautentikasi.

en: Easy to be lax in writing them, or lazy in constructing them.
id: Mudah longgar dalam menulisnya, atau malas membangunnya.

en: Editing Horizon's Source
id: Mengedit Sumber Horizon

en: Embedded copies not allowed
id: Salinan embedded (tertencap) tidak diizinkan

en: Enable and show the dashboard
id: Aktifkan dan tampilkan dasbor

en: Enable the Developer dashboard by copying ``_9001_developer.py`` from ``openstack_dashboard/contrib/developer/enabled/`` to ``openstack_dashboard/local/enabled/``.
id: Aktifkan dasbor Pengembang dengan menyalin ``_9001_developer.py`` dari ``openstack_dashboard/contrib/developer/enabled/`` ke ``openstack_dashboard/local/enabled/``.

en: Encapsulates the AccessInfo object from keystoneclient.
id: Meringkas objek AccessInfo dari keystoneclient.

en: Enforces permission-based access controls.
id: Memberlakukan kontrol akses berbasis permission.

en: Ensure absolute_uri are relative to WEBROOT.
id: Pastikan absolute_uri relatif terhadap WEBROOT.

en: Ensure the version information in the `xstatic/pkg/<package name>/__init__.py` file is up to date, especially the `BUILD`.
id: Pastikan informasi versi dalam file  `xstatic/pkg/<package name>/__init__.py` adalah yang terbaru, terutama` BUILD`.

en: Ensures that your code *always* meets the stated functional requirements.
id: Pastikan kode Anda *always*  memenuhi persyaratan fungsional yang dinyatakan.

en: Ensuring the level of testing is adequate and remains relevant as features are added
id: Memastikan tingkat pengujian memadai dan tetap relevan saat fitur ditambahkan

en: Entity ownership is also a valid role. To verify access to specific entities like a project, the target must be specified. See the section :ref:`rule targets <rule_targets>` later in this document.
id: Kepemilikan entitas juga merupakan peran yang valid. Untuk memverifikasi akses ke entitas tertentu seperti proyek, target harus ditentukan. Lihat bagian :ref:`rule targets <rule_targets>` nanti dalam dokumen ini.

en: Error report filter that's always active, even in DEBUG mode.
id: Filter laporan kesalahan yang selalu aktif, bahkan dalam mode DEBUG.

en: Etiquette
id: Etiket

en: Evaluates whether this user has admin privileges.
id: Mengevaluasi apakah pengguna ini memiliki hak admin.

en: Every bug fix should have a regression test. Period.
id: Setiap perbaikan bug harus memiliki tes regresi. Periode.

en: Every distribution must comply with the Filesystem Hierarchy Standards (FHS). The FHS defines a set of rules that we *must* follow as package maintainers. Some of the most important ones are:
id: Setiap distribusi harus mematuhi Standar Hierarki Filesystem (FHS). FHS mendefinisikan seperangkat aturan yang kita  *must*  ikuti sebagai pengelola paket. Beberapa yang paling penting adalah:

en: Everything is in place, now run ``Horizon`` on the different port::
id: Semuanya sudah ada, sekarang jalankan ``Horizon`` pada port yang berbeda ::

en: Example (these are also the default values)::
id: Contoh (ini juga merupakan nilai default) ::

en: Example 1 - A reusable component in the **horizon** directory
id: Contoh 1 - Komponen yang dapat digunakan kembali dalam direktori **horizon**

en: Example 2 - Panel-specific code in the **openstack_dashboard** directory
id: Contoh 2 - Kode khusus panel di direktori **openstack_dashboard**

en: Example of horizon WebSSO setting::
id: Contoh pengaturan WebSSO horizon ::

en: Example usage::
id: Contoh usage::

en: Example: ::
id: Contoh: ::

en: Example: ``form_field=forms.CharField()``. Defaults to ``None``.
id: Contoh: ``form_field=forms.CharField()``. Default ke ``None``.

en: Example::
id: Contoh::

en: Examples
id: Contoh

en: Examples of this can be found in any of the ``tables.py`` modules included in the reference modules under ``horizon.dashboards``.
id: Contoh dari ini dapat ditemukan di modul ``tables.py`` yang termasuk dalam modul referensi di bawah ``horizon.dashboards``.

en: Exception Handling
id: Penanganan Kekecualian

en: Exception classes such as NotAuthorized, NotFound and Http302 are caught and handles them gracefully.
id: Kelas pengecualian seperti NotAuthorized, NotFound dan Http302 ditangkap dan ditangani dengan anggun (gracefully).

en: Exception raised during message notification.
id: Pengecualian muncul saat pemberitahuan pesan.

en: Exception raised during workflow validation.
id: Pengecualian muncul selama validasi alur kerja.

en: Exception to be raised when invalid settings have been provided.
id: Pengecualian akan dinaikkan bila pengaturan tidak valid telah disediakan.

en: Exception to be raised when something goes wrong in a workflow.
id: Pengecualian akan dinaikkan jika ada yang salah dalam alur kerja.

en: Exception to be raised when something is not available.
id: Pengecualian akan dinaikkan ketika ada sesuatu yang tidak tersedia.

en: Exception to be raised when the value of get_file is not expected.
id: Pengecualian akan dinaikkan ketika nilai get_file tidak diharapkan.

en: Exception used to redirect at the middleware level.
id: Pengecualian digunakan untuk mengarahkan ulang pada tingkat middleware.

en: Exceptions are roughly divided into 3 types:
id: Pengecualian secara kasar dibagi menjadi 3 jenis:

en: Exceptions raised by the Horizon code and the machinery for handling them.
id: Pengecualian yang diajukan oleh kode Horizon dan mesin untuk menanganinya.

en: Expected output and actual output
id: Output yang diharapkan dan output aktual

en: Extending an AngularJS Workflow
id: Memperluas AngularJS Workflow

en: Extends IPField to allow comma-separated lists of addresses.
id: Memperluas IPField untuk memungkinkan daftar alamat yang dipisahkan koma.

en: Extensible: Anyone can add a new component as a "first-class citizen".
id: Extensible: Siapa pun dapat menambahkan komponen baru sebagai "first-class citizen".

en: Fetch authentication headers for message.
id: Ambil headers otentikasi untuk pesan.

en: Fetches the updated data for the row based on the given object ID.
id: Mengambil data yang diperbarui untuk baris berdasarkan ID objek yang diberikan.

en: Fetching the row data
id: Mengambil data baris (row data)

en: File Structure
id: Struktur File

en: File tree:
id: Tree file:

en: Filter function
id: Fungsi filter

en: Finalizes a workflow by running through all the actions.
id: Menyelesaikan alur kerja dengan menjalankan semua tindakan.

en: Finally, components that are easily reused by any application are placed in ``horizon/static/framework/``. These do not contain URLs or business logic that is specific to any application (even the OpenStack Dashboard application).
id: Akhirnya, komponen yang mudah digunakan kembali oleh aplikasi apa pun ditempatkan di ``horizon/static/framework/``. Ini tidak mengandung URL atau logika bisnis yang khusus untuk aplikasi apa pun (bahkan aplikasi OpenStack Dashboard).

en: Finally, each module lists its child modules as a dependency. This allows the root module to be included by an application, which will automatically define all child modules. For example: ::
id: Akhirnya, setiap modul mencantumkan modul anaknya sebagai ketergantungan. Ini memungkinkan modul root untuk dimasukkan oleh aplikasi, yang secara otomatis akan menentukan semua modul anak (child module). Sebagai contoh: ::

en: Fix the URL to say v3 in this case and add version if it is missing entirely. This should be smarter and use discovery. Until version discovery is implemented we need this method to get everything working.
id: Perbaiki URL untuk mengatakan v3 dalam kasus ini dan tambahkan versi jika tidak ada sama sekali. Ini harus lebih pintar dan menggunakan penemuan. Sampai penemuan versi diimplementasikan kita perlu metode ini untuk membuat semuanya berfungsi.

en: Fix up the auth url if an invalid or no version prefix was given.
id: Perbaiki url auth jika awalan versi yang tidak valid atau tidak ada diberikan.

en: Flow paragraphs such that lines wrap at 80 characters or less.
id: Alur paragraf sedemikian rupa sehingga garis-garis membungkus pada 80 karakter atau kurang.

en: For  dynamic insertion of resources created in modals, this method returns the id of the created object. Defaults to returning the ``id`` attribute.
id: Untuk penyisipan dinamis sumber daya yang dibuat dalam modals, metode ini mengembalikan id dari objek yang dibuat. Default untuk mengembalikan atribut ``id``.

en: For 'server' type filters this is saved in the session so that it gets persisted across table loads.  For other filter types this is obtained from the POST dict.
id: Untuk filter tipe 'server' ini disimpan dalam sesi sehingga tetap ada di seluruh beban tabel. Untuk jenis filter lain ini diperoleh dari POST dict.

en: For a detailed API information check out the :ref:`ref-datatables`.
id: Untuk informasi API terperinci, periksa :ref:`ref-datatables`.

en: For a more detailed look into adding a table action, one that requires forms for gathering data, you can walk through :ref:`tutorials-table-actions` tutorial.
id: Untuk tampilan yang lebih terperinci dalam menambahkan aksi tabel, yang membutuhkan formulir untuk mengumpulkan data, Anda dapat menelusuri tutorial :ref: `tutorials-table-action`.

en: For a much more in-depth discussion of testing, see the :ref:`testing topic guide <topics-testing>`.
id: Untuk diskusi pengujian yang lebih mendalam, lihat :ref:`testing topic guide <topics-testing>`.

en: For any tabbed interface, your fundamental element is the tab group which contains all your tabs. This class provides a dead-simple API for building tab groups and encapsulates all the necessary logic behind the scenes.
id: Untuk antarmuka tab mana pun, elemen mendasar Anda adalah grup tab yang berisi semua tab Anda. Kelas ini menyediakan API sederhana untuk membangun grup tab dan merangkum semua logika yang diperlukan di belakang layar.

en: 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.
id: 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.

en: 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 requested.
id: Untuk kenyamanan, standarnya adalah nilai ``request.get_full_path () `` dengan string kueri apa saja yang dilepas, misal jalur di mana tabel diminta.

en: 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 workflow was requested.
id: Untuk kenyamanan, standarnya adalah nilai ``request.get_full_path () `` dengan string kueri apa saja yang dilepas, misal jalur di mana alur kerja diminta.

en: For detailed API information refer to the :ref:`ref-workflows`.
id: Untuk informasi API terperinci, lihat :ref:`ref-workflows`.

en: For dynamic insertion of resources created in modals, this method returns the display name of the created object. Defaults to returning the ``name`` attribute.
id: Untuk penyisipan dinamis sumber daya yang dibuat dalam modals, metode ini mengembalikan nama tampilan dari objek yang dibuat. Default untuk mengembalikan atribut ``name``.

en: For example, ``ajax_poll_interval`` in HORIZON_CONFIG can be exposed to operators. In such case, we can define a new settings ``AJAX_POLL_INTERVAL`` in ``openstack_dashboard/defaults.py`` (or ``horizon/defaults.py``).
id: Misalnya, ``ajax_poll_interval`` di HORIZON_CONFIG dapat diekspos ke operator. Dalam kasus seperti itu, kita dapat menetapkan pengaturan baru ``AJAX_POLL_INTERVAL`` di ``openstack_dashboard/defaults.py`` (atau ``horizon/defaults.py``).

en: For example, some keystone settings have a prefix ``OPENSTACK_KEYSTONE_`` like OPENSTACK_KEYSTONE_DEFAULT_ROLE. Some use ``KEYSTONE_`` like ``KEYSTONE_IDP_PROVIDER_ID``. Some do not (like ``ENFORCE_PASSWORD_CHECK``). In the oslo.config options, all prefixes will be dropped. The mapping will be:
id: Misalnya, beberapa pengaturan keystone memiliki awalan ``OPENSTACK_KEYSTONE_`` seperti OPENSTACK_KEYSTONE_DEFAULT_ROLE. Beberapa menggunakan ``KEYSTONE_`` seperti ``KEYSTONE_IDP_PROVIDER_ID``. Beberapa tidak (seperti ``ENFORCE_PASSWORD_CHECK``). Dalam opsi oslo.config, semua awalan akan dihapus. Pemetaannya adalah:

en: For example, the tab should be rendered into the HTML on load and respond to a click event.
id: Misalnya, tab harus dirender ke dalam HTML saat memuat dan merespons acara klik.

en: For general information on contributing to OpenStack, please check out the `contributor guide <https://docs.openstack.org/contributors/>`_ to get started. It covers all the basics that are common to all OpenStack projects: the accounts you need, the basics of interacting with our Gerrit review system, how we communicate as a community, etc.
id: Untuk informasi umum tentang berkontribusi ke OpenStack, silakan lihat  `contributor guide <https://docs.openstack.org/contributors/>`_ untuk memulai. Ini mencakup semua dasar-dasar yang umum untuk semua proyek OpenStack: akun yang Anda butuhkan, dasar-dasar berinteraksi dengan sistem Gerrit review system, bagaimana kami berkomunikasi sebagai komunitas, dll.

en: For larger components, such as workflows with multiple steps, consider breaking the code down further. For example, the Launch Instance workflow, has one directory per step. See ``openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/``
id: Untuk komponen yang lebih besar, seperti alur kerja dengan beberapa langkah, pertimbangkan memecah kode lebih lanjut. Misalnya, alur kerja Launch Instance, memiliki satu direktori per langkah. Lihat ``openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/``

en: 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!
id: 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!

en: For more detail, see :doc:`/configuration/settings`.
id: Untuk detail lebih lanjut, lihat :doc:`/configuration/settings`.

en: For more detailed information, see :ref:`topics-javascript-testing`.
id: Untuk informasi lebih rinci, lihat :ref:`topics-javascript-testing`.

en: For more information about Django views, URLs and templates, please refer to the `Django documentation`_.
id: Untuk informasi lebih lanjut tentang tampilan, URL, dan templat Django, silakan merujuk ke  `Django documentation`_.

en: For more information on policy based Role Based Access Control see :ref:`topics-policy`.
id: Untuk informasi lebih lanjut tentang Role Based Access Control  berdasarkan kebijakan, lihat :ref:`topics-policy`.

en: For testing admin-only views and functionality.
id: Untuk menguji hanya tampilan dan fungsi admin.

en: For the given dict containing a ``DataTable`` and a ``TableTab`` instance, it loads the table data for that tab and calls the table's :meth:`~horizon.tables.DataTable.maybe_handle` method. The return value will be the result of ``maybe_handle``.
id: Untuk dict (pustaka) yang diberikan yang berisi ``DataTable`` dan instance ``TableTab``, ia memuat data tabel untuk tab itu dan memanggil metode tabel ini :meth:`~horizon.tables.DataTable.maybe_handle`. Nilai pengembalian akan menjadi hasil dari ``maybe_handle``.

en: For the purpose of fixing packaging mistakes, xstatic has the build number mechanism. Simply fix the error, increment the build number and release the newer package.
id: Untuk memperbaiki kesalahan pengemasan, xstatic memiliki mekanisme build number. Cukup perbaiki kesalahan, tambahkan nomor build dan lepaskan paket yang lebih baru.

en: For this tutorial, we will not deal with the static directory, or the ``tests.py`` file. Leave them as they are.
id: Untuk tutorial ini, kita tidak akan berurusan dengan direktori statis, atau file ``tests.py``. Biarkan mereka apa adanya.

en: For usage information, tips & tricks and more examples check out the :ref:`topics-datatables`.
id: Untuk informasi penggunaan, tips & trik dan lebih banyak contoh lihat :ref:`topics-datatables`.

en: For usage information, tips & tricks and more examples check out the :ref:`topics-workflows`.
id: Untuk informasi penggunaan, tips & trik dan lebih banyak contoh lihat :ref:`topics-workflows`.

en: Form Classes
id: Panel Classes (kelas panel)

en: Form field can be also ``django.form.Widget`` class, if we need to just display the form widget in the table and we don't need Field functionality.
id: Form field juga bisa menjadi kelas ``django.form.Widget``, jika kita hanya perlu menampilkan widget formulir di tabel dan kita tidak memerlukan fungsionalitas Field.

en: Form field for entering IP/range values, with validation.
id: Form field untuk memasukkan nilai IP/range, dengan validasi.

en: Form field for entering a MAC address with validation.
id: Form field untuk memasukkan alamat MAC dengan validasi.

en: Form field should be ``django.form.Field`` instance, so we can use django validations and parsing of the values sent by POST (in example validation ``required=True`` and correct parsing of the checkbox value from the POST data).
id: Bidang formulir harus berupa ``django.form.Field``, jadi kita dapat menggunakan validasi django dan mem-parsing nilai yang dikirim oleh POST (misalnya validasi  ``required=True``  dan penguraian yang benar dari nilai kotak centang dari POST data).

en: Form used for changing user's password without having to log in.
id: Form yang digunakan untuk mengubah kata sandi pengguna tanpa harus masuk.

en: Form used for logging in a user.
id: Formulir yang digunakan untuk masuk pengguna.

en: Frequently Asked Questions
id: Pertanyaan yang Sering Diajukan

en: From there it grew to support multiple OpenStack projects and APIs gradually, arranged rigidly into "dash" and "syspanel" groupings.
id: Dari sana ia tumbuh untuk mendukung beberapa proyek OpenStack dan API secara bertahap, diatur secara kaku ke dalam pengelompokan "dash" dan "syspanel".

en: From there you can access all the key methods you need.
id: Dari sana Anda dapat mengakses semua metode utama yang Anda butuhkan.

en: Function was removed (hopefully it was deprecated)
id: Fungsi telah dihapus (mudah-mudahan itu sudah ditinggalkan)

en: Functional tests
id: Tes fungsional

en: GUI supports for most OpenStack projects are achieved via horizon plugins. The horizon core reviewer team has responsibility to help horizon plugin teams from the perspective of horizon related changes as the framework, for example, Django version bump, testing improvements, plugin interface changes in horizon and so on. A member of the team is expected to send and review patches related to such changes.
id: Dukungan GUI untuk sebagian besar proyek OpenStack dicapai melalui plugin horizon. Tim peninjau inti horizon memiliki tanggung jawab untuk membantu tim plugin horizon dari perspektif perubahan terkait horizon sebagai framework, misalnya, Django version bump, perbaikan pengujian, perubahan plugin interface di horizon dan sebagainya. Seorang anggota tim diharapkan mengirim dan meninjau patches terkait dengan perubahan tersebut.

en: General-purpose decorators for use with Horizon.
id: Dekorator tujuan umum untuk digunakan dengan Horizon.

en: Generally lightweight and fast.
id: Umumnya ringan dan cepat.

en: Generate the keystone WebSSO endpoint that will redirect the user to the login page of the federated identity provider.
id: Hasilkan endpoint WebSSO keystone yang akan mengarahkan pengguna ke halaman login penyedia identitas gabungan.

en: Generic error to replace all "BadRequest"-type API errors.
id: Kesalahan umum untuk mengganti semua kesalahan "-Jenis API" BadRequest.

en: Generic error to replace all "Conflict"-type API errors.
id: Kesalahan umum untuk mengganti semua kesalahan API "Conflict" -type.

en: Generic error to replace all "Not Found"-type API errors.
id: Kesalahan umum untuk mengganti semua kesalahan API "Not Found"-type.

en: Generic error to replace any "Recoverable"-type API errors.
id: Kesalahan umum untuk mengganti kesalahan API "Recoverable"-type apa pun.

en: Generic view to handle multiple DataTable classes in a single view.
id: Tampilan generik untuk menangani beberapa kelas DataTable dalam satu tampilan.

en: Get the filter field value used for 'server' type filters.
id: Dapatkan nilai kolom filter yang digunakan untuk filter tipe 'server'.

en: Get the filter string value.
id: Dapatkan nilai string filter.

en: Getting Started
id: Mulai

en: Getting Your Patch Merged
id: Getting Your Patch Merged (Mendapatkan Patch Anda Digabung)

en: Give credit where credit is due; if someone helps you substantially with a piece of code, it's polite (though not required) to thank them in your commit message.
id: Berikan kredit saat kredit jatuh tempo; jika seseorang membantu Anda secara substansial dengan sepotong kode, sopan (meskipun tidak diharuskan) mengucapkan terima kasih kepada mereka dalam pesan komit Anda.

en: Give meaningful names to methods and variables.
id: Berikan nama yang bermakna untuk metode dan variabel.

en: Go to ``http://<your server>:9000`` using a browser. After login as an admin you should be able see ``My Dashboard`` shows up at the left side on horizon. Click it, ``My Group`` will expand with ``My Panel``. Click on ``My Panel``, the right side panel will display an ``Instances Tab`` which has an ``Instances`` table.
id: Pergi ke ``http://<your server>:9000`` menggunakan browser. Setelah login sebagai admin Anda harus dapat melihat ``My Dashboard`` muncul di sisi kiri di horizon. Klik itu, ``My Group`` akan berkembang dengan ``My Panel``. Klik pada ``My Panel``, panel sebelah kanan akan menampilkan ``Instances Tab`` yang memiliki tabel ``Instances``.

en: Go to ``http://<your server>:9000`` using a browser. After login as an admin, display ``My Panel`` to see the ``Instances`` table. For every ``ACTIVE`` instance in the table, there will be a ``Create Snapshot`` action on the row. Click on ``Create Snapshot``, enter a snapshot name in the form that is shown, then click to close the form. The ``Project Images`` view should be shown with the new snapshot added to the table.
id: Pergi ke ``http://<your server>:9000`` menggunakan browser. Setelah login sebagai admin, tampilkan ``My Panel`` untuk melihat tabel ``Instances``. Untuk setiap instance ``ACTIVE``  dalam tabel, akan ada tindakan ``Create Snapshot`` di baris. Klik ``Create Snapshot``, masukkan nama snapshot dalam form yang ditampilkan, lalu klik untuk menutup form. View ``Project Images`` harus ditampilkan dengan snapshot baru ditambahkan ke tabel.

en: HORIZON_CONFIG is an internal interface now and most/some(?) of them should not be exposed as config options. For example, the horizon plugin mechanism touches HORIZON_CONFIG to register horizon plugins.
id: HORIZON_CONFIG adalah antarmuka internal sekarang dan sebagian besar (?) Dari mereka tidak boleh diekspos sebagai opsi konfigurasi. Misalnya, mekanisme plugin horizon menyentuh HORIZON_CONFIG untuk mendaftarkan plugin horizon.

en: Handler for HTTP GET requests.
id: Handler untuk permintaan HTTP GET.

en: Handler for HTTP POST requests.
id: Handler untuk permintaan HTTP POST.

en: Handler for a single-object action.
id: Handler untuk aksi satu objek.

en: Handler for multi-object actions.
id: Handler untuk aksi multi-objek.

en: Handles POST data sent to a tab.
id: Menangani data POST yang dikirim ke sebuah tab.

en: Handles any final processing for this workflow.
id: Menangani setiap proses akhir untuk alur kerja ini.

en: Handles any requisite processing for this action.
id: Menangani setiap proses yang diperlukan untuk tindakan ini.

en: Handles authentication with Keystone by providing the domain name, username and password. A scoped token is fetched after successful authentication.
id: Menangani otentikasi dengan Keystone dengan memberikan nama domain, nama pengguna, dan kata sandi. Token yang dilingkari (scoped) diambil setelah otentikasi berhasil.

en: Handles table actions if needed.
id: Menangani tindakan tabel jika perlu.

en: Handling Django settings
id: Menangani pengaturan Django

en: Handling the injection, removal, and ordering of arbitrary steps.
id: Menangani injeksi, penghapusan, dan pemesanan langkah-langkah acak.

en: Handling update by POST of the cell.
id: Menangani pembaruan dengan POST sel.

en: Have an active and responsive upstream to maintain the package.
id: Memiliki hulu yang aktif dan responsif untuk mempertahankan paket.

en: Having done a release of an xstatic package:
id: Setelah melakukan rilis paket xstatic:

en: Having good tests in place is absolutely critical for ensuring a stable, maintainable codebase. Hopefully that doesn't need any more explanation.
id: Memiliki tes yang baik di tempat sangat penting untuk memastikan basis kode yang stabil dan dapat dipelihara. Semoga itu tidak perlu penjelasan lagi.

en: Headers that are set to authenticate a message or None for failure. Note that when checking this value that the empty dict is a valid, non-failure response.
id: Header yang ditetapkan untuk mengotentikasi pesan atau None untuk kegagalan. Perhatikan bahwa ketika memeriksa nilai ini bahwa empty dict adalah respons yang valid dan tidak gagal.

en: Helper function for building an attribute dictionary.
id: Fungsi pembantu untuk membangun kamus atribut.

en: Helping horizon plugin maintenances
id: Membantu pemeliharaan plugin horizon

en: High level description
id: Deskripsi tingkat tinggi

en: History
id: Riwayat

en: Hook for custom context data validation.
id: Hook untuk validasi data konteks khusus.

en: Hook for doing any extra form-wide cleaning after Field.clean() has been called on every field. Any ValidationError raised by this method will not be associated with a particular field; it will have a special-case association with the field named '__all__'.
id: Kait untuk melakukan pembersihan ekstra form-wide apa pun setelah Field.clean () dipanggil di setiap field. ValidationError apa pun yang diajukan oleh metode ini tidak akan dikaitkan dengan field tertentu; itu akan memiliki asosiasi special-case dengan bidang bernama '__all__'.

en: Hook method for deconstructing the test fixture after testing it.
id: Metode Hook untuk mendekonstruksi perlengkapan uji setelah mengujinya.

en: Hook method for setting up the test fixture before exercising it.
id: Metode kait untuk mengatur perlengkapan tes sebelum melatihnya.

en: Hook to allow customization of the message returned to the user.
id: Hook untuk memungkinkan kustomisasi pesan yang dikembalikan ke pengguna.

en: Hook to customize how the workflow context is passed to the action.
id: Hook untuk menyesuaikan bagaimana konteks alur kerja diteruskan ke action.

en: Horizon Angular modules use names that map to the source code directory structure. This provides namespace isolation for modules and services, which makes dependency injection clearer. It also reduces code conflicts where two different modules define a module, service or constant of the same name. For example: ::
id: Modul Horizon Angular menggunakan nama yang memetakan ke struktur direktori kode sumber. Ini memberikan isolasi namespace untuk modul dan layanan, yang membuat injeksi ketergantungan lebih jelas. Ini juga mengurangi konflik kode di mana dua modul berbeda menentukan modul, layanan atau konstanta dengan nama yang sama. Sebagai contoh: ::

en: Horizon Context Processors
id: Horizon Context Processors (pemroses kontek horizon)

en: Horizon DatablesTable takes a tuple of pointers to filter functions or anonymous lambda functions. When displaying a ``Cell``, ``DataTable`` takes ``Column`` filter functions from left to right, using the returned value of the previous function as a parameter of the following function. Then displaying the returned value of the last filter function.
id: Horizon DatablesTable mengambil tuple pointer untuk memfilter fungsi atau fungsi lambda anonim. Saat menampilkan ``Cell``, ``DataTable`` mengambil fungsi filter ``Column`` dari kiri ke kanan, menggunakan nilai yang dikembalikan dari fungsi sebelumnya sebagai parameter dari fungsi berikut. Kemudian menampilkan nilai yang dikembalikan dari fungsi filter terakhir.

en: Horizon Decorators
id: Horizon Decorators (dekorator horizon)

en: Horizon Exceptions
id: Horizon Exceptions (pengecualian horizon)

en: Horizon Microversion Support
id: Dukungan Horizon Microversion

en: Horizon Plugin Maintenance
id: Horizon Plugin Maintenance (Pemeliharaan Plugin Horizon)

en: Horizon Settings
id: Pengaturan Horizon

en: Horizon Tabs and TabGroups
id: Horizon Tabs dan TabGroups

en: Horizon connects to the rest of OpenStack via a Keystone service catalog. By default Horizon looks for an endpoint at ``http://localhost/identity/v3``; this can be customised by modifying the ``OPENSTACK_HOST`` and ``OPENSTACK_KEYSTONE_URL`` values in ``openstack_dashboard/local/local_settings.py``
id: Horizon terhubung ke seluruh OpenStack melalui katalog layanan Keystone. Secara default, Horizon mencari titik akhir di ``http://localhost/identity/v3``; ini dapat dikustomisasi dengan memodifikasi nilai ``OPENSTACK_HOST`` dan ``OPENSTACK_KEYSTONE_URL`` dalam ``openstack_dashboard/local/local_settings.py``

en: Horizon has three kinds of angular code:
id: Horizon memiliki tiga jenis kode angular:

en: Horizon holds several key values at the core of its design and architecture:
id: Horizon memegang beberapa nilai kunci pada inti desain dan arsitekturnya:

en: Horizon includes a `.eslintrc` in its root directory, that is used by the local tests. An explanation of the options, and details of others you may want to use, can be found in the `ESLint user guide <https://eslint.org/docs/user-guide/configuring>`_.
id: Horizon menyertakan `.eslintrc` dalam direktori rootnya, yang digunakan oleh tes lokal. Penjelasan opsi, dan detail orang lain yang mungkin ingin Anda gunakan, dapat ditemukan di `ESLint user guide <https://eslint.org/docs/user-guide/configuring>`_.

en: Horizon includes a componentized API for programmatically creating tables in the UI. Why would you want this? It means that every table renders correctly and consistently, table-level and row-level actions all have a consistent API and appearance, and generally you don't have to reinvent the wheel or copy-and-paste every time you need a new table!
id: Horizon menyertakan API yang diprogram untuk membuat tabel secara pemrograman di UI. Mengapa Anda menginginkan ini? Ini berarti bahwa setiap tabel merender dengan benar dan konsisten, tindakan level-tabel dan baris-level semuanya memiliki API dan tampilan yang konsisten, dan umumnya Anda tidak harus menemukan kembali roda atau menyalin dan menempel setiap kali Anda membutuhkan tabel baru !

en: Horizon includes a set of reusable components for programmatically building tabbed interfaces with fancy features like dynamic AJAX loading and nearly effortless templating and styling.
id: Horizon mencakup satu set komponen yang dapat digunakan kembali untuk membangun antarmuka tab yang diprogram dengan fitur-fitur mewah seperti pemuatan AJAX yang dinamis dan templating dan styling yang hampir tanpa usaha.

en: Horizon is a Python module. Preferably, it is installed at the default location for python. In Fedora and openSUSE, this is ``/usr/lib/python3.7/site-packages/horizon``, and in Debian/Ubuntu it is ``/usr/lib/python3.7/dist-packages/horizon``.
id: Horizon adalah modul Python. Lebih disukai, itu dipasang di lokasi default untuk python. Di Fedora dan openSUSE, ini adalah ``/usr/lib/python3.7/site-packages/horizon``, dan di Debian/Ubuntu it is ``/usr/lib/python3.7/dist-packages/horizon``.

en: Horizon project defines several teams to maintain the project.
id: Proyek Horizon menetapkan beberapa tim untuk memelihara proyek tersebut.

en: 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::
id: 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::

en: Horizon provides a :class:`~horizon.forms.base.SelfHandlingForm` class which simplifies some of the details involved in creating a form. Our form will derive from this class, adding a character field to allow the user to specify a name for the snapshot, and handling the successful closure of the form by calling the nova api to create the snapshot.
id: Horizon menyediakan kelas :class: `~ horizon.forms.base.SelfHandlingForm` yang menyederhanakan beberapa detail yang terlibat dalam membuat formulir. Form kami akan berasal dari kelas ini, menambahkan bidang karakter untuk memungkinkan pengguna menentukan nama untuk snapshot itu, dan menangani penutupan form yang berhasil dengan memanggil api nova untuk membuat snapshot itu.

en: Horizon provides a :class:`~horizon.tables.LinkAction` class which simplifies adding an action which can be used to display another view.
id: Horizon menyediakan kelas :class: `~ horizon.tables.LinkAction` yang menyederhanakan menambahkan action yang dapat digunakan untuk menampilkan view lain.

en: Horizon provides a base test case class which provides several useful pre-prepared attributes for testing Horizon components.
id: Horizon menyediakan kelas kasus uji dasar yang menyediakan beberapa atribut  pre-prepared yang berguna untuk menguji komponen Horizon.

en: 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::
id: 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::

en: Horizon provides the :mod:`horizon.tables` module to provide a convenient, reusable API for building data-driven displays and interfaces. The core components of this API fall into three categories: ``DataTables``, ``Actions``, and ``Class-based Views``.
id: Horizon menyediakan modul :mod: `horizon.tables` untuk menyediakan API yang nyaman dan dapat digunakan kembali untuk membangun tampilan dan antarmuka berbasis data. Komponen inti dari API ini terbagi dalam tiga kategori: ``DataTables``, ``Actions``, dan ``Class-based Views``.

en: Horizon provides three types of basic action classes which can be taken on a table's data:
id: Horizon menyediakan tiga jenis kelas tindakan dasar yang dapat diambil pada data tabel:

en: 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:`~horizon.Panel`::
id: Horizon memuat satu titik kontak untuk terhubung ke proyek Anda jika Anda tidak mengembangkan kelas Anda sendiri :class:`~horizon.Dashboard` or :class:`~horizon.Panel`::

en: Horizon ships with some very useful base form classes, form fields, class-based views, and javascript helpers which streamline most of the common tasks related to form handling.
id: Horizon memuat dengan beberapa item dasar  yang sangat berguna untuk form classes, form fields, class-based views, dan javascript helpers yang merampingkan sebagian besar tugas umum yang terkait dengan penanganan formulir.

en: Horizon ships with three central dashboards, a "User Dashboard", a "System Dashboard", and a "Settings" dashboard. Between these three they cover the core OpenStack applications and deliver on Core Support.
id: Horizon dikirimkan dengan tiga dasbor pusat, dashboard "User Dashboard", "System Dashboard", dan "Settings". Di antara ketiganya mereka mencakup aplikasi inti OpenStack dan memenuhi Core Support.

en: Horizon should check features in back-end services through APIs as much as possible by using micro-versioning for nova, cinder and so on and API extensions for neutron (and others if any).
id: Horizon harus memeriksa fitur-fitur dalam layanan back-end melalui API sebanyak mungkin dengan menggunakan versi mikro untuk nova, cinder, dan sebagainya serta ekstensi API untuk neutron (dan lainnya jika ada).

en: Horizon started life as a single app to manage OpenStack's compute project. As such, all it needed was a set of views, templates, and API calls.
id: Horizon mulai hidup sebagai aplikasi tunggal untuk mengelola proyek komputasi OpenStack. Karena itu, yang diperlukan hanyalah serangkaian tampilan, templat, dan panggilan API.

en: Horizon supports multiple Django versions and our CI tests proposed patches with various supported Django versions. The corresponding job names are like ``horizon-tox-python3-django111``.
id: Horizon mendukung beberapa versi Django dan CI kami menguji patch yang diusulkan dengan berbagai versi Django yang didukung. Nama-nama pekerjaan yang sesuai seperti ``horizon-tox-python3-django111``.

en: Horizon uses Django's unit test machinery (which extends Python's ``unittest2`` library) as the core of its test suite. As such, all tests for the Python code should be written as unit tests. No doctests please.
id: Horizon menggunakan unit mesin uji Django (yang memperluas perpustakaan ``unittest2`` Python) sebagai inti dari rangkaian pengujiannya. Dengan demikian, semua tes untuk kode Python harus ditulis sebagai unit test. Maaf, tidak ada dokumen (no doctest).

en: Horizon uses `SCSS`_ (not to be confused with Sass) to style its HTML. This guide is targeted at developers adding code to upstream Horizon. For information on creating your own branding/theming, see :ref:`install-customizing`.
id: Horizon menggunakan `SCSS`_ (jangan bingung dengan Sass) untuk men-style HTML-nya. Panduan ini ditargetkan untuk pengembang yang menambahkan kode ke Horizon hulu. Untuk informasi tentang cara membuat branding/theming Anda sendiri, lihat :ref:`install-customizing`.

en: Horizon uses ``tox`` to manage virtual environments for testing and other development tasks. You can install it with
id: Horizon menggunakan ``tox`` untuk mengelola lingkungan virtual untuk pengujian dan tugas pengembangan lainnya. Anda dapat menginstalnya dengannya

en: Horizon uses `reno <https://docs.openstack.org/reno/latest/user/usage.html>`_ to generate release notes. Please read the docs for details. In summary, use
id: Horizon menggunakan `reno <https://docs.openstack.org/reno/latest/user/usage.html>` _ untuk menghasilkan catatan rilis. Silakan baca dokumen untuk detailnya. Singkatnya, gunakan

en: Horizon usually syncs with `Django's Roadmap <https://www.djangoproject.com/weblog/2015/jun/25/roadmap/>`__ and supports LTS (long term support) versions of Django as of the feature freeze of each OpenStack release. Supports for other maintained Django versions are optional and best-effort.
id: Horizon biasanya disinkronkan dengan `Django's Roadmap <https://www.djangoproject.com/weblog/2015/jun/25/roadmap/>` __ dan mendukung versi Django LTS (dukungan jangka panjang) pada pembekuan fitur setiap OpenStack melepaskan. Dukungan untuk versi Django yang dikelola lainnya adalah opsional dan upaya terbaik.

en: Horizon's Structure
id: Struktur Horizon

en: Horizon's ``default`` theme stylesheets can be found at ``openstack_dashboard/themes/default/``.
id: Stylesheet tema `` default`` Horizon dapat ditemukan di``openstack_dashboard/themes/default/``.

en: Horizon's documentation is written in reStructuredText (reST) and uses Sphinx for additional parsing and functionality, and should follow standard practices for writing reST. This includes:
id: Dokumentasi Horizon ditulis dalam reStructuredText (reST) dan menggunakan Sphinx untuk parsing dan fungsionalitas tambahan, dan harus mengikuti praktik standar untuk menulis REST. Ini termasuk:

en: Horizon's policy enforcement builds on the oslo_policy engine. The basis of which is ``openstack_auth/policy.py``. Services in OpenStack use the oslo policy engine to define policy rules to limit access to APIs based primarily on role grants and resource ownership.
id: Penegakan kebijakan Horizon dibangun di atas engine oslo_policy. Dasarnya adalah ``openstack_auth/policy.py``. Layanan di OpenStack menggunakan mesin kebijakan oslo untuk mendefinisikan aturan kebijakan untuk membatasi akses ke API berdasarkan pada pemberian peran dan kepemilikan sumber daya.

en: Horizon's tests and you
id: Tes Horizon dan Anda

en: How the authentication headers are obtained is up to the plugin. If the headers are still valid they may be re-used, retrieved from cache or the plugin may invoke an authentication request against a server.
id: Cara header otentikasi diperoleh hingga ke plugin. Jika header masih valid mereka dapat digunakan kembali, diambil dari cache atau plugin mungkin meminta permintaan otentikasi terhadap server.

en: How to Utilize RBAC
id: Cara Menggunakan RBAC

en: How to run the tests
id: Cara menjalankan tes

en: How user's roles are determined
id: Bagaimana peran pengguna ditentukan

en: However, what defines a "good" test is not always obvious, and there are a lot of common pitfalls that can easily shoot your test suite in the foot.
id: Namun, apa yang mendefinisikan tes "good" tidak selalu jelas, dan ada banyak kesulitan umum yang dapat dengan mudah mengagalkan suite tes Anda.

en: If :attr:`~horizon.tables.Action.policy_rules` is not set, no policy checks will be made to determine if the action should be visible and will be displayed solely based on the result of :meth:`~horizon.tables.Action.allowed`.
id: Jika :attr: `~ horizon.tables.Action.policy_rules` tidak disetel, tidak ada pemeriksaan kebijakan yang akan dilakukan untuk menentukan apakah tindakan tersebut akan terlihat dan akan ditampilkan hanya berdasarkan hasil dari :meth:`~horizon.tables.Action.allowed`.

en: If :attr:`~horizon.tabs.Tab.preload` is ``False`` and ``force_load`` is not ``True``, or either :meth:`~horizon.tabs.Tab.allowed` or :meth:`~horizon.tabs.Tab.enabled` returns ``False`` this method will return an empty string.
id: Jika :attr:`~horizon.tabs.Tab.preload` adalah ``False`` dan ``force_load`` bukan ``True``, atau :met:`~horizon.tabs.Tab.allowed` atau :meth:`~horizon.tabs.Tab.enabled` mengembalikan ``False`` metode ini akan mengembalikan string kosong.

en: If True, the filter function will be called for the initial GET request with an empty ``filter_string``, regardless of the value of ``method``.
id: Jika True, fungsi filter akan dipanggil untuk permintaan GET awal dengan ``filter_string` kosong, terlepas dari nilai ``metode``.

en: If ``"default_dashboard"`` is specified in ``HORIZON_CONFIG`` then that dashboard will be returned. If not, the first dashboard returned by :func:`~horizon.get_dashboards` will be returned.
id: Jika `` "default_dashboard" `` ditentukan dalam ``HORIZON_CONFIG`` maka dasbor itu akan dikembalikan. Jika tidak, dasbor pertama dikembalikan oleh :func:`~horizon.get_dashboards` akan dikembalikan.

en: If ``allowed_data_types`` of this column  is not empty and the datum has an assigned type, check if the datum's type is in the ``allowed_data_types`` list. If not, the datum won't be displayed as a link.
id: Jika ``allowed_data_types`` kolom ini tidak kosong dan datum memiliki tipe yang ditetapkan, periksa apakah tipe datum ada di daftar ``allowed_data_types``. Jika tidak, datum tidak akan ditampilkan sebagai tautan.

en: If ``link`` is a callable, it will be passed the current data object and should return a URL. Otherwise ``get_link_url`` will attempt to call ``reverse`` on ``link`` with the object's id as a parameter. Failing that, it will simply return the value of ``link``.
id: Jika ``link`` adalah callable, itu akan melewati objek data saat ini dan harus mengembalikan URL. Kalau tidak ``get_link_url`` akan berusaha memanggil ``reverse`` pada ``link`` dengan id objek sebagai parameter. Gagal itu, itu hanya akan mengembalikan nila i``link``.

en: If ``status_columns`` is set, when the rows are rendered the value of this column will be used to add an extra class to the row in the form of ``"status_up"`` or ``"status_down"`` for that row's data.
id: Jika ``status_columns`` diatur, ketika baris diberikan nilai kolom ini akan digunakan untuk menambahkan kelas tambahan ke baris dalam bentuk ``"status_up"`` atau ``"status_down"`` untuk data baris itu.

en: If ``url`` is callable it will call the function. If not, it will then try to call ``reverse`` on ``url``. Failing that, it will simply return the value of ``url`` as-is.
id: Jika ``url`` dapat dipanggil maka akan memanggil fungsi. Jika tidak, maka akan mencoba untuk memanggil ``reverse`` pada ``url``. Jika gagal, itu hanya akan mengembalikan nilai ``url`` apa adanya.

en: If a blueprint is assigned, even if it hasn't been started, be sure you contact the assignee before taking it on. These larger issues often have a history of discussion or specific implementation details that the assignee may be aware of that you are not.
id: Jika cetak biru diberikan, meskipun belum dimulai, pastikan Anda menghubungi penerima yang ditunjuk sebelum menerimanya. Masalah-masalah yang lebih besar ini sering kali memiliki riwayat diskusi atau detail implementasi spesifik yang mungkin diketahui oleh penerima hak bahwa Anda tidak.

en: If a bug is "in progress" in the bug tracker, don't start working on it without contacting the author. Try on IRC, or via the launchpad email contact link. If you don't get a response after a reasonable time, then go ahead. Checking first avoids duplicate work and makes sure nobody's toes get stepped on.
id: Jika bug "in progress"di pelacak bug, jangan mulai mengerjakannya tanpa menghubungi penulis. Coba di IRC, atau melalui tautan kontak email launchpad. Jika Anda tidak mendapatkan respons setelah waktu yang masuk akal, lanjutkan. Memeriksa terlebih dahulu untuk menghindari duplikat pekerjaan dan memastikan tidak ada jari kaki diinjak (nobody's toes get stepped on).

en: If a rule specified is not found in the policy file, the policy check will return False and the action will not be allowed.
id: Jika aturan yang ditentukan tidak ditemukan dalam file kebijakan, pemeriksaan kebijakan akan mengembalikan False dan tindakan tidak akan diizinkan.

en: If a single function can work for both single-object and multi-object cases then simply providing a ``handle`` function will internally route both ``single`` and ``multiple`` requests to ``handle`` with the calls from ``single`` being transformed into a list containing only the single object id.
id: Jika fungsi tunggal dapat bekerja untuk kasus objek tunggal dan multi-objek maka cukup dengan menyediakan fungsi ``handle` `akan secara internal rute permintaan ``single`` dan ``multiple`` ke ``handle`` dengan panggilan dari ``single`` sedang diubah menjadi list yang hanya berisi id objek tunggal.

en: If a tab returns ``False`` from ``enabled`` it will ignore the value of ``preload`` and only render the HTML of the tab after being clicked.
id: Jika sebuah tab mengembalikan ``False`` dari ``enabled`` maka akan mengabaikan nilai ``preload`` dan hanya merender HTML dari tab setelah diklik.

en: If all statuses are ``True``, return ``True``.
id: Jika semua status adalah ``True``, kembalikan ``True``.

en: If any statuses are ``False``, return ``False``.
id: Jika ada status ``False``, kembalikan ``False``.

en: If authenticated, this return the user object based on the user ID and session data.
id: Jika dikonfirmasi, ini mengembalikan objek pengguna berdasarkan ID pengguna dan data sesi.

en: If dependencies are added to either ``horizon`` or ``openstack_dashboard``, they should be added to ``requirements.txt``.
id: Jika dependensi ditambahkan ke ``horizon`` atau ``openstack_dashboard``, mereka harus ditambahkan ke ``requirement.txt``.

en: If for some reason your plugin needs to register other python modules to ``ADD_INSTALLED_APPS``, ensure that you include its ``<modulename>`` additionally.
id: Jika karena alasan tertentu plugin Anda perlu mendaftarkan modul python lain ke ``ADD_INSTALLED_APPS``, pastikan Anda menyertakan ``<modulename> `` tambahannya.

en: If keystone_provider is given then we switch the user to the keystone provider using K2K federation. Otherwise if keystone_provider is None then we switch the user back to the Identity Provider Keystone which a non federated token auth will be used.
id: Jika keystone_provider diberikan, maka kami mengalihkan pengguna ke penyedia keystone menggunakan federasi K2K. Kalau tidak, jika keystone_provider adalah None maka kita mengalihkan pengguna kembali ke Identity Provider Keystone yang akan digunakan token auth bukan federasi.

en: If no statuses are ``False`` but any or ``None``, return ``None``.
id: Jika tidak ada status ``False`` tetapi ada atau ``None``, kembalikan ``None``.

en: If no value is found from the WEBSSO_IDP_MAPPING dictionary, it will treat the value as the global WebSSO protocol <protocol_id> and construct the WebSSO URL by::
id: Jika tidak ada nilai yang ditemukan dari kamus WEBSSO_IDP_MAPPING, itu akan memperlakukan nilai sebagai protokol global WebSSO <protocol_id> dan membangun URL WebSSO dengan::

en: If none of the actions have caused an early exit from the view, the standard response from the view is returned (usually the rendered table).
id: Jika tanpa tindakan menyebabkan keluar awal dari tampilan, respons standar dari tampilan dikembalikan (biasanya tabel yang rendered).

en: If not present or not defined on settings then REMOTE_ADDR is used.
id: Jika tidak ada atau tidak didefinisikan pada pengaturan maka REMOTE_ADDR digunakan.

en: If object is passed, it checks if the user has any of the required perms for this object.
id: Jika objek dilewatkan, ia memeriksa apakah pengguna memiliki salah satu izin yang diperlukan untuk objek ini.

en: If only one table class is provided, a shortcut ``table`` context variable is also added containing the single table.
id: Jika hanya satu kelas tabel disediakan, variabel konteks ``table`` shortcut juga ditambahkan yang berisi tabel tunggal.

en: If the bug cannot be reproduced, there would be some pre-conditions. It is recommended to request more information from the bug reporter. Setting the status to "Incomplete" usually makes sense in this case.
id: Jika bug tidak dapat direproduksi, akan ada beberapa prasyarat. Direkomendasikan untuk meminta informasi lebih lanjut dari pelapor bug. Menyetel status ke "Incomplete" biasanya masuk akal dalam kasus ini.

en: 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::
id: 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 :

en: If the exception is not re-raised, an appropriate wrapper exception class indicating the type of exception that was encountered will be returned. If details is None (default), take it from exception sys.exc_info. If details is other string, then use that string explicitly or if details is empty then suppress it.
id: Jika pengecualian tidak dimunculkan kembali, kelas pengecualian pembungkus (wrapper exception class) yang sesuai yang menunjukkan jenis pengecualian yang ditemukan akan dikembalikan. Jika detailnya None (default), ambil dari pengecualian sys.exc_info. Jika detailnya adalah string lain, gunakan string itu secara eksplisit atau jika detailnya kosong, sembunyikan.

en: If the following applies to the patch, a release note is required:
id: Jika hal berikut ini berlaku untuk patch, catatan rilis diperlukan:

en: If the form is invalid, render the invalid form.
id: Jika formulir tidak valid, render formulir yang tidak valid.

en: If the form is valid, redirect to the supplied URL.
id: Jika formulirnya valid, alihkan ke URL yang disediakan.

en: If the tab is disabled but you wish to return it anyway, you can pass ``True`` to the allow_disabled argument.
id: Jika tab dinonaktifkan tetapi Anda tetap ingin mengembalikannya, Anda dapat meneruskan  ``True`` ke argumen allow_disabled.

en: If the tab is not allowed or not enabled this method returns ``None``.
id: Jika tab tidak diizinkan atau tidak diaktifkan, metode ini kembali ``None``.

en: If the tab is not enabled, the classes the class ``"disabled"`` will be added.
id: Jika tab tidak diaktifkan, kelas yang kelasnya akan ``"disabled"`` akan ditambahkan.

en: If the tab is the active tab for the tab group, in which the class ``"active"`` will be added.
id: Jika tab adalah tab aktif untuk grup tab, di mana kelas ``"active"`` akan ditambahkan.

en: If the user authenticated has a default project set, the token will be automatically scoped to their default project.
id: Jika pengguna yang diautentikasi memiliki set proyek default, token akan secara otomatis dicakup ke proyek default mereka.

en: If the user authenticated has no default project set, the authentication backend will try to scope to the projects returned from the user's assigned projects. The first successful project scoped will be returned.
id: Jika pengguna yang diautentikasi tidak memiliki set proyek default, backend otentikasi akan mencoba untuk lingkup ke proyek yang dikembalikan dari proyek yang ditugaskan pengguna. Proyek pertama yang berhasil mencakup akan dikembalikan.

en: If the value matches the ``project_id`` to which the user's token is scoped, then access is allowed.
id: Jika nilainya sesuai dengan ``project_id`` tempat token pengguna dicakup, maka akses diizinkan.

en: If there is unexpected wrapping/truncation there might not be enough space for translations.
id: Jika ada wrapping/truncation yang tidak terduga, mungkin tidak ada cukup ruang untuk terjemahan.

en: If tuple or list - then setting self.current_present_action = n will set the current active item from the list(action_present[n])
id: Jika tuple atau daftar - kemudian pengaturan self.current_present_action = n akan mengatur item aktif saat ini dari list(action_present[n])

en: If typecasting is desired, explicit casting is preferred to keep the meaning of your code clear.
id: Jika typecasting diinginkan, casting eksplisit lebih disukai untuk menjaga makna kode Anda tetap jelas.

en: If you already know everything about testing but are fed up with trying to debug why a specific test failed, you can skip the intro and jump straight to :ref:`debugging_unit_tests`.
id: Jika Anda sudah mengetahui segala sesuatu tentang pengujian tetapi muak dengan mencoba men-debug mengapa tes tertentu gagal, Anda dapat melewati intro dan langsung melompat ke :ref:`debugging_unit_tests`.

en: If you are able to hit the URL pattern in ``urls.py`` in your browser, you have successfully deployed your plugin! For plugins that do not have a URL, check that your static resources are loaded using the browser inspector.
id: Jika Anda dapat menekan pola URL di ``urls.py`` di browser Anda, Anda telah berhasil menggunakan plugin Anda! Untuk plugin yang tidak memiliki URL, periksa apakah sumber daya statis Anda dimuat menggunakan inspektur browser.

en: If you are creating a Python plugin, you may ignore the ``static`` folder. Most of the classes you need are provided for in Python. If you intend on adding custom front-end logic, you will need to include additional JavaScript here.
id: Jika Anda membuat plugin Python, Anda dapat mengabaikan folder ``static``. Sebagian besar kelas yang Anda butuhkan disediakan dengan Python. Jika Anda ingin menambahkan logika front-end kustom, Anda harus memasukkan JavaScript tambahan di sini.

en: 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.
id: 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.

en: If you are preparing a new plugin, you will use ``<modulename>`` as ``INSTALLED_APPS`` in most cases as suggested in this tutorial. This is good and there is nothing more to do.
id: Jika Anda menyiapkan plugin baru, Anda akan menggunakan ``<modulename> `` sebagai ``INSTALLED_APPS`` dalam banyak kasus seperti yang disarankan dalam tutorial ini. Ini bagus dan tidak ada lagi yang bisa dilakukan.

en: 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>`_.
id: 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>`_.

en: 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 so they do not cause issues in unexpected places.
id: Jika Anda tidak dapat menggunakan variabel yang ada - seperti untuk fungsionalitas yang sangat spesifik - pertahankan aturan baru sespesifik mungkin untuk komponen Anda sehingga tidak menimbulkan masalah di tempat yang tidak terduga.

en: 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.
id: 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.

en: If you can't run a virtual display, or would prefer not to, you can use the PhantomJS web driver instead::
id: Jika Anda tidak dapat menjalankan tampilan virtual, atau memilih untuk tidak melakukannya, Anda dapat menggunakan driver web PhantomJS sebagai gantinya::

en: If you do the first suggestion above *first* it makes the second one far less painful. Write once, use everywhere.
id: Jika Anda melakukan saran pertama di atas *first*  itu membuat yang kedua jauh lebih tidak menyakitkan. Tulis sekali, gunakan di mana-mana.

en: If you don't see any instance data, you haven't created any instances yet. Go to dashboard ``Project`` -> ``Images``, select a small image, for example, ``cirros-0.3.1-x86_64-uec`` , click ``Launch`` and enter an ``Instance Name``, click the button ``Launch``. It should create an instance if the OpenStack or devstack is correctly set up. Once the creation of an instance is successful, go to ``My Dashboard`` again to check the data.
id: Jika Anda tidak melihat data contoh apa pun, Anda belum membuat instance apa pun. Pergi ke dasbor ``Project`` -> ``Images``, pilih image kecil, misalnya, ``cirros-0.3.1-x86_64-uec``, klik ``Launch`` dan masukkan ``Instance Name``, klik tombol ``Launch``. Itu harus membuat contoh jika OpenStack atau devstack diatur dengan benar. Setelah pembuatan instance berhasil, buka ``My Dashboard`` lagi untuk memeriksa data.

en: If you get new crashes, there is probably a bug.
id: Jika Anda mendapatkan crash baru, mungkin ada bug.

en: If you have no plans to add AngularJS to your plugin, you may skip this section. In the tutorial below, we will show you how to customize your panel using Angular.
id: Jika Anda tidak memiliki rencana untuk menambahkan AngularJS ke plugin Anda, Anda dapat melewati bagian ini. Dalam tutorial di bawah ini, kami akan menunjukkan kepada Anda bagaimana menyesuaikan panel Anda menggunakan Angular.

en: If you need to install PhantomJS, you may do so with `npm` like this::
id: Jika Anda perlu menginstal PhantomJS, Anda dapat melakukannya dengan `npm` seperti ini::

en: If you need to update a release note of a past release, edit a corresponding release note file in a stable branch directly.
id: Jika Anda perlu memperbarui catatan rilis dari rilis yang lalu, edit file catatan rilis yang sesuai di cabang stabil secara langsung.

en: If you see a string in English it's not translatable. Should it be?
id: Jika Anda melihat string dalam bahasa Inggris, itu tidak dapat diterjemahkan. Haruskah begitu?

en: 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)
id: Jika Anda melihat string dalam bahasa terjemahan yang tepat, itu berasal dari sumber eksternal. (Itu tidak buruk, kadang-kadang hanya berguna untuk mengetahui)

en: 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.
id: 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.

en: If you turned compression off during development via ``COMPRESS_ENABLED = False`` in local_settings.py, re-enable compression and test your code before submitting.
id: Jika Anda mematikan kompresi selama pengembangan melalui ``COMPRESS_ENABLED = False`` di local_settings.py, aktifkan kembali kompresi dan uji kode Anda sebelum mengirim.

en: If you upgrade Horizon, you might need to update your ``openstack_dashboard/local/local_settings.py`` file with new parameters from ``openstack_dashboard/local/local_settings.py.example`` to do so, first update Horizon
id: Jika Anda memutakhirkan Horizon, Anda mungkin perlu memperbarui file ``openstack_dashboard/local/local_settings.py`` Anda dengan parameter baru dari ``openstack_dashboard/local/local_settings.py.example`` untuk melakukannya, pertama perbarui Horizon

en: 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::
id: Jika Anda menggunakan perintah ``tree mydashboard`` untuk membuat daftar direktori ``mydashboard`` di ``openstack_dashboard/dashboards`` , Anda akan melihat struktur direktori yang terlihat seperti berikut ::

en: 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`` ::
id: 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`` ::

en: 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``::
id: 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``::

en: If you want to change the title of the ``index.html`` file to be something else, you can change it. For example, change it to be ``My Panel`` in the ``block title`` section.  If you want the ``title`` in the ``block page_header`` section to be something else, you can change it. For example, change it to be ``My Panel``. The updated code could be like::
id: Jika Anda ingin mengubah judul file ``index.html`` menjadi sesuatu yang lain, Anda dapat mengubahnya. Sebagai contoh, ubahlah menjadi ``My Panel`` di bagian ``block title``. Jika Anda ingin ``title`` di bagian ``block page_header`` menjadi sesuatu yang lain, Anda dapat mengubahnya. Sebagai contoh, ubahlah menjadi ``My Panel``. Kode yang diperbarui bisa seperti::

en: 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::
id: Jika Anda ingin menjalankan suite tanpa kepala, tanpa bisa melihatnya (seperti yang dijalankan pada Jenkins), Anda dapat menjalankan tes::

en: If you would like to add a new feature to horizon, file a blueprint to https://blueprints.launchpad.net/horizon. You can find a template for a blueprint at https://blueprints.launchpad.net/horizon/+spec/template. The template is not a strict requirement but it would be nice to cover a motivation and an approach of your blueprint. From the nature of GUI, a discussion on UI design during a patch review could be more productive, so there is no need to explain the detail of UI design in your blueprint proposal.
id: Jika Anda ingin menambahkan fitur baru ke horizon, ajukan cetak biru ke https://blueprints.launchpad.net/horizon. Anda dapat menemukan template untuk cetak biru di https://blueprints.launchpad.net/horizon/+spec/template. Templat bukanlah persyaratan yang ketat tetapi akan bagus untuk mencakup motivasi dan pendekatan cetak biru Anda. Dari sifat GUI, pembahasan desain UI pada saat review patch bisa lebih produktif, sehingga tidak perlu menjelaskan detail desain UI dalam proposal cetak biru Anda.

en: If you're looking for some smaller, please look through the list of bugs and find what you think you can work on. If you are not sure the status of a bug feel free to ask to the horizon team. We can help you. Note that we recently do not maintain 'low-hanging-fruit' tag and some of them with this tag are not simple enough.
id: Jika Anda mencari beberapa yang lebih kecil, silakan lihat daftar bug dan temukan apa yang menurut Anda dapat Anda kerjakan. Jika Anda tidak yakin status bug jangan ragu untuk bertanya kepada tim horizon. Kami bisa membantumu. Perhatikan bahwa kami baru-baru ini tidak mempertahankan 'low-hanging-fruit' tag dan beberapa di antaranya dengan tanda ini tidak cukup sederhana.

en: Imagine if all packages had a local copy of jQuery. If a security hole is discovered in jQuery, we must write more than 90 patches in Debian, one for each package that includes a copy. This is simply not practical. Therefore, it is unacceptable for Horizon to copy code from other repositories when creating a package. Copying code from another repository tends to create a fork, diverging from the upstream code. The fork includes code that is not being maintained, so if a bug is discovered in the original upstream, it cannot easily be fixed by updating a single package.
id: Bayangkan jika semua paket memiliki salinan jQuery lokal. Jika lubang keamanan ditemukan di jQuery, kita harus menulis lebih dari 90 patch di Debian, satu untuk setiap paket yang menyertakan salinan. Ini sama sekali tidak praktis. Oleh karena itu, Horizon tidak dapat diterima untuk menyalin kode dari repositori lain saat membuat paket. Menyalin kode dari repositori lain cenderung membuat fork, menyimpang dari kode hulu. Fork menyertakan kode yang tidak dipelihara, jadi jika bug ditemukan di hulu asli, itu tidak dapat dengan mudah diperbaiki dengan memperbarui satu paket.

en: In AngularJS templates
id: Dalam template AngularJS

en: In Debian, it is generally forbidden to have multiple versions of the same library in the same Debian release. Very few exceptions exist.
id: Di Debian, umumnya dilarang memiliki beberapa versi dari perpustakaan yang sama dalam rilis Debian yang sama. Sangat sedikit pengecualian yang ada.

en: In Django
id: Dalam Django

en: In Django templates
id: Dalam template Django

en: In JavaScript
id: Dalam JavaScript

en: In Keystone V3, region has been deprecated in favor of region_id.
id: Di Keystone V3, region sudah tidak digunakan lagi karena region_id.

en: In ``urls.py``, we have the named parameter. E.g. ``resource_class_id``. ::
id: Dalam ``urls.py``, kami memiliki parameter bernama. Misalnya. ``resource_class_id``. ::

en: 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). ::
id: 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). ::

en: In ``workflows.py`` we process the data, it is just more complex django form. ::
id: Dalam ``workflows.py`` kami memproses data, itu hanya bentuk Django yang lebih kompleks. ::

en: In addition to John Papa, the following guidelines are divided into required and recommended sections.
id: Selain John Papa, pedoman berikut ini dibagi menjadi bagian yang diperlukan dan direkomendasikan.

en: In addition to the standard Django user attributes, this class also has the following:
id: Selain atribut pengguna Django standar, kelas ini juga memiliki yang berikut:

en: In addition, if you plan to support translation on your dashboard plugin, it is recommended to choose a name like ``xxxx-dashboard`` (or ``xxxx-ui``. ``xxxx-horizon``). The OpenStack CI infra script considers a repository with these suffixes as Django project.
id: Selain itu, jika Anda berencana untuk mendukung terjemahan pada plugin dashboard Anda, disarankan untuk memilih nama seperti  ``xxxx-dashboard`` (atau ``xxxx-ui``. ``xxxx-horizon``). Skrip infra CI OpenStack menganggap repositori dengan sufiks ini sebagai proyek Django.

en: In each case the value must also be present in available_regions or we move to the next level of precedence.
id: Dalam setiap kasus, nilainya juga harus ada di available_regions atau kami pindah ke tingkat prioritas berikutnya.

en: In essence, core reviewers share the following common ideals:
id: Intinya, pengulas inti berbagi cita-cita umum berikut:

en: In free software distributions that actively maintain OpenStack packages (such as RDO, Debian, and Ubuntu), minified JavaScript is considered non-free. This means that minified JavaScript should *not* be present in upstream source code. At the very least, a non-minified version should be present next to the minified version. Also, be aware of potential security issues with minifiers. This `blog post`_ explains it very well.
id: Dalam distribusi perangkat lunak gratis yang secara aktif memelihara paket-paket OpenStack (seperti RDO, Debian, dan Ubuntu), minified JavaScript dianggap tidak bebas. Ini berarti bahwa JavaScript yang diperkecil seharusnya *not* ada di kode sumber hulu. Paling tidak, versi non-minify harus ada di sebelah versi minified. Juga, perhatikan potensi masalah keamanan dengan minifiers.  `blog post`_ ini menjelaskan dengan sangat baik.

en: In general new code without unit tests will not be accepted, and every bugfix *must* include a regression test.
id: Secara umum kode baru tanpa tes unit tidak akan diterima, dan setiap perbaikan bug *must*  menyertakan uji regresi.

en: In general, all changes should be proposed along with at least unit test coverage (python or JavaScript). Integration test support would be appreciated.
id: Secara umum, semua perubahan harus diusulkan bersama dengan setidaknya cakupan pengujian unit (python atau JavaScript). Dukungan uji integrasi akan sangat dihargai.

en: In most distributions, it is not acceptable to have multiple versions of the same piece of software. In Red Hat systems, it is technically possible to install 2 versions of one library at the same time, but a few restrictions apply, especially for usage. However, package maintainers try to avoid multiple versions as much as possible. For package dependency resolution, it might be necessary to provide packages for depending packages as well. For example, if you had Django-1.4 and Django-1.8 in the same release, you must provide Horizon built for Django-1.4 and another package providing Horizon built for Django-1.8. This is a large effort and needs to be evaluated carefully.
id: Dalam sebagian besar distribusi, tidak dapat diterima untuk memiliki beberapa versi dari perangkat lunak yang sama. Dalam sistem Red Hat, secara teknis dimungkinkan untuk menginstal 2 versi dari satu perpustakaan pada saat yang sama, tetapi beberapa pembatasan berlaku, terutama untuk penggunaan. Namun, pengelola paket berusaha menghindari beberapa versi sebanyak mungkin. Untuk resolusi ketergantungan paket, mungkin perlu menyediakan paket untuk paket yang tergantung juga. Misalnya, jika Anda memiliki Django-1.4 dan Django-1.8 dalam rilis yang sama, Anda harus menyediakan Horizon built untuk Django-1.4 dan paket lain yang menyediakan Horizon built untuk Django-1.8. Ini adalah upaya besar dan perlu dievaluasi dengan cermat.

en: 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.
id: 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.

en: In order to make ``My Dashboard`` show up along with the existing dashboards like ``Project`` or ``Admin`` on horizon, you need to create a file called ``_50_mydashboard.py`` under ``openstack_dashboard/enabled`` and add the following::
id: Untuk membuat ``My Dashboard`` muncul bersama dengan dashboard yang ada seperti ``Project`` atau ``Admin`` di horizon, Anda perlu membuat file bernama ``_50_mydashboard.py`` di bawah ``openstack_dashboard/enabled`` dan tambahkan berikut ini::

en: In our HTML files, we should focus on layout.
id: Dalam file HTML kita, kita harus fokus pada tata letak.

en: In our JS files, we should focus on logic rather than attempting to manipulate/style elements.
id: Dalam file JS kami, kami harus fokus pada logika daripada mencoba untuk manipulate/style elemen.

en: In the Ocata release of Horizon a new "OpenStack Profiler" panel was introduced. Once it is enabled and all prerequisites are set up, you can see which API calls Horizon actually makes when rendering a specific page. To re-render the page while profiling it, you'll need to use the "Profile" dropdown menu located in the top right corner of the screen. In order to be able to use "Profile" menu, the following steps need to be completed:
id: Dalam rilis Ocata dari Horizon, sebuah panel "OpenStack Profiler" baru diperkenalkan. Setelah diaktifkan dan semua prasyarat telah disiapkan, Anda dapat melihat panggilan API yang sebenarnya dibuat oleh Horizon saat merender halaman tertentu. Untuk merender ulang halaman saat membuat profil, Anda harus menggunakan menu tarik-turun (dropdown) "Profil" yang terletak di sudut kanan atas layar. Agar dapat menggunakan menu "Profil", langkah-langkah berikut harus diselesaikan:

en: In the event that no tabs are either allowed or enabled, this method is the fallback handler. By default it's a no-op, but it exists to make redirecting or raising exceptions possible for subclasses.
id: Jika tidak ada tab yang diizinkan atau diaktifkan, metode ini adalah penangan mundur (fallback handler). Secara default itu adalah no-op, tetapi itu ada untuk membuat pengalihan atau meningkatkan pengecualian mungkin untuk subclass.

en: In the event that there is no GET request parameter, the value of the query parameter is invalid, or the tab is not allowed/enabled, the return value of this function is None.
id: Jika tidak ada parameter permintaan GET, nilai parameter kueri tidak valid, atau tab tidak allowed/enabled, nilai balik fungsi ini adalah None.

en: 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 object needs to be created, uses memory, and needs to be garbage collected.
id: Dalam pendekatan pertama objek jQuery untuk ``document`` dibuat setiap kali. Pendekatan kedua hanya membuat satu objek jQuery dan menggunakannya kembali. Setiap objek harus dibuat, menggunakan memori, dan perlu dikumpulkan.

en: In the pop-up that is displayed, keep the recipient as "Yourself", and set the subscription name to something useful like "horizon-bugs". You can choose either option for how much mail you get, but keep in mind that getting mail for all changes - while informative - will result in more emails.
id: Di pop-up yang ditampilkan, pertahankan penerima sebagai "Yourself", dan setel nama langganan menjadi sesuatu yang berguna seperti "horizon-bugs". Anda dapat memilih salah satu opsi untuk berapa banyak email yang Anda terima, tetapi perlu diingat bahwa menerima email untuk semua perubahan - meskipun informatif - akan menghasilkan lebih banyak email.

en: In the template you would just need to include the following to render the table::
id: Dalam templat Anda hanya perlu menyertakan hal berikut untuk membuat (render) tabel::

en: 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::
id: 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``::

en: In this example, we are listening for events generated by the wizard and the user panel. We also emit a custom event that other controllers can register to when favorite color changes.
id: Dalam contoh ini, kami mendengarkan event yang dihasilkan oleh wizard dan panel pengguna. Kami juga memancarkan (emit) event khusus yang dapat didaftarkan oleh pengontrol lain saat warna favorit berubah.

en: 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.
id: 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.

en: In this tutorial, we will leave this file blank. Include additional information here if your step requires it. Otherwise, remove the file and the ``helpUrl`` property from your step.
id: Dalam tutorial ini, kita akan membiarkan file ini kosong. Sertakan informasi tambahan di sini jika langkah Anda mengharuskannya. Jika tidak, hapus file dan properti ``helpUrl`` dari langkah Anda.

en: Include all tools that are required to build the package.
id: Sertakan semua alat yang diperlukan untuk membangun paket.

en: Included at the root of the repository is the ``tox.ini`` config which invokes both sets of tests, and optionally generates analyses on both components in the process. ``tox`` is what Jenkins uses to verify the stability of the project, so you should make sure you run it and it passes before you submit any pull requests/patches.
id: Termasuk di root repositori adalah konfigurasi ``tox.ini`` yang memanggil kedua set tes, dan secara opsional menghasilkan analisis pada kedua komponen dalam proses. ``tox`` adalah apa yang digunakan Jenkins untuk memverifikasi stabilitas proyek, jadi Anda harus memastikan Anda menjalankannya dan lolos sebelum Anda mengirimkan penarikan requests/patches.

en: Indicates whether there are any available actions on this table.
id: Menunjukkan apakah ada tindakan yang tersedia di tabel ini.

en: Information on how to work with specific areas of Horizon can be found in the following topic guides.
id: Informasi tentang cara bekerja dengan area khusus Horizon dapat ditemukan di panduan topik berikut.

en: Inherited from the ``Action`` class.
id: Diwarisi dari kelas ``Action``.

en: Inherits from the base ``django.contrib.auth.forms.AuthenticationForm`` class for added security features.
id: Warisan (inherit) dari kelas ``django.contrib.auth.forms.AuthenticationForm`` untuk fitur keamanan tambahan.

en: Inline edit handler.
id: Penangan redaksi inline.

en: Inline editing
id: Pengeditan sebaris

en: Insert the form into the context dict.
id: Masukkan form ke dalam kamus konteks.

en: Inside of ``dashboard.py`` you would have a class definition and the registration process
id: Di dalam ``dashboard.py`` Anda akan memiliki definisi kelas dan proses pendaftaran

en: Install the prerequisite packages.
id: Instal paket prasyarat.

en: Installing Your Plugin
id: Menginstal Plugin Anda

en: Installs the npm dependencies listed in ``package.json`` and runs the JavaScript tests. Can also take optional arguments, which will be executed as an npm script following the dependency install, instead of ``test``.
id: Instal dependensi npm yang tercantum dalam ``package.json`` dan jalankan tes JavaScript. Dapat juga mengambil argumen opsional, yang akan dieksekusi sebagai skrip npm setelah instalasi dependensi, sebagai ganti ``test``.

en: Instructions for setting up ESLint: `ESLint setup instructions`_
id: Instruksi untuk pengaturan ESLint: `ESLint setup instructions`_

en: Integrating a new xstatic package into Horizon
id: Mengintegrasikan paket xstatic baru ke Horizon

en: Integration Tests
id: Tes Integrasi

en: Interfacing with other OpenStack teams
id: Berinteraksi dengan tim OpenStack lainnya

en: Introduce ``oslo.config``
id: Mengintrodusir ``oslo.config``

en: Introduce oslo.config
id: Mengintroduksi oslo.config

en: Introduction
id: Pengantar

en: Investigation is being summarized in `an etherpad page <https://etherpad.openstack.org/p/horizon-config-rethink>`__.
id: Investigasi sedang dirangkum dalam `an etherpad page <https://etherpad.openstack.org/p/horizon-config-rethink>`__.

en: It adds the Horizon config to the context as well as setting the names ``True`` and ``False`` in the context to their boolean equivalents for convenience.
id: Ini menambahkan konfigurasi Horizon ke konteks serta pengaturan nama ``True`` dan ``False`` dalam konteks ke ekuivalen boolean untuk kenyamanan.

en: It allows to render data-xxx attributes from choices. This widget also allows user to specify additional html attributes for choices.
id: Hal ini memungkinkan untuk membuat atribut data-xxx dari pilihan. Widget ini juga memungkinkan pengguna untuk menentukan atribut html tambahan untuk pilihan.

en: It also calls the ``validate`` method to allow for finer-grained checks on the context data.
id: Itu juga memanggil metode ``validasi`` untuk memungkinkan pemeriksaan yang lebih halus pada data konteks.

en: It also set the appropriate row properties which require the row's data to be determined.
id: Ini juga mengatur properti baris yang sesuai yang membutuhkan data baris untuk ditentukan.

en: It always takes tuple, so using only one filter would look like this ::
id: Itu selalu membutuhkan tuple, jadi hanya menggunakan satu filter akan terlihat seperti ini ::

en: It can be used after validation based on problems reported via the API. This is useful when you wish for API errors to appear as errors on the form rather than using the messages framework.
id: Ini dapat digunakan setelah validasi berdasarkan masalah yang dilaporkan melalui API. Ini berguna ketika Anda ingin agar kesalahan API muncul sebagai kesalahan pada form daripada menggunakan kerangka pesan.

en: It compiles the table instances for each table attached to any :class:`horizon.tabs.TableTab` instances on the tab group. This step is necessary before processing any tab or table actions.
id: Ini mengkompilasi instance tabel untuk setiap tabel yang dilampirkan ke instance :class: `horizon.tabs.TableTab` pada grup tab. Langkah ini diperlukan sebelum memproses tindakan tab atau tabel apa pun.

en: It determines the request should be handled by a preemptive action on this table or by an AJAX row update before loading any data.
id: Itu menentukan permintaan harus ditangani oleh tindakan preemptive pada tabel ini atau dengan pembaruan baris AJAX sebelum memuat data apa pun.

en: It determines whether the request should be handled by any action on this table after data has been loaded.
id: Ini menentukan apakah permintaan harus ditangani oleh tindakan apa pun pada tabel ini setelah data dimuat.

en: It gives access to numerous additional features:
id: Ini memberikan akses ke berbagai fitur tambahan:

en: It is better to expose only HORIZON_CONFIG settings which can be really exposed to operators. For such settings, we should define new settings in openstack_dashboard and can populate them into HORIZON_CONFIG in ``settings.py``.
id: Lebih baik untuk mengekspos hanya pengaturan HORIZON_CONFIG yang dapat benar-benar diekspos ke operator. Untuk pengaturan seperti itu, kita harus mendefinisikan pengaturan baru di openstack_dashboard dan dapat mengisinya ke HORIZON_CONFIG di ``settings.py``.

en: It is determined based on the current request.
id: Itu ditentukan berdasarkan permintaan saat ini.

en: It is detremined based on the dictionary of column name to status mappings passed in.
id: Ini ditentukan berdasarkan kamus nama kolom untuk pemetaan status yang disahkan.

en: It is expected that ``manage.py collectstatic`` will be run during package build. This is the `recommended way`_ for Django applications. Depending on configuration, it might be required to ``manage.py compress`` during package build, too.
id: Diharapkan ``manage.py collectstatic`` akan dijalankan selama pembuatan paket. Ini adalah `recommended way`_ untuk aplikasi Django. Bergantung pada konfigurasi, mungkin diperlukan  ``manage.py compress`` selama pembuatan paket juga.

en: It is important to note that the scope is the glue between our controllers, this is how we are propagating events from one controller to another. We can propagate events upward using the $emit method and propagate events downward using the $broadcast method.
id: Penting untuk dicatat bahwa ruang lingkup adalah perekat antara pengontrol kami, ini adalah bagaimana kami menyebarkan (propagate) event dari satu pengontrol ke pengontrol lainnya. Kami dapat menyebarkan event ke atas menggunakan metode $emit dan menyebarkan event ke bawah menggunakan metode $broadcast.

en: It is needed for _KeystoneAdapter to get the user_id from, but otherwise behaves as if it doesn't exist (is falsy).
id: Diperlukan untuk _KeystoneAdapter untuk mendapatkan user_id dari, tetapi sebaliknya berperilaku seolah-olah itu tidak ada (palsu).

en: It is not recommended that individual release notes use **prelude** section as it is for release highlights.
id: Tidak disarankan agar catatan rilis individual menggunakan bagian **prelude ** karena untuk highlight rilis.

en: 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.
id: 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.

en: It is raised if required data is missing, or existing data is not valid.
id: Itu dibangkitkan jika data yang diperlukan hilang, atau data yang ada tidak valid.

en: It is used to allow a custom checkbox experience.
id: Ini digunakan untuk memungkinkan pengalaman kotak centang khusus.

en: It is used to modify an incoming obj_id (used in Horizon) to the data type or format expected by the API.
id: Ini digunakan untuk memodifikasi obj_id yang masuk (digunakan dalam Horizon) ke tipe data atau format yang diharapkan oleh API.

en: It is used to track exceptions that have gone through :func:`horizon.exceptions.handle` more than once.
id: Ini digunakan untuk melacak pengecualian yang telah melalui :func:`horizon.exceptions.handle` lebih dari satu kali.

en: It is worth noting that ``BatchAction`` and ``DeleteAction`` are extensions of the standard ``Action`` class. Some ``BatchAction`` or ``DeleteAction`` classes may cause some unrecoverable results, like deleted images or unrecoverable instances. It may be helpful to specify specific help_text to explain the concern to the user, such as "Deleted images are not recoverable".
id: Perlu dicatat bahwa ``BatchAction`` dan `` DeleteAction`` adalah ekstensi dari kelas ``Action`` standar. Beberapa kelas ``BatchAction`` atau ``DeleteAction`` dapat menyebabkan beberapa hasil yang tidak dapat dipulihkan, seperti image yang dihapus atau instance yang tidak dapat dipulihkan. Mungkin bermanfaat untuk menentukan help_text spesifik untuk menjelaskan masalah kepada pengguna, seperti "Deleted images are not recoverable".

en: It knows about details such as:
id: Ia tahu tentang detail seperti:

en: It raises a new ``ActionError`` with the desired message if the keywords are found. This allows selective control over API error messages.
id: Ini memunculkan ``ActionError`` baru dengan pesan yang diinginkan jika kata kunci ditemukan. Ini memungkinkan kontrol selektif atas pesan kesalahan API.

en: It returns the summary value if a valid summation method is specified for it. Otherwise returns ``None``.
id: Ini mengembalikan nilai ringkasan jika metode penjumlahan yang valid ditentukan untuk itu. Kalau tidak mengembalikan ``None``.

en: It runs all the actions in order and calling their ``handle`` methods. Returns ``True`` on full success, or ``False`` for a partial success, e.g. there were non-critical errors. (If it failed completely the function wouldn't return.)
id: Itu menjalankan semua action secara berurutan dan memanggil metode ``handle`` mereka. Mengembalikan ``True`` pada kesuksesan penuh, atau ``False`` untuk sebagian keberhasilan, misal ada kesalahan non-kritis. (Jika gagal sepenuhnya fungsi tidak akan kembali.)

en: 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:
id: 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:

en: 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 about tox in general at https://tox.readthedocs.io/en/latest/.
id: Dimungkinkan juga untuk menjalankan subset tes. Buka ``tox.ini`` di direktori root Horizon untuk melihat daftar lingkungan pengujian. Anda dapat membaca lebih lanjut tentang tox secara umum di https://tox.readthedocs.io/en/latest/.

en: 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.
id: 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.

en: Its interface is very straightforward, but it is responsible for handling some very important tasks such as:
id: Antarmukanya sangat mudah, tetapi bertanggung jawab untuk menangani beberapa tugas yang sangat penting seperti:

en: JS code for testing should be named with extension of ``.mock.js`` and of ``.spec.js``.
id: Kode JS untuk pengujian harus dinamai dengan ekstensi ``.mock.js`` dan dari ``.spec.js``.

en: JS code that defines an Angular module should be in a file with extension of ``.module.js``.
id: Kode JS yang mendefinisikan modul Angular harus dalam file dengan ekstensi ``.module.js``.

en: Jasmine uses specs (``.spec.js``) which are kept with the JavaScript files that they are testing. See the :ref:`js_file_structure` section or the `Examples`_ below for more detail on this.
id: Jasmine menggunakan spesifikasi (``.spec.js``) yang disimpan dengan file JavaScript yang mereka uji. Lihat bagian :ref: `js_file_structure` atau `Examples`_ di bawah untuk detail lebih lanjut tentang ini.

en: Jasmine uses suites and specs:
id: Jasmine menggunakan suite dan spec:

en: JavaScript Testing
id: Pengujian JavaScript

en: JavaScript and CSS libraries using xstatic
id: Perpustakaan JavaScript dan CSS menggunakan xstatic

en: JavaScript files can be discovered automatically, handled manually, or a mix of the two. Where possible, use the automated mechanism. To use the automatic functionality, add::
id: File JavaScript dapat ditemukan secara otomatis, ditangani secara manual, atau campuran keduanya. Jika memungkinkan, gunakan mekanisme otomatis. Untuk menggunakan fungsi otomatis, tambahkan::

en: Keep document reflows to a minimum. DOM manipulation is expensive, and can become a performance issue. If you are accessing the DOM, make sure that you are doing it in the most optimized way. One example is to build up a document fragment and then append the fragment to the DOM in one pass instead of doing multiple smaller DOM updates.
id: Simpan reflow dokumen seminimal mungkin. Manipulasi DOM mahal, dan bisa menjadi masalah kinerja. Jika Anda mengakses DOM, pastikan Anda melakukannya dengan cara yang paling optimal. Salah satu contoh adalah untuk membangun fragmen dokumen dan kemudian menambahkan fragmen ke DOM dalam satu pass sebagai ganti melakukan beberapa pembaruan DOM yang lebih kecil.

en: Keystone endpoint configured in the horizon setting. If WEBSSO_KEYSTONE_URL is defined, its value will be used. Otherwise, the value is derived from: - OPENSTACK_KEYSTONE_URL - AVAILABLE_REGIONS
id: Keystone endpoint dikonfigurasi dalam pengaturan horizon. Jika WEBSSO_KEYSTONE_URL didefinisikan, nilainya akan digunakan. Kalau tidak, nilainya diturunkan dari: - OPENSTACK_KEYSTONE_URL - AVAILABLE_REGIONS

en: 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.
id: 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.

en: Lastly, we added a ``Meta`` class which indicates the meta object that describes the ``instances`` table.
id: Terakhir, kami menambahkan kelas ``Meta`` yang menunjukkan objek meta yang menggambarkan tabel ``instances``.

en: 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.
id: 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.

en: Lines added to ``horizon/test/jasmine/jasmine_tests.py``:
id: Baris ditambahkan ke ``horizon/test/jasmine/jasmine_tests.py``:

en: Lines added to ``openstack_dashboard/enabled/_10_project.py``:
id: Baris ditambahkan ke ``openstack_dashboard/enabled/_10_project.py``:

en: List of scope and rule tuples to do policy checks on, the composition of which is (scope, rule)
id: Daftar lingkup dan aturan tuple untuk melakukan pemeriksaan kebijakan, komposisi yang adalah (ruang lingkup, aturan)

en: Lists names of columns that have required fields.
id: Daftar nama kolom yang memiliki field yang diperlukan.

en: Load the row's data and initialize all the cells in the row.
id: Muat data baris dan inisialisasi semua sel di baris.

en: Loads the tab group.
id: Memuat grup tab.

en: Loads the table data based on a given table_dict and handles them.
id: Memuat data tabel berdasarkan table_dict yang diberikan dan menanganinya.

en: Locates the appropriate action and routes the object data to it.
id: Temukan tindakan yang sesuai dan rutekan data objek ke sana.

en: Log error info when exception occurred.
id: Info kesalahan log saat pengecualian terjadi.

en: Log in and change to the language you pseudo translated.
id: Masuk dan ubah ke bahasa yang Anda pseudo terjemahkan.

en: Log messages and print statements go directly to the console.
id: Log pesan dan cetak pernyataan langsung ke konsol.

en: Logs a user in using a token from Keystone's POST.
id: Mencatat pengguna dalam menggunakan token dari POST Keystone.

en: Logs a user in using the :class:`~openstack_auth.forms.Login` form.
id: Mencatat pengguna dalam menggunakan formulir :class: `~ openstack_auth.forms.Login`.

en: Logs out the user if he is logged in. Then redirects to the log-in page.
id: Logout pengguna jika dia login. Kemudian dialihkan ke halaman login.

en: Mailing list: `openstack-discuss <http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-discuss>`__ with ``[horizon]`` tag.
id: Milis: `openstack-discuss <http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-discuss>`__ dengan tag `[horizon]`.

en: Maintaining accurate, complete, and relevant documentation
id: Menjaga dokumentasi yang akurat, lengkap, dan relevan

en: Make sure that the value returned is a unique value for the id otherwise rendering issues can occur.
id: Pastikan bahwa nilai yang dikembalikan adalah nilai unik untuk id jika tidak masalah rendering dapat terjadi.

en: 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.
id: 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.

en: 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.
id: 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.

en: 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.
id: 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.

en: 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).
id: Pastikan Anda tidak mengarahkan ulang ke tampilan yang tidak ada lagi, misal tampilan ``index`` untuk panel yang digabungkan (seperti instance & volume).

en: Make sure your .pot files are up to date
id: Pastikan file .pot Anda terbaru

en: 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.
id: 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.

en: Make use of Sphinx's autodoc feature to document modules, classes and functions. This keeps the docs close to the source.
id: Manfaatkan fitur autodoc Sphinx untuk mendokumentasikan modul, kelas, dan fungsi. Ini membuat dokumen dekat dengan sumbernya.

en: 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.
id: 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.

en: Making strings translatable
id: Membuat string dapat diterjemahkan

en: Manageable: The core codebase should be simple and easy-to-navigate.
id: Manageable: Basis kode inti harus sederhana dan mudah dinavigasi.

en: Managing Settings
id: Mengelola Pengaturan

en: Matches camel case of other assert functions
id: Cocok dengan camel case fungsi menegaskan lainnya

en: Members of the core reviewer team are expected to:
id: Anggota tim peninjau inti diharapkan untuk:

en: Members of this gerrit group are responsible for maintaining stable branches. The members are expected to understand `the stable branch policy <https://docs.openstack.org/project-team-guide/stable-branches.html>`__. Most members overlaps with the core reviewer team but being a core reviewer is not a requirement for being a member of the stable maintenance team. Folks who would like to be a member of this team is recommended to express how they understand the stable branch policy in reviews.
id: Anggota grup gerrit ini bertanggung jawab untuk memelihara cabang yang stabil. Anggota diharapkan memahami `the stable branch policy <https://docs.openstack.org/project-team-guide/stable-branches.html>`__. Sebagian besar anggota tumpang tindih dengan tim reviewer inti tetapi menjadi reviewer inti bukanlah persyaratan untuk menjadi anggota tim pemeliharaan stabil. Orang yang ingin menjadi anggota tim ini disarankan untuk mengungkapkan bagaimana mereka memahami kebijakan cabang stabil dalam tinjauan.

en: Members of this launchpad group are responsible for bug management. They have privileges to set status, priority and milestone of bugs. Most members overlaps with the core reviewer team but it is not a requirement for being a member of this team.
id: Anggota grup launchpad ini bertanggung jawab atas manajemen bug. Mereka memiliki hak istimewa untuk menetapkan status, prioritas, dan tonggak sejarah bug. Sebagian besar anggota tumpang tindih dengan tim reviewer inti tetapi tidak diwajibkan untuk menjadi anggota tim ini.

en: Members of this launchpad group are responsible for security issues. Members are expected to be familiar with `Vulnerability Management Process <https://security.openstack.org/vmt-process.html>`__ in OpenStack. Private security issues are handled differently from usual public reports. All steps including patch development and review are done in a launchpad bug report.
id: Anggota grup launchpad ini bertanggung jawab atas masalah keamanan. Anggota diharapkan terbiasa dengan `Vulnerability Management Process <https://security.openstack.org/vmt-process.html>` __ di OpenStack. Masalah keamanan pribadi ditangani secara berbeda dari laporan publik biasa. Semua langkah termasuk pengembangan dan peninjauan patch dilakukan dalam laporan bug launchpad.

en: Members of this launchpad group can do all things in the horizon launchpad such as defining series and milestones. This group is included to the bug supervisor team.
id: Anggota grup launchpad ini dapat melakukan semua hal di launchpad horizon seperti menentukan seri dan pencapaian. Grup ini termasuk dalam tim pengawas bug.

en: Mentor community contributors in solution design, testing, and the review process
id: Kontributor komunitas mentor dalam desain solusi, pengujian, dan proses peninjauan

en: Merge the upper-constraints.txt patch and the Horizon patch noting that Horizon's gate may be broken in the interim between these steps, so try to minimise any delay there. With the Depends-On it's actually safe to +W the Horizon patch, which will be held up until the related upper-constraints.txt patch merges.
id: Gabungkan patch upper-constraints.txt dan patch Horizon dengan memperhatikan bahwa gerbang Horizon dapat dipatahkan untuk sementara di antara langkah-langkah ini, jadi cobalah untuk meminimalkan penundaan di sana. Dengan Depends-On, sebenarnya aman untuk +W patch Horizon, yang akan ditahan hingga penggabungan patch upper-constraints.txt terkait.

en: Message Extraction
id: Ekstraksi Pesan

en: Message Substitution
id: Substitusi Pesan

en: 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:
id: 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:

en: Message substitution is not the reverse process of message extraction. The process is entirely different. Lets walk through this process.
id: Substitusi pesan bukanlah proses kebalikan dari ekstraksi pesan. Prosesnya sama sekali berbeda. Mari kita berjalan melalui proses ini.

en: Metaclass to process ExternalFileField fields in a specific way.
id: Metaclass untuk memproses field ExternalFileField dengan cara tertentu.

en: Method must accept an integer/long parameter and return the display forms of the name properly pluralised (depending on the integer) and translated in a string or tuple/list.
id: Metode harus menerima parameter  integer/long dan mengembalikan bentuk tampilan nama yang benar-benar terwujud (tergantung pada integer) dan diterjemahkan dalam string atau tuple/list.

en: Method returning a past action name. This is usually used to display a message when the action is completed.
id: Metode mengembalikan nama aksi sebelumnya. Ini biasanya digunakan untuk menampilkan pesan ketika aksi selesai.

en: Method returning a present action name. This is used as an action label.
id: Metode mengembalikan nama aksi sekarang. Ini digunakan sebagai label tindakan.

en: Method to access whether or not this tab is the active tab.
id: Metode untuk mengakses apakah tab ini adalah tab aktif atau tidak.

en: Microversion references
id: Referensi Microversion

en: Middleware to output operation log.
id: Middleware ke log operasi keluaran.

en: Minified JavaScript policy
id: Kebijakan Minified JavaScript

en: Mixin class to allow ModalFormView and WorkflowView together.
id: Kelas Mixin untuk memungkinkan ModalFormView dan WorkflowView bersama.

en: 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.
id: Mocking adalah praktik menyediakan pengamanan untuk objek atau potongan kode yang tidak perlu Anda uji. Meskipun nyaman, mereka harus digunakan dengan hati-hati *extreme*.

en: Modify the ``Mydashboard`` class to include ``Mygroup`` and add ``mypanel`` as the default panel::
id: Ubah kelas ``Mydashboard`` untuk memasukkan ``Mygroup`` dan tambahkan ``mypanel`` sebagai panel default::

en: Module Reference
id: Referensi Modul

en: Module Structure
id: Struktur Modul

en: Module defining the Django auth backend class for the Keystone API.
id: Modul yang mendefinisikan kelas backend Django auth untuk  Keystone API.

en: Monitor and participate in ``[horizon]`` discussions on the mailing list
id: Pantau dan berpartisipasilah dalam diskusi ``[horizon] `di milis

en: Monitor and participate in-channel at #openstack-horizon
id: Monitor dan berpartisipasi dalam saluran di # openstack-horizon

en: More detailed guidelines for reviewers of patches are available at `OpenDev Developer's Guide <https://docs.opendev.org/opendev/infra-manual/latest/developers.html#code-review>`__.
id: Panduan lebih rinci untuk pengulas patches tersedia di `OpenDev Developer's Guide <https://docs.opendev.org/opendev/infra-manual/latest/developers.html#code-review>`__.

en: Most active contributors are online at IRC while they are active, so it would be the easiest way to contact the team directly. Note that all IRC conversations are stored `here <http://eavesdrop.openstack.org/irclogs/%23openstack-horizon/>`__.
id: Sebagian besar kontributor aktif sedang online di IRC saat mereka aktif, jadi ini akan menjadi cara termudah untuk menghubungi tim secara langsung. Perhatikan bahwa semua percakapan IRC disimpan `here <http://eavesdrop.openstack.org/irclogs/%23openstack-horizon/>`__.

en: Most core reviewers are online in the IRC channel and you can contact them there.
id: Sebagian besar pengulas inti sedang online di IRC channel dan Anda dapat menghubungi mereka di sana.

en: Move on to releasing once you're happy the Horizon changes are stable.
id: Jalan terus ke release setelah Anda menyukai perubahan Horizon stabil.

en: Multiple checks can be made for the same action by merely adding more tuples to the list.  The policy check will use information stored in the session about the user and the result of :meth:`~horizon.tables.Action.get_policy_target` (which can be overridden in the derived action class) to determine if the user can execute the action.  If the user does not have access to the action, the action is not added to the table.
id: Beberapa pemeriksaan dapat dilakukan untuk tindakan yang sama hanya dengan menambahkan lebih banyak tuple ke daftar. Pemeriksaan kebijakan akan menggunakan informasi yang disimpan dalam sesi tentang pengguna dan hasil dari :meth:`~horizon.tables.Action.get_policy_target` (yang dapat ditimpa dalam kelas tindakan yang diturunkan) untuk menentukan apakah pengguna dapat melakukan tindakan. Jika pengguna tidak memiliki akses ke tindakan, tindakan itu tidak ditambahkan ke tabel.

en: Must be implemented by a subclass to allow AJAX updating.
id: Harus diimplementasikan oleh subkelas untuk memungkinkan pembaruan AJAX.

en: Name of your repository
id: Nama repositori Anda

en: Needless to say, it is important to choose a meaningful repository name.
id: Tak perlu dikatakan, penting untuk memilih nama repositori yang bermakna.

en: New Feature Planning
id: Perencanaan Fitur Baru

en: Next you will need to configure Horizon by adding a ``local_settings.py`` file. A good starting point is to use the example config with the following command, from within the ``horizon`` directory.
id: Selanjutnya Anda perlu mengkonfigurasi Horizon dengan menambahkan file ``local_settings.py``. Titik awal yang baik adalah menggunakan contoh config dengan perintah berikut, dari dalam direktori ``horizon``.

en: No embedded content: The XStatic system helps us avoid embedding files that are already available in the distribution, for example, libjs-* or fonts-* packages. It even provides a compatibility layer for distributions. Not every distribution places static files in the same position in the file system. If you are packaging an XStatic package for your distribution, make sure that you are using the static files provided by that specific distribution. Having put together an XStatic package is *no* guarantee to get it into a distribution. XStatic provides only the abstraction layer to use distribution provided static files.
id: Tidak ada konten yang embedded: Sistem XStatic membantu kami menghindari menyematkan (embedding) file yang sudah tersedia dalam distribusi, misalnya, paket libjs-* or fonts-*.  Bahkan menyediakan lapisan kompatibilitas untuk distribusi. Tidak setiap distribusi menempatkan file statis di posisi yang sama di sistem file. Jika Anda mengemas paket XStatic untuk distribusi Anda, pastikan Anda menggunakan file statis yang disediakan oleh distribusi tertentu. Setelah mengumpulkan, paket XStatic menjadi *no* guarantee untuk mendapatkannya menjadi distribusi. XStatic hanya menyediakan lapisan abstraksi untuk menggunakan distribusi file statis yang disediakan.

en: No filters or formatting are applied to the returned data. This is useful when doing calculations on data in the table.
id: Tidak ada filter atau pemformatan yang diterapkan pada data yang dikembalikan. Ini berguna saat melakukan perhitungan pada data dalam tabel.

en: Notably, the field declaration takes an extra argument, ``add_item_link`` which may be a string or callable defining the URL that should be used for the "add" link associated with the field.
id: Khususnya, deklarasi lapangan membutuhkan argumen tambahan, ``add_item_link`` yang mungkin berupa string atau callable yang mendefinisikan URL yang harus digunakan untuk tautan "add" yang terkait dengan field tersebut.

en: Note that :attr:`horizon.tables.DataTableOptions.row_class` and :attr:`horizon.tables.DataTaleOptions.cell_class` are overwritten in this class, so setting them in ``Meta`` has no effect.
id: Perhatikan bahwa :attr:`horizon.tables.DataTableOptions.row_class` dan :attr:`horizon.tables.DataTaleOptions.cell_class` ditimpa dalam kelas ini, jadi mengaturnya di ``Meta`` tidak berpengaruh.

en: Note that ``HORIZON_CONFIG`` is not touched in this step. It will be covered in the next step.
id: Perhatikan bahwa ``HORIZON_CONFIG`` tidak tersentuh pada langkah ini. Ini akan dibahas pada langkah selanjutnya.

en: Note that even if the value of one of the ``contributes`` keys is not present (e.g. optional) the key should still be added to the context with a value of ``None``.
id: Perhatikan bahwa meskipun nilai salah satu kunci ``contributes`` tidak ada (misal opsional) kunci tersebut masih harus ditambahkan ke konteks dengan nilai ``None``.

en: Note that involvements in more works in horizon plugins are up to individuals but it would be nice to be involved if you have time :)
id: Perhatikan bahwa keterlibatan dalam lebih banyak pekerjaan di plugin horizon terserah individu tetapi alangkah baiknya jika Anda terlibat jika Anda punya waktu :)

en: Note that once a package is released, you can not "un-release" it. You should never attempt to modify, delete or rename a released package without a lot of careful planning and feedback from all projects that use it.
id: Perhatikan bahwa setelah sebuah paket dirilis, Anda tidak dapat "un-release". Anda tidak boleh mencoba untuk memodifikasi, menghapus atau mengganti nama paket yang dirilis tanpa banyak perencanaan dan umpan balik yang cermat dari semua proyek yang menggunakannya.

en: Note that the access permission to private information of this team is configured at https://launchpad.net/horizon/+sharing. (You can find "Sharing" menu at the top-right corder of `the launchpad top page <https://launchpad.net/horizon>`__.)
id: Perhatikan bahwa izin akses ke informasi pribadi tim ini dikonfigurasi di https://launchpad.net/horizon/+sharing. (Anda dapat menemukan menu "Sharing" di urutan kanan atas `halaman atas launchpad <https://launchpad.net/horizon>` __.)

en: Note that you may need to rebuild your virtual environment if your plugin is not showing up properly. If your plugin does not show up properly, check your ``.tox`` folder to make sure the plugin's content is as you expect.
id: Perhatikan bahwa Anda mungkin perlu membangun kembali lingkungan virtual Anda jika plugin Anda tidak muncul dengan benar. Jika plugin Anda tidak muncul dengan benar, periksa folder ``.tox`` Anda untuk memastikan konten plugin sesuai dengan yang Anda harapkan.

en: 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::
id: 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)::

en: Now that we have a panel, we need to provide a URL so that users can visit our new panel! This URL generally will point to a view.::
id: Sekarang kami memiliki panel, kami perlu menyediakan URL agar pengguna dapat mengunjungi panel baru kami! URL ini umumnya akan mengarah ke view. ::

en: Now that we have completed our plugin, lets package it and test that it works. If you need a refresher, take a look at the installation section in :ref:`tutorials-plugin`.
id: Sekarang kita telah menyelesaikan plugin kita, mari kita bungkus (package) dan uji apakah itu berfungsi. Jika Anda memerlukan penyegaran, lihat bagian instalasi di :ref:`tutorials-plugin`.

en: Now that you have a complete plugin, it is time to install and test it. The instructions below assume that you have a working plugin.
id: Sekarang Anda memiliki plugin yang lengkap, sekarang saatnya untuk menginstal dan mengujinya. Petunjuk di bawah ini menganggap bahwa Anda memiliki plugin yang berfungsi.

en: Now, the view will tie together the template and the form. Horizon provides a :class:`~horizon.forms.views.ModalFormView` class which simplifies the creation of a view that will contain a modal form.
id: Sekarang, view akan menyatukan templat dan form. Horizon menyediakan kelas :class:`~horizon.forms.views.ModalFormView` yang menyederhanakan pembuatan view yang akan berisi form modal.

en: Often requires writing a separate set of tests and/or using a different testing framework from your unit tests.
id: Seringkali membutuhkan penulisan serangkaian tes terpisah dan/atau menggunakan kerangka kerja pengujian yang berbeda dari tes unit Anda.

en: On RPM-based distributions (e.g., Fedora/RHEL/CentOS)
id: Pada distribusi berbasis RPM (mis., Fedora / RHEL / CentOS)

en: On Ubuntu
id: Pada Ubuntu

en: On the right hand side, click on "Subscribe to bug mail".
id: Di sisi kanan, klik "Subscribe to bug mail".

en: Once logged out, defines the URL where to redirect after login
id: Setelah logout, tentukan URL tempat pengalihan setelah login

en: 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.
id: 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.

en: 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 Keystone credentials, log in and you'll be presented with the Horizon dashboard. Congratulations!
id: Setelah server Horizon berjalan, arahkan web browser ke ``http://localhost`` atau ke IP dan port yang didengarkan server. Masukkan kredensial Keystone Anda, masuk dan Anda akan disajikan dengan dasbor Horizon. Selamat!

en: Once the upper-constraints.txt patch merges, you should propose a patch to global-requirements which bumps the minimum version of the package up to the upper-constraints version so that deployers / packagers who don't honor upper-constraints still get compatible versions of the packages.
id: Setelah patch upper-constraints.txt bergabung, Anda harus mengusulkan patch untuk global-requirement yang menambrak versi minimum paket hingga versi upper-constraint sehingga penyebar/pembuat paket yang tidak menerima upper-constraint masih bisa kompatibel dengan versi paket.

en: Once you have npm available on your system, run ``npm install`` from the horizon root directory.
id: Setelah npm tersedia di sistem Anda, jalankan ``npm install`` dari direktori root horizon.

en: Once you've got your table set up the way you like it, the next step is to wire it up to a view. To make this as easy as possible Horizon provides the :class:`~horizon.tables.DataTableView` class-based view which can be subclassed to display your table with just a couple lines of code. At its simplest, it looks like this::
id: Setelah table Anda diatur sesuai keinginan Anda, langkah selanjutnya adalah menghubungkannya ke tampilan. Untuk membuat ini semudah mungkin, Horizon menyediakan :class:`~horizon.tables.DataTableView`  tampilan berbasis kelas yang dapat disubklasifikasikan untuk menampilkan tabel Anda hanya dengan beberapa baris kode. Paling sederhana, terlihat seperti ini ::

en: One folder per component
id: Satu folder per komponen

en: One of the important things in the bug management process is to triage incoming bugs appropriately. To keep you up-to-date to incoming bugs, see `Receiving incoming bugs`_.
id: Salah satu hal penting dalam proses manajemen bug adalah melakukan triase bug yang masuk dengan tepat. Agar Anda tetap up-to-date dengan bug yang masuk, lihat `Receiving incoming bugs`_.

en: One of the most challenging aspects of building a compelling user experience is crafting complex multi-part workflows. Horizon's ``workflows`` module aims to bring that capability within everyday reach.
id: Salah satu aspek yang paling menantang dalam membangun pengalaman pengguna yang menarik adalah menyusun multi-part workflow yang kompleks. Modul ``workflows`` Horizon bertujuan untuk menghadirkan kemampuan itu dalam jangkauan sehari-hari.

en: Open <dev_server_ip:port>/jasmine in a browser. The development server can be run with ``tox -e runserver`` from the horizon root directory.
id: Buka <dev_server_ip:port>/jasmine di browser.  Server pengembangan dapat dijalankan dengan ``tox -e runserver`` dari direktori root horizon.

en: Open <dev_server_ip:port>/jasmine in a browser. The development server can be run with ``tox -e runserver`` from the horizon root directory; by default, this will run the development server at ``http://localhost:8000``.
id: Buka <dev_server_ip:port>/jasmine di browser. Server pengembangan dapat dijalankan dengan ``tox -e runserver`` dari direktori root horizon; secara default, ini akan menjalankan server pengembangan di ``http://localhost:8000``.

en: 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``::
id: Buka file ``dashboard.py`` lagi, masukkan kode berikut di atas kelas ``Mydashboard``. Kode ini mendefinisikan kelas ``Mygroup`` dan menambahkan panel yang disebut ``mypanel`` ::

en: Open the ``dashboard.py`` file. You will notice the following code has been automatically generated::
id: Buka file ``dashboard.py``. Anda akan melihat kode berikut telah dihasilkan secara otomatis::

en: Open the ``index.html`` file in the ``mydashboard/mypanel/templates/mypanel`` directory, the auto-generated code is like the following::
id: Buka file ``index.html`` di direktori ``mydashboard/mypanel/templates/mypanel``, kode yang dibuat secara otomatis seperti berikut::

en: Open the ``panel.py`` file, you will have the following auto-generated code::
id: Buka file ``panel.py``, Anda akan memiliki kode yang dibuat secara otomatis berikut::

en: Open the ``views.py`` file under the ``mypanel`` directory and add the code for the CreateSnapshotView and the necessary imports. The complete file should now look something like this::
id: Buka file ``views.py`` di bawah direktori ``mypanel`` dan tambahkan kode untuk CreateSnapshotView dan impor yang diperlukan. File lengkap sekarang akan terlihat seperti ini ::

en: Open the ``views.py`` file, the auto-generated code is like the following::
id: Buka file ``views.py``, kode yang dibuat secara otomatis seperti berikut::

en: OpenStack Dashboard is an example of a Horizon-based Angular application. Other applications built on the Horizon framework can follow a similar structure. It is composed of two key Angular modules:
id: OpenStack Dashboard adalah contoh aplikasi Angular berbasis Horizon. Aplikasi lain yang dibangun pada kerangka Horizon dapat mengikuti struktur yang sama. Ini terdiri dari dua modul sudut utama:

en: OpenStack infra scripts assumes translation message catalogs are placed under ``<modulename>/locale`` (for example ``myplugin/locale``).
id: Skrip infra OpenStack mengasumsikan katalog pesan terjemahan ditempatkan di bawah ``<modulename>/locale`` (misalnya ``myplugin/locale``).

en: Opt classes defined in oslo.config are used as much as possible.
id: Kelas opt yang didefinisikan dalam oslo.config digunakan sebanyak mungkin.

en: Optional location to redirect after completion of the delete action. Defaults to the current page.
id: Lokasi opsional untuk mengalihkan setelah menyelesaikan aksi penghapusan. Default ke halaman saat ini.

en: Optional message for providing an appropriate help text for the horizon user.
id: Pesan opsional untuk menyediakan teks bantuan yang sesuai untuk pengguna horizon.

en: Optional path to a URLconf of additional views for this dashboard which are not connected to specific panels. Default: ``None``.
id: Jalur opsional ke URLconf dari tampilan tambahan untuk dasbor ini yang tidak terhubung ke panel tertentu. Default: ``None``.

en: Optionally, you can override the ``has_more_data`` method to trigger pagination handling for APIs that support it.
id: Secara opsional, Anda dapat mengganti metode ``has_more_data`` untuk memicu penanganan pagination untuk API yang mendukungnya.

en: Order of precedence: 1. 'services_region' cookie value 2. Matching endpoint in DEFAULT_SERVICE_REGIONS 3. '*' key in DEFAULT_SERVICE_REGIONS 4. First valid region from catalog
id: Urutan diutamakan: 1. Nilai cookie 'services_region' 2. Endpoint yang cocok di DEFAULT_SERVICE_REGIONS 3. '*' key in DEFAULT_SERVICE_REGIONS 4. Wilayah valid pertama dari katalog

en: Orders dashboards according to the ``"dashboards"`` key in ``HORIZON_CONFIG`` or else returns all registered dashboards in alphabetical order.
id: Dasbor pesanan sesuai dengan tombol `` "dasbor" `` di ``HORIZON_CONFIG`` atau mengembalikan semua dasbor terdaftar dalam urutan abjad.

en: Otherwise renders the response as normal.
id: Kalau tidak, responsnya seperti biasa.

en: Our Karma setup includes a plugin to generate test coverage reports. When developing, be sure to check the coverage reports on the master branch and compare your development branch; this will help identify missing tests.
id: Pengaturan Karma kami mencakup plugin untuk menghasilkan laporan cakupan pengujian. Saat mengembangkan, pastikan untuk memeriksa laporan cakupan pada master branch dan membandingkan development branch Anda; ini akan membantu mengidentifikasi tes yang hilang.

en: Outputs Horizons documentation as HTML to ``doc/build/html``.
id: Menampilkan dokumentasi Horizons sebagai HTML ke ``doc/build/html``.

en: Outputs Horizons release notes as HTML to ``releasenotes/build/html``.
id: Outputs Horizons merilis catatan sebagai HTML ke ``releasenotes/build/html``.

en: Override to modify an incoming obj_id to match existing API.
id: Override untuk memodifikasi obj_id yang masuk agar cocok dengan API yang ada.

en: Override to provide delete functionality specific to your data.
id: Ganti untuk menyediakan fungsi penghapusan khusus untuk data Anda.

en: Override to separate rows into categories.
id: Ganti untuk memisahkan baris ke dalam kategori.

en: Overview and Architecture
id: Tinjauan Umum dan Arsitektur

en: Package build systems are disconnected from the outside network (for several reasons). Other packaging systems download dependencies directly from the internet without verifying that the downloaded file is intact, matches a provided checksum, etc. With these other systems, there is no way to provide a mirror, a proxy or a cache, making builds even more unstable when minor networking issues are encountered.
id: Sistem paket build terputus dari jaringan luar (karena beberapa alasan). Sistem pengemasan lainnya mengunduh dependensi langsung dari internet tanpa memverifikasi bahwa file yang diunduh utuh, cocok dengan checksum yang disediakan, dll. Dengan sistem lain ini, tidak ada cara untuk menyediakan mirror, proxy, atau cache, membuat build menjadi lebih tidak stabil ketika masalah jaringan kecil ditemui.

en: Package the library as an xstatic package by following the instructions in xstatic documentation_. Install the xstatic-release_ script and follow the instructions that come with it.
id: Kemas perpustakaan sebagai paket xstatic dengan mengikuti instruksi dalam dokumentasi xstatic_. Instal skrip xstatic-release_ dan ikuti instruksi yang menyertainya.

en: Packaging Horizon for distributions
id: Pengemasan Horizon untuk distribusi

en: Panel Classes
id: Panel Classes (kelas panel)

en: Panel grouping information is not included.
id: Informasi pengelompokan panel tidak termasuk.

en: Panel modules must be listed in ``panels`` in order to be discovered by the automatic registration mechanism.
id: Modul panel harus terdaftar dalam ``panel`` agar dapat ditemukan oleh mekanisme registrasi otomatis.

en: Panels are just entry-points to hook views into the larger dashboard navigational structure and enforce common attributes like RBAC. The views and corresponding templates can contain anything you would like, including iFrames.
id: Panel hanyalah titik masuk untuk menghubungkan pandangan ke struktur navigasi dasbor yang lebih besar dan menegakkan atribut umum seperti RBAC. Tampilan dan templat yang sesuai dapat berisi apa pun yang Anda inginkan, termasuk iFrames.

en: Parses the ``action_string`` parameter sent back with the POST data.
id: Parsing parameter ``action_string`` yang dikirim kembali dengan data POST.

en: Participate in related design sessions at Project Team Gatherings (PTGs)
id: Berpartisipasi dalam sesi desain terkait di Project Team Gatherings (PTGs)

en: Password expiration date.
id: Tanggal kedaluwarsa kata sandi.

en: Path to a URLconf of views for this panel using dotted Python notation. If no value is specified, a file called ``urls.py`` living in the same package as the ``panel.py`` file is used. Default: ``None``.
id: Path ke URLconf views untuk panel ini menggunakan notasi dotted Python. Jika tidak ada nilai yang ditentukan, file yang disebut ``urls.py`` tinggal di paket yang sama dengan file ``panel.py`` yang digunakan. Default: ``None``.

en: Path to the template which should be used to render this workflow. In general the default common template should be used. Default: ``"horizon/common/_workflow.html"``.
id: Path ke template yang harus digunakan untuk membuat alur kerja ini. Secara umum template umum default harus digunakan. Default: ``"horizon/common/_workflow.html"``.

en: Perform component can_access check to access the view.
id: Lakukan pemeriksaan can_access komponen untuk mengakses tampilan.

en: Performs user authentication check.
id: Melakukan pemeriksaan otentikasi pengguna.

en: Place the following content into ``devstack/local.conf`` to start the services that Horizon supports in DevStack when ``stack.sh`` is run. If you need to use this with a stable branch you need to add ``stable/<branch name>`` to the end of each ``enable_plugin`` line (e.g. ``stable/mitaka``). You can also check out DevStack using a stable branch tag. For more information on DevStack, see https://docs.openstack.org/devstack/latest/
id: Tempatkan konten berikut di  ``devstack/local.conf`` untuk memulai layanan yang didukung Horizon di DevStack ketika ``stack.sh`` dijalankan. Jika Anda perlu menggunakan ini dengan cabang stabil, Anda perlu menambahkan ``stable/<branch name>``  di akhir setiap baris ``enable_plugin`` (misal `` Stable/mitaka``). Anda juga dapat memeriksa DevStack menggunakan tag cabang stabil. Untuk informasi lebih lanjut tentang DevStack, lihat https://docs.openstack.org/devstack/latest/

en: Planned Steps
id: Langkah yang Direncanakan

en: Please don't re-open tickets closed by a core developer. If you disagree with the decision on the ticket, the appropriate solution is to take it up on IRC or the mailing list.
id: Harap jangan membuka kembali tiket yang ditutup oleh pengembang inti. Jika Anda tidak setuju dengan keputusan tentang tiket, solusi yang tepat adalah mengambilnya di IRC atau milis.

en: Please file a bug first even if you already have a fix for it. If you can reproduce the bug reliably and identify its cause then it's usually safe to start working on it. However, getting independent confirmation (and verifying that it's not a duplicate) is always a good idea if you can be patient.
id: Harap laporkan bug terlebih dahulu meskipun Anda sudah memperbaikinya. Jika Anda dapat mereproduksi bug dengan andal dan mengidentifikasi penyebabnya, biasanya aman untuk mulai mengerjakannya. Namun, mendapatkan konfirmasi independen (dan memverifikasi bahwa itu bukan duplikat) selalu merupakan ide bagus jika Anda bisa bersabar.

en: Please note in-person attendance at PTGs, mid-cycles, and other code sprints is not a requirement to be a core reviewer. Participation can also include contributing to the design documents discussed at the design sessions.
id: Harap dicatat bahwa kehadiran secara langsung (in-person) di PTG, pertengahan siklus, dan kode sprint lainnya bukanlah persyaratan untuk menjadi peninjau inti. Partisipasi juga dapat mencakup berkontribusi pada dokumen desain yang dibahas pada sesi desain.

en: Plugins that create new panels or dashboards
id: Pengaya (plugin) yang membuat panel atau dasbor baru

en: Plugins that modify existing workflows, actions, etc... (Angular only)
id: Plugin yang mengubah alur kerja, tindakan, dll ... (hanya Angular)

en: Policy checks on actions
id: Kebijakan memeriksa tindakan

en: Policy file maintenance
id: Pemeliharaan file kebijakan

en: Policy rules are defined in ``horizon/openstack_dashboard/conf/``. Permissions are inherited from Keystone and take either the form 'openstack.roles.role_name' or 'openstack.services.service_name' for the user's roles in keystone and the services in their service catalog.
id: Aturan kebijakan didefinisikan dalam  ``horizon/openstack_dashboard/conf/``.  Izin diwarisi dari Keystone dan mengambil bentuk 'openstack.roles.role_name' atau 'openstack.services.service_name' untuk peran pengguna dalam keystone dan layanan dalam katalog layanan mereka.

en: Possible client ip address
id: Kemungkinan alamat ip klien

en: Pre-built template tags generate navigation. In your ``nav.html`` template you might have the following
id: Tag templat yang dibuat sebelumnya menghasilkan navigasi. Dalam templat ``nav.html`` Anda, Anda mungkin memiliki yang berikut ini

en: Preemptive actions
id: Tindakan pencegahan

en: Preload all data that for the tabs that will be displayed.
id: Preload semua data untuk tab yang akan ditampilkan.

en: Profiling Pages
id: Halaman Pembuatan Profil

en: Project Policies
id: Project Policies (Kebijakan Proyek)

en: Project Resources
id: Sumber Daya Proyek (Project Resources)

en: Project Structure
id: Struktur Proyek

en: Project Team Lead Duties
id: Project Team Lead Duties (Tugas Pimpinan Tim Proyek)

en: Project page: https://launchpad.net/horizon
id: Halaman proyek: https://launchpad.net/horizon

en: Provide the formset corresponding to this DataTable.
id: Berikan formset yang sesuai dengan DataTable ini.

en: Provide the value, string, and help_text for the template to render.
id: Berikan nilai, string, dan help_text untuk template yang dirender.

en: Provides a common policy of setting cookies for last used project and region, can be reused in other locations.
id: Memberikan kebijakan umum pengaturan cookie untuk proyek dan wilayah yang terakhir digunakan, dapat digunakan kembali di lokasi lain.

en: Provides the actual filtering logic.
id: Menyediakan logika penyaringan yang sebenarnya.

en: Pseudo translation tool
id: Alat terjemahan semu

en: Pull that patch down so you have the edited upper-constraints.txt file locally.
id: Tarik patch itu ke bawah sehingga Anda memiliki file upper-constraints.txt yang diedit secara lokal.

en: Push your updated package up for review in gerrit.
id: Dorong paket Anda yang diperbarui untuk ditinjau di gerrit.

en: Put a comment at the top of every file explaining what the purpose of this file is when the naming is not obvious. This guideline also applies to methods and variables.
id: Beri komentar di bagian atas setiap file yang menjelaskan apa tujuan file ini ketika penamaannya tidak jelas. Pedoman ini juga berlaku untuk metode dan variabel.

en: Raised when a user is trying to make requests and they are not logged in.
id: Dibesarkan ketika pengguna mencoba membuat permintaan dan mereka tidak masuk.

en: Raised whenever a user attempts to access a resource which they do not have permission-based access to (such as when failing the :func:`~horizon.decorators.require_perms` decorator).
id: Dibesarkan setiap kali pengguna mencoba mengakses sumber yang tidak memiliki akses permission-based  ke (seperti ketika gagal dekorator :func:`~horizon.decorators.require_perms`).

en: Raises a :exc:`~horizon.exceptions.NotAuthorized` exception if the requirements are not met.
id: Menambah pengecualian :exc: `~ horizon.exceptions.NotAuthorized` jika persyaratan tidak dipenuhi.

en: Raises a :exc:`~horizon.exceptions.NotAuthorized` exception if the user cannot access the component containing the view. By example the check of component policy rules will be applied to its views.
id: Menambah pengecualian :exc:`~horizon.exceptions.NotAuthorized` jika pengguna tidak dapat mengakses komponen yang berisi tampilan. Dengan contoh, pemeriksaan aturan kebijakan komponen akan diterapkan pada pandangannya.

en: Read-only access to determine whether or not this tab's data should be loaded immediately.
id: Akses read-only untuk menentukan apakah data tab ini harus segera dimuat.

en: Read-only access to the data this table represents, filtered by the :meth:`~horizon.tables.FilterAction.filter` method of the table's :class:`~horizon.tables.FilterAction` class (if one is provided) using the current request's query parameters.
id: Akses read-only ke data yang diwakili oleh tabel ini, difilter oleh metode :meth:`~horizon.tables.FilterAction.filter`   dari klass tabel :class:`~horizon.tables.FilterAction`  (jika ada disediakan) menggunakan parameter query permintaan saat ini.

en: Read-only access to the data this table represents.
id: Akses read-only ke data yang diwakili tabel ini.

en: Read-only access to the final ordered set of step instances for this workflow.
id: Akses read-only  ke set step instances akhir yang dipesan untuk alur kerja ini.

en: Read-only in templates.
id: Read-only dalam template.

en: Read-only property which is set to the instance of the currently-selected tab if there is one, otherwise ``None``.
id: Properti hanya baca yang disetel ke instance tab yang saat ini dipilih jika ada, jika tidak ``None``.

en: Read-only property which is set to the value of the current active tab. This may not be the same as the value of ``selected`` if no specific tab was requested via the ``GET`` parameter.
id: Properti hanya baca yang disetel ke nilai tab aktif saat ini. Ini mungkin tidak sama dengan nilai ``selected`` jika tidak ada tab tertentu yang diminta melalui parameter ``GET``.

en: Receiving incoming bugs
id: Menerima bug yang masuk

en: Recommended
id: Direkomendasikan

en: Red Hat, Debian, and SUSE distributions are made only of free software (free as in Libre, or free speech). The software that we include in our repository is free. The tools are also free, and available in the distribution.
id: Distribusi Red Hat, Debian, dan SUSE hanya dibuat dari perangkat lunak gratis (gratis seperti dalam Libre, atau kebebasan berbicara). Perangkat lunak yang kami sertakan dalam repositori kami gratis. Alat-alatnya juga gratis, dan tersedia dalam distribusi.

en: Reduce the small/random ``<script>`` and ``<style>`` elements in HTML.
id: Kurangi elemen small/random ``<script>``  dan `` <style> `` dalam HTML.

en: Refresh itself with new data from the server.
id: Refresh sendiri dengan data baru dari server.

en: Registers a :class:`~horizon.Dashboard` with Horizon.
id: Mendaftar :class: `~ horizon.Dashboard` dengan Horizon.

en: Registers a :class:`~horizon.Panel` with this dashboard.
id: Mendaftar :class: `~ horizon.Panel` dengan dasbor ini.

en: Registers a :class:`~horizon.workflows.Step` with the workflow.
id: Mendaftarkan :class:`~ horizon.workflows.Step` dengan alur kerja.

en: Related to the previous item, features available in ``N-4`` releases (which means the recent four releases including the development version) are assumed without checking the availability of features to simplify the implementation.
id: Terkait dengan item sebelumnya, fitur yang tersedia dalam rilis ``N-4``  (yang berarti empat rilis terbaru termasuk versi pengembangan) diasumsikan tanpa memeriksa ketersediaan fitur untuk menyederhanakan implementasi.

en: Release Notes
id: Catatan Rilis

en: Release notes for a patch should be included in the patch with the associated changes whenever possible. This allow for simpler tracking. It also enables a single cherry pick to be done if the change is backported to a previous release. In some cases, such as a feature that is provided via multiple patches, release notes can be done in a follow-on review.
id: Catatan rilis untuk sebuah patch harus dimasukkan dalam patch dengan perubahan terkait jika memungkinkan. Ini memungkinkan pelacakan yang lebih sederhana. Ini juga memungkinkan pick cherry tunggal dilakukan jika perubahan tersebut di-backport ke rilis sebelumnya. Dalam beberapa kasus, seperti fitur yang disediakan melalui beberapa patch, catatan rilis dapat dilakukan dalam tinjauan lanjutan.

en: Releasing a new compatible version of Horizon to address issues in the new xstatic release:
id: Release versi Horizon baru yang kompatibel untuk mengatasi masalah dalam rilis xstatic baru:

en: Remember that the goal of this tutorial is to inject our custom step into an **existing** workflow. All of the files we are interested in reside in the ``static`` folder.
id: Ingatlah bahwa tujuan tutorial ini adalah untuk menyuntikkan langkah kustom kami ke alur kerja **existing**. Semua file yang kami minati berada di folder ``static``.

en: 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.
id: 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).

en: Remember to always use ``STATIC_URL`` when referencing your static resources. This ensures that changes to the static path in settings will continue to serve your static resources properly.
id: Ingatlah untuk selalu menggunakan ``STATIC_URL`` saat merujuk sumber daya statis Anda. Ini memastikan bahwa perubahan pada jalur statis dalam pengaturan akan terus melayani sumber daya statis Anda dengan benar.

en: Removals and deprecations of back-end feature supports basically follows `the standard deprecation policy <https://governance.openstack.org/tc/reference/tags/assert_follows-standard-deprecation.html>`__ defined by the technical committee, but there are some notes. Deprecations in back-end services are applied to corresponding horizon features automatically and it is allowed to drop some feature from horizon without an explicit deprecation.
id: Penghapusan dan penghentian dukungan fitur back-end pada dasarnya mengikuti `the standard deprecation policy <https://governance.openstack.org/tc/reference/tags/assert_follows-standard-deprecation.html> `__ didefinisikan oleh komite teknis, tetapi ada beberapa catatan. Penghentian dalam layanan back-end diterapkan untuk fitur horizon yang sesuai secara otomatis dan diperbolehkan untuk menjatuhkan beberapa fitur dari horizon tanpa penghentian eksplisit.

en: Render the widget as an HTML string.
id: Jadikan (render) widget sebagai string HTML.

en: Renders the HTML output for this tab group.
id: Merender output HTML untuk grup tab ini.

en: Renders the actions specified in ``Meta.row_actions``.
id: Merender tindakan yang ditentukan dalam ``Meta.row_actions``.

en: Renders the actions specified in ``Meta.table_actions``.
id: Merender tindakan yang ditentukan dalam ``Meta.table_actions``.

en: Renders the step.
id: Render langkahnya.

en: Renders the tab to HTML.
id: Merender tab ke HTML.

en: Renders the table using the template from the table options.
id: Merender tabel menggunakan templat dari opsi tabel.

en: Renders the workflow.
id: Render alur kerjanya,

en: Replace ``horizon.app.core.images.workflows.create-volume.service`` with the workflow you intend to augment.
id: Ganti ``horizon.app.core.images.workflows.create-volume.service`` dengan alur kerja yang ingin Anda tambahkan.

en: Reporting a Bug
id: Reporting a Bug (Melaporkan Bug)

en: Represents a row in the table.
id: Merupakan baris dalam tabel.

en: Represents an action which can be taken on this table's data.
id: Mewakili tindakan yang dapat diambil pada data tabel ini.

en: Required
id: Wajib

en: Required for server type filters. A tuple of tuples representing the filter options. Tuple composition should evaluate to (string, string, boolean, string, boolean), representing the following:
id: Diperlukan untuk filter jenis server. Sebuah tuple tuple yang mewakili opsi filter. Komposisi Tuple harus dievaluasi ke (string, string, boolean, string, boolean), mewakili yang berikut:

en: Required.
id: Wajib.

en: Required. Deletes an object referenced by obj_id.
id: Wajib. Menghapus objek yang direferensikan oleh obj_id.

en: Required. The short name or "slug" representing this action. This name should not be changed at runtime.
id: Wajib. Nama pendek atau "slug" mewakili tindakan ini. Nama ini tidak boleh diubah saat runtime.

en: Requires an additional layer of thinking to define functional requirements in terms of inputs and outputs.
id: Membutuhkan lapisan pemikiran tambahan untuk mendefinisikan persyaratan fungsional dalam hal input dan output.

en: Restart Apache or your Django test server
id: Restart Apache atau server uji Django Anda

en: Restart the web server.
id: Mulai ulang server web.

en: Return a copy of url with all occurrences of old replaced by new in the url path.  If the optional argument count is given, only the first count occurrences are replaced.
id: Kembalikan salinan url dengan semua kemunculan yang lama diganti dengan yang baru di jalur url. Jika jumlah argumen opsional diberikan, hanya kejadian jumlah pertama yang diganti.

en: Return a copy of url with replaced path.
id: Kembalikan salinan url dengan jalur yang diganti.

en: Return a dict with a key for the value of each fixed button, and a value that is a list of rows in that category.
id: Kembalikan dict dengan kunci (key) untuk nilai (value) setiap tombol tetap, dan nilai yang merupakan daftar baris dalam kategori itu.

en: Return a dictionary of context data used to render the tab.
id: Kembalikan kamus data konteks yang digunakan untuk merender tab.

en: Return a row with no data, for adding at the end of the table.
id: Kembalikan baris tanpa data, untuk ditambahkan di akhir tabel.

en: Return client ip address using SECURE_PROXY_ADDR_HEADER variable.
id: Kembalikan alamat ip klien menggunakan variabel SECURE_PROXY_ADDR_HEADER.

en: Return if the user is not authenticated.
id: Kembali jika pengguna tidak diautentikasi.

en: Return the default service region.
id: Kembalikan wilayah layanan default.

en: Return the initial data to use for forms on this view.
id: Kembalikan data awal untuk digunakan untuk formulir pada tampilan ini.

en: Return the keystone endpoint for initiating WebSSO.
id: Kembalikan keystone endpoint untuk memulai WebSSO.

en: Return the message to be displayed first in the filter.
id: Kembalikan pesan yang akan ditampilkan terlebih dahulu di filter.

en: Return the row data for this table broken out by columns.
id: Kembalikan data baris untuk tabel ini yang dibagi menurut kolom.

en: Return type
id: Kembalikan type

en: Return values are discarded, errors raised are caught and logged.
id: Beberapa nilai parameter tidak valid:

en: Returning None will indicate that no token was able to be retrieved and that authorization was a failure. Adding no authentication data can be achieved by returning an empty dictionary.
id: Kembali None akan menunjukkan bahwa tidak ada token yang dapat diambil dan bahwa otorisasi gagal. Menambahkan tidak ada data otentikasi dapat dicapai dengan mengembalikan empty dictionary.

en: Returns
id: Return (mengembalikan)

en: Returns None if not registered.
id: Mengembalikan None jika tidak terdaftar.

en: Returns True if action contains any required fields.
id: Mengembalikan True jika tindakan berisi field yang wajib diisi.

en: Returns True if the given user has the specified permission.
id: Mengembalikan True jika pengguna yang diberikan memiliki izin yang ditentukan.

en: Returns True if the user has all of the specified permissions.
id: Mengembalikan True jika pengguna memiliki semua izin yang ditentukan.

en: Returns True if the user has one of the specified permissions.
id: Mengembalikan True jika pengguna memiliki salah satu izin yang ditentukan.

en: Returns True if there is more data available to this table from the source (generally an API).
id: Mengembalikan True jika ada lebih banyak data yang tersedia untuk tabel ini dari sumber (umumnya API).

en: Returns True if there is previous data available to this table from the source (generally an API).
id: Mengembalikan True jika ada data sebelumnya yang tersedia untuk tabel ini dari sumber (umumnya API).

en: Returns True if user has any permissions in the given app_label.
id: Mengembalikan True jika pengguna memiliki izin di app_label yang diberikan.

en: Returns True when the argument x is true, False otherwise. The builtins True and False are the only two instances of the class bool. The class bool is a subclass of the class int, and cannot be subclassed.
id: Mengembalikan True ketika argumen x true, False sebaliknya. Builtins True and False adalah satu-satunya dua instances class bool. Class bool adalah subclass dari int class, dan tidak dapat disubklasifikasikan.

en: Returns ``None`` by default, effectively making it a no-op.
id: Mengembalikan  ``None`` secara default, secara efektif menjadikannya no-op.

en: Returns ``True`` if the token has not yet expired, otherwise ``False``.
id: Mengembalikan ke ``True`` jika token belum kedaluwarsa, jika tidak ke ``False``.

en: Returns a URL to redirect the user to upon completion.
id: Mengembalikan URL untuk mengarahkan pengguna ke setelah selesai.

en: Returns a boolean value determining the overall row status.
id: Mengembalikan nilai boolean yang menentukan status baris keseluruhan.

en: Returns a boolean value indicating whether there is more data.
id: Mengembalikan nilai boolean yang menunjukkan apakah ada lebih banyak data.

en: Returns a boolean value indicating whether there is previous data.
id: Mengembalikan nilai boolean yang menunjukkan apakah ada data sebelumnya.

en: Returns a boolean value.
id: Mengembalikan nilai boolean.

en: Returns a css class for the status of the row based on ``status``.
id: Mengembalikan kelas css untuk status baris berdasarkan ``status``.

en: Returns a css class name determined by the status value.
id: Mengembalikan nama kelas css yang ditentukan oleh nilai status.

en: Returns a dict describing the validation state of the workflow.
id: Mengembalikan dict yang menggambarkan status validasi alur kerja.

en: Returns a display name that identifies this object.
id: Mengembalikan nama tampilan yang mengidentifikasi objek ini.

en: Returns a list of dict describing fixed buttons used for filtering.
id: Mengembalikan daftar dict yang menggambarkan tombol tetap yang digunakan untuk memfilter.

en: Returns a list of the action instances for a specific row.
id: Mengembalikan daftar instance tindakan untuk baris tertentu.

en: Returns a list of the action instances for this table.
id: Mengembalikan daftar instance tindakan untuk tabel ini.

en: Returns a list of the allowed tabs for this tab group.
id: Mengembalikan daftar tab yang diizinkan untuk grup tab ini.

en: Returns a list of the default HTML attributes for the action.
id: Mengembalikan daftar atribut HTML default untuk aksi.

en: Returns a list of the default classes for the tab group.
id: Mengembalikan daftar kelas default untuk grup tab.

en: Returns a list of the default classes for the tab.
id: Mengembalikan daftar kelas default untuk tab.

en: Returns a memoized list of tenants this user may access.
id: Mengembalikan daftar penyewa memoized yang dapat diakses pengguna ini.

en: Returns a set of permission strings that the user has.
id: Mengembalikan serangkaian string izin yang dimiliki pengguna.

en: Returns a specific tab from this tab group.
id: Mengembalikan tab tertentu dari grup tab ini.

en: Returns an empty set since Keystone doesn't support "groups".
id: Mengembalikan set kosong karena Keystone tidak mendukung "grup".

en: Returns an instance of the form to be used in this view.
id: Mengembalikan instance form yang akan digunakan dalam tampilan ini.

en: Returns an ordered tuple of :class:`~horizon.Dashboard` modules.
id: Mengembalikan tuple yang dipesan modul :class:`~horizon.Dashboard``.

en: Returns classes for the workflow element in template.
id: Mengembalikan kelas untuk elemen alur kerja di templat.

en: Returns if this table should be rendered wrapped in a ``<form>`` tag.
id: Kembali jika tabel ini harus diberikan terbungkus (rendered wrapped) tag ``<form> ``.

en: Returns initial data for the workflow.
id: Mengembalikan data awal untuk alur kerja.

en: Returns list of unique region name values in service catalog.
id: Mengembalikan daftar nilai nama kawasan unik dalam katalog layanan.

en: Returns the ID for this step. Suitable for use in HTML markup.
id: Mengembalikan ID untuk langkah ini. Cocok untuk digunakan dalam markup HTML.

en: Returns the ID of the created object.
id: Mengembalikan ID dari objek yang dibuat.

en: Returns the Panel instance registered with this dashboard.
id: Mengembalikan instance Panel yang terdaftar dengan dasbor ini.

en: Returns the Panel instances registered with this dashboard in order.
id: Mengembalikan instance Panel yang terdaftar dengan dasbor ini secara berurutan.

en: Returns the URL to redirect to after a successful action.
id: Mengembalikan URL untuk dialihkan ke setelah aksi yang berhasil.

en: Returns the additional CSS class to be added to <table> tag.
id: Mengembalikan kelas CSS tambahan untuk ditambahkan ke tag <table>.

en: Returns the bound cells for this row in order.
id: Mengembalikan sel yang terikat untuk baris ini secara berurutan.

en: Returns the canonical URL for this table.
id: Mengembalikan URL canonical untuk tabel ini.

en: Returns the canonical URL for this workflow.
id: Mengembalikan canonical URL  untuk alur kerja ini.

en: Returns the current user from the session data.
id: Mengembalikan pengguna saat ini dari data sesi.

en: Returns the data object whose ID matches ``loopup`` parameter.
id: Mengembalikan objek data yang ID-nya cocok dengan parameter ``loopup``.

en: Returns the default :class:`~horizon.Dashboard` instance.
id: Mengembalikan default instance :class: `~ horizon.Dashboard`.

en: Returns the default URL for Horizon's URLconf.
id: Mengembalikan URL default untuk Horizon's URLconf.

en: Returns the default URL for a particular user.
id: Mengembalikan URL default untuk pengguna tertentu.

en: Returns the default URL for this dashboard.
id: Mengembalikan URL default untuk dasbor ini.

en: Returns the default URL for this panel.
id: Mengembalikan URL default untuk panel ini.

en: Returns the display name of the created object.
id: Mengembalikan nama tampilan dari objek yang dibuat.

en: Returns the final URL based on the value of ``url``.
id: Mengembalikan URL final berdasarkan nilai ``url``.

en: Returns the final display data for this column from the given inputs.
id: Mengembalikan data tampilan akhir untuk kolom ini dari input yang diberikan.

en: Returns the final value for the column's ``link`` property.
id: Mengembalikan nilai akhir untuk properti ``link`` kolom.

en: Returns the full POST parameter name for this action.
id: Mengembalikan nama parameter POST penuh untuk aksi ini.

en: Returns the full URL path for this table.
id: Mengembalikan jalur URL lengkap untuk tabel ini.

en: Returns the full query parameter name for this action.
id: Mengembalikan nama parameter kueri lengkap untuk tindakan ini.

en: Returns the help text for this step.
id: Mengembalikan teks bantuan untuk langkah ini.

en: Returns the id for this tab group.
id: Mengembalikan id untuk grup tab ini.

en: Returns the id for this tab.
id: Mengembalikan id untuk tab ini.

en: Returns the identifier for the first object in the current data set.
id: Mengembalikan pengidentifikasi untuk objek pertama dalam kumpulan data saat ini.

en: Returns the identifier for the last object in the current data set.
id: Mengembalikan pengidentifikasi untuk objek terakhir dalam kumpulan data saat ini.

en: Returns the identifier for the object this row will represent.
id: Mengembalikan pengidentifikasi untuk objek yang baris ini akan wakili.

en: Returns the initialized tab group for this view.
id: Mengembalikan grup tab yang diinisialisasi untuk tampilan ini.

en: Returns the instantiated step matching the given slug.
id: Mengembalikan langkah instantiated yang cocok dengan slug yang diberikan.

en: Returns the instantiated workflow class.
id: Mengembalikan kelas alur kerja yang dipakai.

en: Returns the message to be displayed when there is no data.
id: Mengembalikan pesan yang akan ditampilkan ketika tidak ada data.

en: Returns the name of the template to be used for rendering this tab.
id: Mengembalikan nama template yang akan digunakan untuk merender tab ini.

en: Returns the number of remaining days until user's password expires.
id: Mengembalikan jumlah hari yang tersisa hingga kata sandi pengguna kedaluwarsa.

en: Returns the query parameter string to paginate to the next page.
id: Mengembalikan string parameter kueri untuk paginasi ke halaman berikutnya.

en: Returns the query parameter string to paginate to the prev page.
id: Mengembalikan string parameter kueri ke paginasi ke halaman sebelumnya.

en: Returns the raw data for this column.
id: Mengembalikan data mentah untuk kolom ini.

en: Returns the slug of the step which the workflow should begin on.
id: Mengembalikan slug dari langkah yang seharusnya memulai alur kerja.

en: Returns the specified :class:`~horizon.Dashboard` instance.
id: Mengembalikan instance :class:`~horizon.Dashboard` yang ditentukan.

en: Returns the specified :class:~horizon.PanelGroup.
id: Mengembalikan :class:~horizon.PanelGroup yang ditentukan.

en: Returns the summary value for the data in this column.
id: Mengembalikan nilai ringkasan untuk data di kolom ini.

en: Returns the tab specific by the GET request parameter.
id: Mengembalikan tab yang spesifik dengan parameter permintaan GET.

en: Returns the template context, including the workflow class.
id: Mengembalikan konteks templat, termasuk kelas alur kerja.

en: Returns the template name to use for this request.
id: Mengembalikan nama templat yang digunakan untuk permintaan ini.

en: Returns this table's columns including auto-generated ones.
id: Mengembalikan kolom tabel ini termasuk yang dihasilkan secara otomatis.

en: Reusable by any application based on the Horizon framework
id: Dapat digunakan kembali oleh aplikasi apa pun berdasarkan kerangka kerja Horizon

en: Reusable components
id: Komponen yang dapat digunakan kembali

en: Reusable components across projects: The XStatic system ensures components are reusable by other packages, like Fuel.
id: Komponen yang dapat digunakan kembali di seluruh proyek: Sistem XStatic memastikan komponen dapat digunakan kembali oleh paket lain, seperti Fuel.

en: Reuse Bootstrap variables where possible. This allows themes to influence styling by simply overriding a few existing variables, instead of rewriting large chunks of the SCSS files.
id: Gunakan kembali variabel Bootstrap jika memungkinkan. Ini memungkinkan tema untuk memengaruhi gaya dengan hanya mengganti beberapa variabel yang ada, daripada menulis ulang potongan besar file SCSS.

en: Review patch submissions actively and consistently
id: Tinjau pengiriman patch secara aktif dan konsisten

en: Revisit HORIZON_CONFIG
id: Tinjau kembali HORIZON_CONFIG

en: Rows are capable of AJAX updating, with a little added work:
id: Baris mampu memperbarui AJAX, dengan sedikit pekerjaan tambahan:

en: Run "``horizon``/tools/with_venv.sh pip install dist/``package``.tar.gz"
id: Jalankan "``horizon``/tools/with_venv.sh pip install dist/``package``.tar.gz"

en: Run "cd ``plugin`` & python setup.py sdist"
id: Jalankan "cd` `plugin`` & python setup.py sdist"

en: Run "cp -rv enabled ``horizon``/openstack_dashboard/local/"
id: Jalankan "cp -rv enabled ``horizon``/openstack_dashboard/local/"

en: Run and check the dashboard
id: Jalankan dan periksa dasbor

en: Run the pseudo tool to create pseudo translations. This example replaces the German translation with a pseudo translation
id: Jalankan alat pseudo (semu) untuk membuat terjemahan pseudo (semu). Contoh ini menggantikan terjemahan Jerman dengan terjemahan semu

en: Run your development server.
id: Jalankan server pengembangan Anda.

en: Running the pseudo translation tool
id: Menjalankan alat terjemahan semu

en: Running unit tests at build time
id: Menjalankan unit test pada waktu build

en: Runs pep8, which is a tool that checks Python code style. You can read more about pep8 at https://www.python.org/dev/peps/pep-0008/
id: Menjalankan pep8, yang merupakan alat yang memeriksa gaya kode Python. Anda dapat membaca lebih lanjut tentang pep8 di https://www.python.org/dev/peps/pep-0008/

en: SCSS files
id: File SCSS

en: Save the current instance. Override this in a subclass if you want to control the saving process.
id: Simpan instance saat ini. Ganti ini dalam subkelas jika Anda ingin mengontrol proses penyimpanan.

en: Scope is not the model (model is your JavaScript Objects). The scope references the model. Use isolate scopes wherever possible.
id: Cakupan bukan model (model adalah Objek JavaScript Anda). Lingkup referensi model. Gunakan ruang lingkup isolasi sedapat mungkin.

en: Scoped Keystone access info object
id: Objek info akses Scoped Keystone

en: Screenshot directory could be set through horizon.conf file, default value: ``./integration_tests_screenshots``
id: Direktori screenshot dapat diatur melalui file horizon.conf, nilai default: ``./integration_tests_screenshots``

en: See :ref:`making_strings_translatable` for information on the translation architecture and how to ensure your code is translatable.
id: Lihat :ref:`making_strings_translatable` untuk informasi tentang arsitektur terjemahan dan cara memastikan kode Anda dapat diterjemahkan.

en: See Django's documentation on the `FormView <https://docs.djangoproject.com /en/dev/ref/class-based-views/generic-editing/#formview>`_ class for more details.
id: Lihat dokumentasi Django di kelas `FormView <https://docs.djangoproject.com /en/dev/ref/class-based-views/generic-editing/#formview>`_ untuk rincian lebih lanjut.

en: Selenium will use a virtual display in this case, instead of your own. In order to run the tests this way you have to install the dependency `xvfb`, like this::
id: Selenium akan menggunakan tampilan virtual dalam kasus ini, bukan milik Anda sendiri. Untuk menjalankan tes dengan cara ini Anda harus menginstal dependensi `xvfb`, seperti ini::

en: Send changed data to server.
id: Kirim data yang diubah ke server.

en: Send the correct microversion with ``get_microversion`` function in the API layer.::
id: Kirim microversion yang benar dengan fungsi ``get_microversion`` di lapisan API. ::

en: Sends back an AJAX-appropriate response for the tab group if needed.
id: Mengirim kembali respons yang sesuai AJAX untuk grup tab jika diperlukan.

en: Services and constants within these modules should all start with their module name to avoid dependency injection collisions. For example: ::
id: Layanan dan konstanta dalam modul-modul ini semua harus dimulai dengan nama modul mereka untuk menghindari tabrakan injeksi ketergantungan. Sebagai contoh: ::

en: Set :ref:`DEBUG <debug_setting>` setting to ``True``.
id: Atur setting :ref:`DEBUG <debug_setting>` ke ``True``.

en: Set object including all admin permission. If there is no permission, this will return empty::
id: Tetapkan objek termasuk semua izin admin. Jika tidak ada izin, ini akan kembali kosong ::

en: Set object including all admin permission. If there is no permission, this will return empty::   {      "openstack.roles.foo",      "openstack.roles.bar",      "openstack.roles.admin"  }
id: Tetapkan objek termasuk semua izin admin. Jika tidak ada izin, ini akan kembali kosong::  {      "openstack.roles.foo",      "openstack.roles.bar",      "openstack.roles.admin"  }

en: Set object including all admin roles. If there is no role, this will return empty::
id: Tetapkan objek termasuk semua peran admin. Jika tidak ada peran, ini akan kembali kosong::

en: Set object including all admin roles. If there is no role, this will return empty::    {       "foo", "bar", "admin"   }
id: Tetapkan objek termasuk semua peran admin. Jika tidak ada peran, ini akan kembali kosong::    {       "foo", "bar", "admin"   }

en: Set this class as the metaclass of a form that contains ExternalFileField in order to process ExternalFileField fields in a specific way. A hidden CharField twin of FieldField is created which contains just the filename (if any file was selected on browser side) and a special `clean` method for FileField is defined which extracts just file name. This allows to avoid actual file upload to Django server, yet process form clean() phase as usual. Actual file upload happens entirely on client-side.
id: Setel kelas ini sebagai metaclass dari form yang berisi ExternalFileField untuk memproses field ExternalFileField dengan cara tertentu. Sebuah kembar CharField yang tersembunyi dari FieldField dibuat yang hanya berisi nama file (jika ada file yang dipilih di sisi browser) dan metode `clean` khusus untuk FileField didefinisikan yang hanya mengekstrak nama file. Ini memungkinkan untuk menghindari upload file yang sebenarnya ke server Django, namun proses form clean() fase seperti biasa. Upload file yang sebenarnya terjadi sepenuhnya di sisi-klien.

en: Sets a warning on the form.
id: Mengatur peringatan pada form.

en: Sets an active user with the "admin" role.
id: Menetapkan pengguna aktif dengan peran "admin".

en: Setup
id: Mempersiapkan

en: Several class-based views are provided to make working with DataTables easier in your UI.
id: Beberapa tampilan berbasis kelas disediakan untuk membuat bekerja dengan DataTable lebih mudah di UI Anda.

en: Several handy additional assertion methods.
id: Beberapa metode pernyataan tambahan yang berguna.

en: Several services use API microversions, which allows consumers of that API to specify an exact version when making a request. This can be useful in ensuring a feature continues to work as expected across many service releases.
id: Beberapa layanan menggunakan mikroversi, yang memungkinkan konsumen API untuk menentukan versi yang tepat ketika membuat permintaan. Ini dapat berguna untuk memastikan fitur terus berfungsi seperti yang diharapkan di banyak rilis layanan.

en: Shortcut actions
id: Tindakan pintas

en: Should a developer wish to provide functionality within an existing dashboard (e.g. adding a monitoring panel to the user dashboard) the simple registration pattern makes it possible to write an app which hooks into other dashboards just as easily as creating a new dashboard. All you have to do is import the dashboard you wish to modify.
id: Jika pengembang ingin memberikan fungsionalitas dalam dasbor yang ada (misal  Menambahkan panel pemantauan ke dasbor pengguna), pola pendaftaran yang sederhana memungkinkan untuk menulis aplikasi yang terhubung ke dasbor lain semudah membuat dasbor baru. Yang harus Anda lakukan adalah mengimpor dasbor yang ingin Anda modifikasi.

en: Should return a boolean value indicating success.
id: Harus mengembalikan nilai boolean yang menunjukkan keberhasilan.

en: Should return a booleanvalue or raise :class:`~horizon.exceptions.WorkflowValidationError`.
id: Harus mengembalikan nilai boolean atau menaikkan  :class:`~horizon.exceptions.WorkflowValidationError`.

en: Showing form or handling update by POST of the cell.
id: Menampilkan formulir atau menangani pembaruan melalui POST sel.

en: Similar to Django's `login_required` decorator, except that this throws :exc:`~horizon.exceptions.NotAuthenticated` exception if the user is not signed-in.
id: Mirip dengan dekorator `login_required` Django, kecuali bahwa ini melempar pengecualian :exc:` ~horizon.exceptions.NotAuthenticated` jika pengguna tidak masuk.

en: 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.
id: 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.

en: Simple mix of ``DynamicChoiceField`` and ``TypedChoiceField``.
id: Campuran sederhana dari ``DynamicChoiceField`` dan ``TypedChoiceField``.

en: Simple mix of ``ThemableDynamicChoiceField`` & ``TypedChoiceField``.
id: Campuran sederhana dari ``ThemableDynamicChoiceField`` & ``TypedChoiceField``.

en: Simply by convention, we have a few rules about naming:
id: Cukup dengan konvensi, kami memiliki beberapa aturan tentang penamaan:

en: Simply returns the unaltered context by default.
id: Cukup kembalikan konteks yang tidak diubah secara default.

en: Since Django already uses ``{{ }}``, use ``{$ $}`` or ``{% verbatim %}`` instead.
id: Karena Django sudah menggunakan ``{{ }}``, use ``{$ $}`` or ``{% verbatim %}`` sebagai gantinya.

en: So You Want to Contribute...
id: Jadi Anda Ingin Berkontribusi ...

en: So it's enough to just import and use them, e.g. ::
id: Jadi cukup mengimpor dan menggunakannya saja, misal ::

en: 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.
id: 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`.

en: So what should I write?
id: Jadi apa yang harus saya tulis?

en: Software packages
id: Paket software

en: Some rules allow access if the user owns the entity. Policy check targets specify particular entities to check for user ownership. The target parameter to the :meth:`~openstack_dashboard.policy.check` method is a simple dictionary. For instance, the target for checking access a project looks like::
id: Beberapa aturan mengizinkan akses jika pengguna memiliki entitas. Target pemeriksaan kebijakan menentukan entitas tertentu untuk memeriksa kepemilikan pengguna. Parameter target ke metode :meth:`~openstack_dashboard.policy.check`  adalah kamus sederhana. Misalnya, target untuk memeriksa akses suatu proyek terlihat seperti::

en: Some tests rely on the Chrome web browser being installed. While the above requirements will allow you to run and manually test Horizon, you will need to install Chrome to run the full test suite.
id: Beberapa pengujian mengandalkan browser web Chrome yang sedang diinstal. Meskipun persyaratan di atas akan memungkinkan Anda untuk menjalankan dan menguji Horizon secara manual, Anda perlu menginstal Chrome untuk menjalankan suite pengujian lengkap.

en: Some widgets are made of multiple HTML elements -- namely, RadioSelect. This is a class that represents the "inner" HTML element of a widget.
id: Beberapa widget terbuat dari beberapa elemen HTML - yaitu, RadioSelect. Ini adalah kelas yang mewakili elemen HTML "inner" dari sebuah widget.

en: 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/>`_
id: 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/>`_

en: Source code changes aren't as easily lost when running ``unstack.sh`` / ``stack.sh``
id: Perubahan kode sumber tidak mudah hilang saat menjalankan ``unstack.sh`` / ``stack.sh``

en: Source-code formatting – (or "beautification") is recommended but should be used with caution. Keep in mind that if you reformat an entire file that was not previously formatted the same way, it will mess up the diff during the code review. It is best to use a formatter when you are working on a new file by yourself, or with others who are using the same formatter. You can also choose to format a selected portion of a file only. Instructions for setting up ESLint for Eclipse, Sublime Text, Notepad++ and WebStorm/PyCharm are provided_.
id: Source-code formatting – (atau "beautification")  disarankan tetapi harus digunakan dengan hati-hati. Perlu diingat bahwa jika Anda memformat ulang seluruh file yang sebelumnya tidak diformat dengan cara yang sama, itu akan mengacaukan perbedaan selama tinjauan kode. Cara terbaik adalah menggunakan formatter saat Anda mengerjakan file baru sendiri, atau dengan orang lain yang menggunakan formatter yang sama. Anda juga dapat memilih untuk memformat sebagian file yang dipilih saja. Petunjuk untuk menyiapkan ESLint untuk Eclipse, Sublime Text, Notepad ++ dan WebStorm/PyCharm disediakan_.

en: Special Considerations
id: Pertimbangan Khusus

en: Special FileField to upload file to some external location.
id: FileField khusus untuk mengunggah file ke beberapa lokasi eksternal.

en: Specialized base test case class for Horizon.
id: Kelas kasus uji dasar khusus untuk Horizon.

en: Specific to one dashboard in the OpenStack Dashboard application
id: Khusus untuk satu dasbor di aplikasi OpenStack Dashboard

en: Specific to the OpenStack Dashboard application, but reusable by multiple dashboards
id: Khusus untuk aplikasi OpenStack Dashboard, tetapi dapat digunakan kembali oleh beberapa dasbor

en: Specifies object properties to serialize as data-xxx attribute. If passed ('id', ), this will be rendered as: <option data-id="123">option_value</option> where 123 is the value of choice_value.id
id: Menentukan properti objek untuk bersambung sebagai atribut data-xxx. Jika dilewatkan ('id',), ini akan ditampilkan sebagai: <option data-id="123">option_value</option> di mana 123 adalah nilai choice_value.id

en: Specifies which IP version to validate, valid values are 1 (fields.IPv4), 2 (fields.IPv6) or both - 3 (fields.IPv4 | fields.IPv6). Defaults to IPv4 (1)
id: Menentukan versi IP mana yang memvalidasi, nilai yang valid adalah 1 (fields.IPv4), 2 (fields.IPv6) atau keduanya - 3 (fields.IPv4 | fields.IPv6). Default ke IPv4 (1)

en: Specs begin with a call to ``it``, which also takes a string and a function as parameters. The string is a name or title, whilst the function is a block with one or more expectations (``expect``) that test the state of the code. An expectation in Jasmine is an assertion that is either true or false; every expectation in a spec must be true for the spec to pass.
id: Spec dimulai dengan panggilan ke ``it``, yang juga menggunakan string dan fungsi sebagai parameter. String adalah nama atau judul, sementara fungsinya adalah blok dengan satu atau lebih expectation (``expect``) yang menguji status kode. Expectation di Jasmine adalah pernyataan yang benar atau salah; setiap expectation dalam sebuah spec harus benar untuk lulus spec.

en: Stable: A reliable API with an emphasis on backwards-compatibility.
id: Stable: API yang andal dengan penekanan pada kompatibilitas ke belakang (backwards-compatibility).

en: Static files should be put in a ``static/`` folder, which should be found directly under the folder for the dashboard/panel/panel groups Python package.
id: File statis harus diletakkan di folder ``static/``, yang harus ditemukan langsung di bawah folder untuk dashboard/panel/panel grup paket Python.

en: Step 3 installs your package into the Horizon's virtual environment. You can install your plugin without using ``with_venv.sh`` and ``pip``. The package would simply be installed in the ``PYTHON_PATH`` of the system instead.
id: Langkah 3 instal paket Anda ke lingkungan virtual Horizon.  Anda dapat menginstal plugin Anda tanpa menggunakan ``with_venv.sh`` dan ``pip``. Paket hanya akan diinstal di ``PYTHON_PATH`` sistem sebagai gantinya.

en: Step instances can override this method to specify conditions under which this tab should not be shown at all by returning ``False``.
id: Step instance dapat menimpa metode ini untuk menentukan kondisi di mana tab ini tidak boleh ditampilkan sama sekali dengan mengembalikan ``False``.

en: Step-by-step instruction to reproduce the bug
id: Instruksi langkah demi langkah untuk mereproduksi bug

en: Stores session variables if there are k2k service providers
id: Menyimpan variabel sesi jika ada penyedia layanan k2k

en: String containing the template which should be used to render the row actions dropdown. Defaults to ``"horizon/common/_data_table_row_actions_dropdown.html"``.
id: String yang berisi template yang harus digunakan untuk membuat dropdown tindakan baris. Default ke ``"horizon/common/_data_table_row_actions_dropdown.html"``.

en: String containing the template which should be used to render the row actions. Defaults to ``"horizon/common/_data_table_row_actions_row.html"``.
id: String yang berisi template yang harus digunakan untuk membuat aksi baris. Default ke ``"horizon/common/_data_table_row_actions_row.html"``.

en: String containing the template which should be used to render the table actions. Defaults to ``"horizon/common/_data_table_table_actions.html"``.
id: String yang berisi template yang harus digunakan untuk membuat aksi tabel. Default ke ``"horizon/common/_data_table_table_actions.html"``.

en: String containing the template which should be used to render the table. Defaults to ``"horizon/common/_data_table.html"``.
id: String yang berisi templat yang harus digunakan untuk membuat tabel. Default ke ``"horizon/common/_data_table.html"``.

en: String like "openstack.roles.admin" If role is None, this will return None.
id: String seperti "openstack.roles.admin" Jika peran adalah None, ini akan mengembalikan None.

en: String that is used for the query parameter key to request AJAX updates of cell. Generally you won't need to change this value. It is also used for inline edit of the cell. Default: ``"cell_update"``.
id: String yang digunakan untuk kunci parameter kueri untuk meminta pembaruan sel AJAX. Secara umum Anda tidak perlu mengubah nilai ini. Ini juga digunakan untuk pengeditan sel inline. Default:  ``"cell_update"``.

en: String that is used for the query parameter key to request AJAX updates. Generally you won't need to change this value. Default: ``"row_update"``.
id: String yang digunakan untuk kunci parameter kueri untuk meminta pembaruan AJAX. Secara umum Anda tidak perlu mengubah nilai ini. Default: ``"row_update"``.

en: String. Read-only access to the name specified in the table's Meta options.
id: String. Akses read-onlya ke nama yang ditentukan dalam opsi Meta tabel.

en: Structure
id: Structure (struktur)

en: Style guidelines for CSS are currently quite minimal. Do your best to make the code readable and well-organized. Two spaces are preferred for indentation so as to match both the JavaScript and HTML files.
id: Pedoman gaya untuk CSS saat ini sangat minim. Lakukan yang terbaik untuk membuat kode dapat dibaca dan diatur dengan baik. Dua spasi lebih disukai untuk indentasi agar sesuai dengan file JavaScript dan HTML.

en: Styling files are hierarchical, and include any direct child SCSS files. For example, ``project.scss`` would includes the ``workflow`` SCSS file, which in turn includes any launch instance styling: ::
id: File styling bersifat hierarkis, dan termasuk file SCSS anak langsung. Sebagai contoh, ``project.scss`` akan menyertakan file SCSS ``workflow``, yang pada gilirannya menyertakan setiap styling instance peluncuran: ::

en: Styling in Horizon (SCSS)
id: Styling di Horizon (SCSS)

en: SubWidget class from django 1.10.7 codebase
id: Kelas SubWidget dari basis kode django 1.10.7

en: Subclasses must define a ``form_class`` and ``template_name`` attribute at minimum.
id: Subclass harus menetapkan atribut ``form_class`` dan ``template_name`` minimum.

en: Suites begin with a call to ``describe``, which takes two parameters; a string and a function. The string is a name or title for the spec suite, whilst the function is a block that implements the suite.
id: Suite dimulai dengan panggilan ke ``describe``, yang mengambil dua parameter; string dan fungsi. String adalah nama atau judul untuk suite spec, sementara fungsi adalah blok yang mengimplementasikan suite.

en: Supported Software
id: Supported Software (Software yang Didukung)

en: Supports IPv4/IPv6 in the format: .. xxx.xxx.xxx.xxx .. xxx.xxx.xxx.xxx/zz .. ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff .. ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/zz and all compressed forms. Also the short forms are supported: xxx/yy xxx.xxx/yy
id: Mendukung IPv4/IPv6 dalam format: .. xxx.xxx.xxx.xxx .. xxx.xxx.xxx.xxx/zz .. ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff .. ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/zz dan semua bentuk terkompresi. Juga bentuk-bentuk singkat yang didukung: xxx/yy xxx.xxx/yy

en: Supports all formats known by netaddr.EUI(), for example: .. xx:xx:xx:xx:xx:xx .. xx-xx-xx-xx-xx-xx .. xxxx.xxxx.xxxx
id: Mendukung semua format yang dikenal oleh netaddr.EUI (), misalnya: .. xx:xx:xx:xx:xx:xx .. xx-xx-xx-xx-xx-xx .. xxxx.xxxx.xxxx

en: Switches an authenticated user from one project to another.
id: Mengalihkan pengguna yang diautentikasi dari satu proyek ke proyek lainnya.

en: Switches the action verbose name, if needed.
id: Mengganti nama verbose aksi, jika diperlukan.

en: Switches the user's keystone provider using K2K Federation
id: Mengalihkan penyedia keystone pengguna menggunakan K2K Federation

en: Switches the user's region for all services except Identity service.
id: Mengalihkan wilayah pengguna untuk semua layanan kecuali layanan Identity.

en: System-wide registry of static content: XStatic brings a system-wide registry of components, so that it is easy to check if one is missing. For example, it can detect if there is no egg-info, or a broken package dependency exists.
id: Registri system-wide (seluruh sistem) dari konten statis: XStatic membawa registri komponen di seluruh sistem, sehingga mudah untuk memeriksa apakah ada yang hilang. Misalnya, ia dapat mendeteksi jika tidak ada egg-info, atau ada ketergantungan paket rusak.

en: Tab instances can override this method to have tab-specific POST logic without polluting the TabView code.
id: Tab instance dapat menimpa metode ini untuk memiliki logika POST tab-specific tanpa mencemari kode TabView.

en: Tab instances can override this method to specify conditions under which this tab should not be shown at all by returning ``False``.
id: Tab instance dapat menimpa metode ini untuk menentukan kondisi di mana tab ini tidak boleh ditampilkan sama sekali dengan mengembalikan ``False``.

en: Table Cell filters (decorators)
id: Filter Sel Table (dekorator)

en: Table cells can be easily upgraded with in-line editing. With use of django.form.Field, we are able to run validations of the field and correctly parse the data. The updating process is fully encapsulated into table functionality, communication with the server goes through AJAX in JSON format. The javascript wrapper for inline editing allows each table cell that has in-line editing available to:
id: Sel tabel dapat dengan mudah ditingkatkan dengan mengedit in-line. Dengan menggunakan django.form.Field, kami dapat menjalankan validasi bidang dan mem-parsing data dengan benar. Proses pembaruan sepenuhnya dienkapsulasi ke dalam fungsi tabel, komunikasi dengan server melewati AJAX dalam format JSON. Pembungkus javascript untuk pengeditan in-line memungkinkan setiap sel tabel yang memiliki pengeditan in-line tersedia untuk:

en: Tables, Tabs, and Views
id: Tables, Tabs, dan Views

en: Tags are used to classify bugs in a meaningful way. Popular tags are found at `OpenStack Wiki <https://wiki.openstack.org/wiki/Bug_Tags>`__ (See ``Horizon`` and ``All projects`` sections).
id: Tag digunakan untuk mengklasifikasikan bug dengan cara yang berarti. Tag populer ditemukan di `` OpenStack Wiki <https://wiki.openstack.org/wiki/Bug_Tags> `__ (Lihat bagian` `Horizon '' dan ``All projects`` ).

en: Task Tracking
id: Task Tracking (Pelacakan Tugas)

en: Team meeting:
id: Pertemuan tim:

en: Templates
id: Templat

en: Test data
id: Uji data

en: Test if any of `subs` strings is present in the `url` path.
id: Uji apakah ada string `subs` di jalur `url`.

en: Testing
id: Pengujian

en: Testing Overview
id: Tinjauan Pengujian

en: Testing with different Django versions
id: Pengujian dengan berbagai versi Django

en: Tests can be run in two ways:
id: Test dapat dijalankan dengan dua cara:

en: That code would create the ``"switchable"`` control field ``source``, and the two ``"switched"`` fields ``cidr`` and ``security group`` which are hidden or shown depending on the value of ``source``.
id: Kode itu akan menciptakan `` "switchable" `` field kontrol ``source``, dan dua `` "switched" `` fields ``cidr`` dan ``security group`` yang disembunyikan atau ditampilkan tergantung pada nilai ``source``.

en: That said, you are not required to use the provided tools and can write templates and URLconfs by hand to create any desired structure.
id: Yang mengatakan, Anda tidak diharuskan untuk menggunakan alat yang disediakan dan dapat menulis template dan URLconfs dengan tangan untuk membuat struktur yang diinginkan.

en: That's it! Easy, right?
id: Itu dia! Mudah kan?

en: The "Profile" drop-down menu should appear in the top-right corner, you are ready to profile your pages!
id: Menu tarik-turun "Profil" akan muncul di sudut kanan atas, Anda siap memprofilkan halaman Anda!

en: The "bootstrap" directory
id: Direktori "bootstrap"

en: The "horizon" directory
id: Direktori "horizon"

en: The 'force_insert' and 'force_update' parameters can be used to insist that the "save" must be an SQL insert or update (or equivalent for non-SQL backends), respectively. Normally, they should not be set.
id: Parameter 'force_insert' dan 'force_update' dapat digunakan untuk menegaskan bahwa "save" harus berupa sisipan atau pembaruan SQL (atau setara dengan backend non-SQL), secara berurutan. Biasanya, mereka tidak boleh diatur.

en: The :attr:`~horizon.tables.Action.policy_rules` attribute, when set, will validate access to the action using the policy rules specified.  The attribute is a list of scope/rule pairs.  Where the scope is the service type defining the rule and the rule is a rule from the corresponding service policy.json file.  The format of :attr:`horizon.tables.Action.policy_rules` looks like::
id: Atribut :attr: `~ horizon.tables.Action.policy_rules`, ketika disetel, akan memvalidasi akses ke tindakan menggunakan aturan kebijakan yang ditentukan. Atribut adalah daftar pasangan ruang lingkup/aturan (scope/rule pairs). Di mana ruang lingkup adalah jenis layanan yang mendefinisikan aturan dan aturan adalah aturan dari file policy.json layanan yang sesuai. Format :attr: `horizon.tables.Action.policy_rules` terlihat seperti::

en: The :class:`~horizon.workflows.Action` class which this step wraps.
id: Kelas :class: `~ horizon.workflows.Action` yang dibungkus (wrap) oleh langkah ini.

en: The :class:`~horizon.workflows.Workflow` class which this view handles. Required.
id: Kelas :class: `~ horizon.workflows.Workflow` yang ditangani oleh tampilan ini. Wajib.

en: The Backend Module
id: Backend Module

en: The Bootstrap Theme Preview panel contains examples of all stock Bootstrap markup with the currently applied theme, as well as source code for replicating them; click the ``</>`` symbol when hovering over a component.
id: Panel Bootstrap Theme Preview berisi contoh-contoh semua markup stock Bootstrap  dengan tema yang sedang diterapkan, serta kode sumber untuk mereplikasi mereka; klik simbol ``</>`` saat mengarahkan kursor ke suatu komponen.

en: The Current Architecture & How It Meets Our Values
id: Arsitektur Saat Ini & Bagaimana Memenuhi Nilai-Nilai.

en: The DevStack project (http://devstack.org/) can be used to install an OpenStack development environment from scratch. For a local.conf that enables most services that Horizon supports managing, see :ref:`local-conf`
id: Proyek DevStack (http://devstack.org/) dapat digunakan untuk menginstal lingkungan pengembangan OpenStack dari awal. Untuk local.conf yang memungkinkan sebagian besar layanan yang didukung oleh Horizon dikelola, lihat :ref:`local-conf`

en: 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.
id: 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.

en: The Enabled File
id: File Diaktifkan

en: The Forms Module
id: Forms Module

en: The HTTP method for this action. Defaults to ``POST``. Other methods may or may not succeed currently.
id: Metode HTTP untuk aksi ini. Default untuk ``POST``. Metode lain mungkin atau mungkin tidak berhasil saat ini.

en: The Horizon Module
id: Modul Horizon

en: The Horizon application also ships with a set of API abstractions for the core OpenStack projects in order to provide a consistent, stable set of reusable methods for developers. Using these abstractions, developers working on Horizon don't need to be intimately familiar with the APIs of each OpenStack project.
id: Aplikasi Horizon juga dikirimkan dengan serangkaian abstraksi API untuk proyek-proyek inti OpenStack untuk menyediakan serangkaian metode yang dapat digunakan kembali secara konsisten dan stabil bagi para pengembang. Menggunakan abstraksi ini, pengembang yang bekerja di Horizon tidak perlu akrab dengan API dari setiap proyek OpenStack.

en: The John Papa Style Guide is the primary point of reference for Angular code style. This style guide has been endorsed by the AngularJS team::
id: The John Papa Style Guide adalah titik acuan utama untuk gaya kode Angular. Panduan gaya ini telah disahkan oleh tim AngularJS::

en: The Keystone token object associated with the current user/tenant.
id: Objek token Keystone terkait dengan user/tenant saat ini.

en: The OpenStack Dashboard also provides test case classes for greater ease-of-use when testing APIs and OpenStack-specific auth scenarios.
id: OpenStack Dashboard juga menyediakan kelas kasus uji untuk kemudahan penggunaan yang lebih besar saat menguji API dan skenario auth khusus OpenStack.

en: The URL slug and id attribute for the tab. This should be unique for a given tab group. Required.
id: URL slug dan id attribute untuk tab. Ini harus unik untuk grup tab tertentu. Wajib.

en: The URL slug and pseudo-unique identifier for this tab group.
id: URL slug dan pseudo-unique identifier untuk grup tab ini.

en: The User Module
id: User Module

en: The Utils Module
id: Utils Module

en: The Views Module
id: Views Module

en: The ``"switched"`` inputs also need to define states. For each state in which the input should be shown, it should define a data attribute like the following: ``data-<slug>-<value>="<desired label>"``. When the switch event happens the value of the ``"switchable"`` field will be compared to the data attributes and the correct label will be applied to the field. If a corresponding label for that value is *not* found, the field will be hidden instead.
id: Input `` "switched` `` juga perlu menentukan status. Untuk setiap keadaan di mana input harus ditampilkan, itu harus mendefinisikan atribut data seperti berikut: ``data-<slug>-<value>="<desired label>"``. Ketika switch event terjadi, nilai bidang `` "switchable" `` akan dibandingkan dengan atribut data dan label yang benar akan diterapkan ke bidang tersebut. Jika label yang sesuai untuk nilai itu  *not* ditemukan, field akan disembunyikan.

en: The ``ServiceCatalog`` data returned by Keystone.
id: Data ``ServiceCatalog`` dikembalikan oleh Keystone.

en: The ``Workflow`` class has the following attributes:
id: Kelas ``Workflow`` memiliki atribut berikut:

en: The ``ajax`` property needs to be set to ``True``, and subclasses need to define a ``get_data`` method which returns a data object appropriate for consumption by the table (effectively the "get" lookup versus the table's "list" lookup).
id: Properti ``ajax`` perlu diatur ke ``True``, dan subkelas perlu mendefinisikan metode ``get_data`` yang mengembalikan objek data yang sesuai untuk dikonsumsi oleh tabel (secara efektif pencarian "get" versus pencarian "list" tabel).

en: The ``cloud-services`` module is used by panels in multiple dashboards. It cannot be placed within ``openstack_dashboard/dashboards/mydashboard`` because disabling that one dashboard would break others. Therefore, it is included as part of the application ``core`` module. Code in ``app/`` is guaranteed to always be present, even if all other dashboards are disabled.
id: Modul ``cloud-services`` digunakan oleh panel di beberapa dasbor. Itu tidak dapat ditempatkan di dalam ``openstack_dashboard/dashboards/mydashboard``  karena menonaktifkan bahwa satu dasbor akan menghancurkan yang lain. Oleh karena itu, ini dimasukkan sebagai bagian dari modul ``core`` aplikasi. Kode di  ``app/`` dijamin akan selalu ada, meskipun semua dasbor lainnya dinonaktifkan.

en: The ``components`` directory contains overrides for Bootstrap components, such as tables or navbars.
id: Direktori ``components`` berisi override untuk komponen Bootstrap, seperti tabel atau navbars.

en: The ``components`` directory contains styling for each individual component defined by Horizon, such as the sidebar or pie charts.
id: Direktori ``components`` berisi styling untuk setiap komponen individual yang ditentukan oleh Horizon, seperti bagan sidebar atau pie charts.

en: The ``horizon`` directory holds the generic libraries and components that can be used in any Django project.
id: Direktori ``horizon`` berisi pustaka generik dan komponen yang dapat digunakan dalam proyek Django apa pun.

en: The ``main`` block must be modified to insert the following code::
id: Blok ``main`` harus diubah untuk memasukkan kode berikut::

en: The ``name`` argument for the URL pattern which corresponds to the index view for this ``Panel``. This is the view that :meth:`.Panel.get_absolute_url` will attempt to reverse.
id: Argumen ``name`` untuk pola URL yang sesuai dengan tampilan indeks untuk ``Panel`` ini. Ini adalah pandangan bahwa :meth:`.Panel.get_absolute_url` akan mencoba untuk mundur.

en: The ``nav`` attribute can be either a boolean value or a callable which accepts a ``RequestContext`` object as a single argument to control whether or not this dashboard should appear in automatically-generated navigation. Default: ``True``.
id: Atribut ``nav`` dapat berupa nilai boolean atau callable yang menerima objek ``RequestContext`` sebagai argumen tunggal untuk mengontrol apakah dasbor ini akan muncul di navigasi yang dihasilkan secara otomatis. Default: ``True``.

en: The ``nav`` attribute can be either a boolean value or a callable which accepts a ``RequestContext`` object as a single argument to control whether or not this panel should appear in automatically-generated navigation. Default: ``True``.
id: Atribut ``nav`` dapat berupa nilai boolean atau callable yang menerima objek ``RequestContext`` sebagai argumen tunggal untuk mengontrol apakah panel ini akan muncul di navigasi yang dihasilkan secara otomatis. Default: ``True``.

en: The ``openstack_dashboard/dashboards/mydashboard/static`` directory structure determines how the code is deployed and matches the module structure. For example: ::
id: Struktur direktori ``openstack_dashboard/dashboards/mydashboard/static``  menentukan bagaimana kode tersebut digunakan dan cocok dengan struktur modul. Sebagai contoh: ::

en: The ``openstack_dashboard`` directory contains a reference Django project that uses ``horizon``.
id: Direktori ``openstack_dashboard`` berisi referensi proyek Django yang menggunakan ``horizon``.

en: 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).
id: 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).

en: 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 a list of :class:`~horizon.PanelGroup` classes which define groups of panels as in the following example::
id: Atribut ``panels`` dapat berupa daftar datar yang berisi nama setiap panel **modul ** yang seharusnya dimuat sebagai bagian dari dasbor ini, atau daftar kelas :class:`~horizon.PanelGroup` yang mendefinisikan kelompok panel seperti pada contoh berikut ::

en: The ``statuses`` parameter is passed in as a dictionary mapping column names to their statuses in order to allow this function to be overridden in such a way as to weight one column's status over another should that behavior be desired.
id: Parameter ``statuses`` dilewatkan sebagai kamus memetakan nama kolom ke statusnya untuk memungkinkan fungsi ini ditimpa sedemikian rupa sehingga bobot status satu kolom di atas yang lain jika perilaku yang diinginkan.

en: The ``tox`` environments provide wrappers around ``manage.py``. For more information on ``manage.py``, which is a Django command, see https://docs.djangoproject.com/en/dev/ref/django-admin/
id: Lingkungan ``tox`` menyediakan pembungkus di sekitar ``manage.py``. Untuk informasi lebih lanjut tentang ``manage.py``, yang merupakan perintah Django, lihat https://docs.djangoproject.com/en/dev/ref/django-admin/

en: The ability to add an arbitrary number of top-level navigational items (``Dashboard`` objects) poses a new design challenge. Horizon's lead designer has taken on the challenge of providing a reference design for Horizon which supports this possibility.
id: Kemampuan untuk menambahkan jumlah item navigasi tingkat atas yang acak (objek ``Dashboard``) menimbulkan tantangan desain baru. Desainer utama Horizon telah menerima tantangan dalam menyediakan desain referensi untuk Horizon yang mendukung kemungkinan ini.

en: The ability to override specific time data controls for easier testing.
id: Kemampuan untuk mengganti kontrol data waktu tertentu untuk pengujian yang lebih mudah.

en: The action should return an HTTP redirect if successful, or a value which evaluates to ``False`` if unsuccessful.
id: Tindakan harus mengembalikan pengalihan HTTP jika berhasil, atau nilai yang mengevaluasi menjadi ``False`` jika tidak berhasil.

en: The action specified above will default the ``filter_type`` to be ``"query"``. This means that the filter will use the client side table sorter.
id: Tindakan (action) yang ditentukan di atas akan default ``filter_type`` menjadi ``"query"``. Ini berarti bahwa filter akan menggunakan penyortir tabel sisi klien.

en: 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 dropdown box.
id: Tindakan diberikan dengan menggunakan data baris saat ini. Jika `row` True, tindakan diberikan dalam deretan tombol. Kalau tidak, mereka akan ditampilkan di kotak dropdown.

en: The additional html attributes that will be rendered to form_field. Example: ``form_field_attributes={'class': 'bold_input_field'}``. Defaults to ``None``.
id: Atribut html tambahan yang akan dirender ke form_field. Contoh: ``form_field_attributes={'class': 'bold_input_field'}``. Defaults ke ``None``.

en: 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.
id: 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.

en: The auto-generated URLconf for horizon. Usage::
id: URLconf yang dibuat secara otomatis untuk horizon. Usage::

en: The auto-generated ``urls.py`` file is like::
id: File ``urls.py`` auto-generated seperti::

en: The automatic update interval is configurable by setting the key ``ajax_poll_interval`` in the ``HORIZON_CONFIG`` dictionary. Default: ``2500`` (measured in milliseconds).
id: Interval pembaruan otomatis dapat dikonfigurasi dengan mengatur kunci ``ajax_poll_interval`` dalam kamus ``HORIZON_CONFIG`` kamus. Default: ``2500`` (diukur dalam milidetik).

en: The base SCSS can be found at ``openstack_dashboard/static/dashboard/scss/``. This directory should **only** contain the minimal styling for functionality code that isn't configurable by themes. ``horizon.scss`` is a top level file that imports from the ``components/`` directory, as well as other base styling files; potentially some basic page layout rules that Horizon relies on to function.
id: SCSS dasar dapat ditemukan di ``openstack_dashboard/static/dashboard/scss/``.  Direktori ini seharusnya **only** berisi styling minimal untuk kode fungsi yang tidak dapat dikonfigurasi oleh tema. ``horizon.scss`` adalah file tingkat atas yang mengimpor dari direktori ``components/``, serta file styling dasar lainnya; berpotensi beberapa aturan tata letak halaman dasar yang diandalkan Horizon untuk berfungsi.

en: The benefit of the multi-step table instantiation is that you can use preemptive actions which don't need access to the entire collection of data to save yourself on processing overhead, API calls, etc.
id: Manfaat dari instantiation tabel multi-step adalah bahwa Anda dapat menggunakan tindakan pencegahan yang tidak memerlukan akses ke seluruh kumpulan data untuk menyelamatkan diri Anda dari pemrosesan overhead, panggilan API, dll.

en: The bug triaging process would be:
id: Proses triaging bug adalah:

en: The build environment inside a distribution is not exactly the same as the one in the OpenStack gate. For example, versions of a given library can be slightly different from the one in the gate. We want to detect when problematic differences exist so that we can fix them. Whenever possible, try to make the lives of the package maintainer easier, and allow them (or help them) to run unit tests.
id: Lingkungan build di dalam distribusi tidak persis sama dengan yang ada di gerbang OpenStack. Misalnya, versi perpustakaan yang diberikan dapat sedikit berbeda dari yang ada di gerbang. Kami ingin mendeteksi ketika ada perbedaan yang bermasalah sehingga kami dapat memperbaikinya. Kapanpun memungkinkan, cobalah untuk membuat masa pakai pengelola paket lebih mudah, dan biarkan mereka (atau bantu mereka) untuk menjalankan tes unit.

en: The cells belonging to this row stored in a ``OrderedDict`` object. This attribute is populated during instantiation.
id: Sel milik baris ini disimpan dalam objek ``OrderedDict``. Atribut ini diisi selama instantiasi.

en: The class that inherits from tables.actions.UpdateAction, update_cell method takes care of saving inline edited data. The tables.base.Row get_data method needs to be connected to table for obtaining the data. Example: ``update_action=UpdateCell``. Defaults to ``None``.
id: Kelas yang mewarisi dari tables.actions.UpdateAction, metode update_cell menangani menyimpan data yang diedit sebaris. Metode tables.base.Row get_data perlu dihubungkan ke tabel untuk mendapatkan data. Contoh: ``update_action=UpdateCell``. Defaults ke ``None``.

en: The class which should be used for handling the columns of this table. Optional. Default: :class:`~horizon.tables.Column`.
id: Kelas yang harus digunakan untuk menangani kolom tabel ini. Pilihan. Default: :class:`~horizon.tables.Column`.

en: The class which should be used for rendering the cells of this table. Optional. Default: :class:`~horizon.tables.Cell`.
id: Kelas yang harus digunakan untuk merender sel dari tabel ini. Pilihan. Default: :class:`~horizon.tables.Cell`.

en: The class which should be used for rendering the rows of this table. Optional. Default: :class:`~horizon.tables.Row`.
id: Kelas yang harus digunakan untuk merender baris tabel ini. Pilihan. Default: :class:`~horizon.tables.Row`.

en: The cleanest way is to use ``filters``. Filters are decorators, following GOF ``Decorator pattern``. This way ``DataTable logic`` and ``displayed object logic`` are correctly separated from ``presentation logic`` of the object inside of the various tables. And therefore the filters are reusable in all tables.
id: Cara terbersih adalah dengan menggunakan ``filter``. Filter adalah dekorator, mengikuti GOF ``Decorator pattern``. Dengan cara ini ``DataTable logic`` dan  ``displayed object logic``  dipisahkan dengan benar dari  ``presentation logic`` dari objek di dalam berbagai tabel. Dan karenanya filter dapat digunakan kembali di semua tabel.

en: The clear anti-pattern is defining the new attributes on object like ``ram_float_format_2_gb`` or to tweak a DataTable in any way for displaying purposes.
id: Anti-pola yang jelas mendefinisikan atribut baru pada objek seperti ``ram_float_format_2_gb`` atau untuk mengubah DataTable dengan cara apa pun untuk menampilkan tujuan.

en: The code below is just for example purposes, and may not be current in horizon. Ellipses (...) are used to represent code that has been removed for the sake of brevity.
id: Kode di bawah ini hanya untuk tujuan contoh, dan mungkin tidak berlaku saat ini. Ellipses (...) digunakan untuk mewakili kode yang telah dihapus demi singkatnya.

en: The code has to work on the stable and latest versions of Firefox, Chrome, Safari, and Opera web browsers, and on Microsoft Internet Explorer 11 and later.
id: Kode tersebut harus berfungsi pada browser web Firefox, Chrome, Safari, dan Opera versi stabil dan terbaru, dan pada Microsoft Internet Explorer 11 dan yang lebih baru.

en: The code linting job can be run with ``tox -e npm -- lint``, or ``tox -e npm -- lintq`` to show errors, but not warnings.
id: Pekerjaan kode linting dapat dijalankan dengan ``tox -e npm -- lint``, atau ``tox -e npm -- lintq`` untuk menampilkan kesalahan, tetapi tidak dengan peringatan.

en: The code linting job can be run with ``tox -e npm -- lint``. If there are many warnings, you can also use ``tox -e npm -- lintq`` to see only errors and ignore warnings.
id: Pekerjaan kode linting dapat dijalankan dengan ``tox -e npm - lint``. Jika ada banyak peringatan, Anda juga dapat menggunakan ``tox -e npm - lintq`` untuk melihat hanya kesalahan dan mengabaikan peringatan.

en: The columns that are named the same as the formset fields will be replaced with form widgets in the table. Any hidden fields from the formset will also be included. The fields that are not hidden and don't correspond to any column will not be included in the form.
id: Kolom yang diberi nama sama dengan field formset akan diganti dengan widget formulir di tabel. Setiap field tersembunyi dari formset juga akan dimasukkan.  Field yang tidak disembunyikan dan tidak sesuai dengan kolom apa pun tidak akan disertakan dalam formulir.

en: The community's guidelines for etiquette are fairly simple:
id: Pedoman etiket komunitas cukup sederhana:

en: The complete ``tables.py`` file should look like this::
id: File ``tables.py`` yang lengkap harus terlihat seperti ini ::

en: The complete ``urls.py`` file should look like this::
id: File ``urls.py`` yang lengkap harus terlihat seperti ini ::

en: The completed ``dashboard.py`` file should look like the following::
id: File ``dashboard.py`` yang telah selesai akan terlihat seperti berikut::

en: The completed ``tables.py`` file should look like the following::
id: File ``tables.py`` yang sudah selesai akan terlihat seperti berikut::

en: 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).
id: Koneksi diantara step's fields ini dan perubahan dalam data konteks (misal Jika potongan data itu berubah, apa yang perlu diperbarui dalam langkah ini).

en: The core class which defines the high-level structure of the table being represented. Example::
id: Kelas inti yang mendefinisikan struktur tingkat tinggi dari tabel yang diwakili. Contoh::

en: The core reviewer team is responsible for the horizon development in the master branch from various perspective. See :doc:`core-reviewers` for more detail.
id: Tim reviewer inti bertanggung jawab atas pengembangan horizon di cabang master dari berbagai perspektif. Lihat :doc:`core-reviewers`  untuk detail lebih lanjut.

en: 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.
id: 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.

en: The current naming convention is random, so it sounds less reasonable to use the same name for oslo.config. oslo.config and python ini-based configuration mechanism provide a concept of category and there is no reason to use it. As category name, the categories of :doc:`/configuration/settings` (like keystone, glance) will be honored.
id: Konvensi penamaan saat ini adalah acak, sehingga terdengar kurang masuk akal untuk menggunakan nama yang sama untuk oslo.config.  Mekanisme konfigurasi ini-based python dan oslo.config menyediakan konsep kategori dan tidak ada alasan untuk menggunakannya. Sebagai nama kategori, kategori :doc:`/configuration/settings` (seperti keystone, glance) akan dikenal.

en: The current style of ``getattr(settings, <foo>, <default value>)`` will be removed at the same time.
id: Style ``getattr(settings, <foo>, <default value>)`` saat ini akan dihapus pada saat yang bersamaan.

en: 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 match is not a single data object.
id: Objek data dilihat dari dataset tabel dan data yang cocok dengan parameter ``lookup`` yang ditentukan. Kesalahan akan dimunculkan jika match bukan objek data tunggal.

en: The data object which this row represents.
id: Objek data yang diwakili baris ini.

en: The data which must be present in the context to begin this step (the step's dependencies).
id: Data yang harus ada dalam konteks untuk memulai langkah ini (ketergantungan langkah).

en: The decorated parameter doesn't have to be only a string or number, it can be anything e.g. list or an object. So decorating of object, that has attributes value and unit would look like this ::
id: Parameter yang didekorasi tidak harus berupa string atau angka, itu bisa berupa apa saja, misal daftar atau objek. Jadi dekorasi objek, yang memiliki nilai atribut dan unit akan terlihat seperti ini ::

en: The default URL is defined as the URL pattern with ``name="index"`` in the URLconf for the :class:`~horizon.Panel` specified by :attr:`~horizon.Dashboard.default_panel`.
id: URL default didefinisikan sebagai pola URL dengan ``name = "index" `` di URLconf untuk :class:`~horizon.Panel` ditentukan oleh :attr:` ~ horizon.Dashboard.default_panel`.

en: The default URL is defined as the URL pattern with ``name="index"`` in the URLconf for this panel.
id: URL default didefinisikan sebagai pola URL dengan ``name = "index" `` di URLconf untuk panel ini.

en: The default URL is determined by calling :meth:`~horizon.Dashboard.get_absolute_url` on the :class:`~horizon.Dashboard` instance returned by :meth:`~horizon.get_default_dashboard`.
id: URL default ditentukan dengan memanggil :meth: `~ horizon.Dashboard.get_absolute_url` pada :class:` ~ horizon.Dashboard` instance dikembalikan oleh :meth: `~horizon.get_default_dashboard`.

en: The default behavior is to ignore POST data.
id: Perilaku default adalah mengabaikan data POST.

en: The default behavior is to return ``True`` for all cases.
id: Perilaku default adalah mengembalikan  ``True`` untuk semua kasus.

en: The default implementation of get_headers calls the `get_token` method to enable older style plugins to continue functioning unchanged. Subclasses should feel free to completely override this function to provide the headers that they want.
id: Implementasi default get_headers memanggil metode `get_token` untuk mengaktifkan plugin gaya lama agar tetap berfungsi tanpa perubahan. Subclass harus merasa bebas untuk sepenuhnya menimpa fungsi ini untuk memberikan header yang mereka inginkan.

en: The default port for runserver is 8000 which might be already consumed by heat-api-cfn in DevStack. If running in DevStack ``tox -e runserver -- localhost:9000`` will start the test server at ``http://localhost:9000``. If you use ``tox -e runserver`` for developments, then configure ``SESSION_ENGINE`` to ``django.contrib.sessions.backends.signed_cookies`` in ``openstack_dashboard/local/local_settings.py`` file.
id: Port default untuk runserver adalah 8000 yang mungkin sudah dikonsumsi oleh heat-api-cfn di DevStack. Jika berjalan di DevStack ``tox -e runserver -- localhost:9000``` akan memulai server uji di ``http://localhost:9000``.  Jika Anda menggunakan ``tox -e runserver`` untuk pengembangan, maka konfigurasikan``SESSION_ENGINE`` ke ``django.contrib.sessions.backends.signed_cookies`` dalam file  ``openstack_dashboard/local/local_settings.py``.

en: The deployer needs to take an action when upgrading
id: Deployer perlu mengambil tindakan saat upgrading

en: The detail is same as that of ``action_present``.
id: Detailnya sama dengan ``action_present``.

en: The detail way to specify tests is found at `pytest documentation <https://docs.pytest.org/en/latest/usage.html#specifying-tests-selecting-tests>`__.
id: Cara detail untuk menentukan tes dapat ditemukan di `pytest documentation <https://docs.pytest.org/en/latest/usage.html#specifying-tests-selecting-tests>`__.

en: The development server picks up source code changes while still running.
id: Server pengembangan menerima perubahan kode sumber saat masih berjalan.

en: The display name for the tab which will be rendered as the text for the tab element in the HTML. Required.
id: Nama tampilan untuk tab yang akan dirender sebagai teks untuk elemen tab dalam HTML. Wajib.

en: The domain id of the current user.
id: ID domain dari pengguna saat ini.

en: The domain name of the current user.
id: Nama domain pengguna saat ini.

en: The enabled folder contains the configuration file(s) that registers your plugin with Horizon. The file is prefixed with an alpha-numeric string that determines the load order of your plugin. For more information on what you can include in this file, see pluggable settings in :ref:`install-settings`.
id: Folder yang diaktifkan berisi file konfigurasi yang mendaftarkan plugin Anda dengan Horizon. File diawali dengan string alpha-numeric yang menentukan urutan pemuatan plugin Anda. Untuk informasi lebih lanjut tentang apa yang bisa Anda sertakan dalam file ini, lihat pengaturan pluggable di :ref:`install-settings`.

en: The expected messages framework is ``django.contrib.messages``.
id: Kerangka pesan yang diharapkan adalah ``django.contrib.messages``.

en: The expected number of messages can be specified per message type. Usage would look like ``self.assertMessageCount(success=1)``.
id: Jumlah pesan yang diharapkan dapat ditentukan per jenis pesan. Akan terlihat seperti penggunaan ``self.assertMessageCount(success=1)``.

en: The expected values start with https:// or http://. Otherwise this exception will be raised.
id: Nilai yang diharapkan dimulai dengan https:// atau http://. Kalau tidak, pengecualian ini akan dimunculkan.

en: The fallback handler if no tabs are either allowed or enabled.
id: Penangan fallback jika tidak ada tab yang diizinkan atau diaktifkan.

en: The fifth optional value determines whether or not the choice is displayed to users. It defaults to ``True``. This is useful when the choice needs to be displayed conditionally.
id: Nilai opsional kelima menentukan apakah pilihan ditampilkan kepada pengguna atau tidak. Defaultnya adalah ``True``. Ini berguna ketika pilihan perlu ditampilkan secara kondisional.

en: The file structure for your plugin type will be different depending on your needs. Your plugin can be categorized into two types:
id: Struktur file untuk tipe plugin Anda akan berbeda tergantung pada kebutuhan Anda. Plugin Anda dapat dikategorikan ke dalam dua jenis:

en: 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.
id: 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.

en: The first value is the filter parameter.
id: Nilai pertama adalah parameter filter.

en: The following is a complex example of how data is exchanged between urls, views, workflows and templates:
id: Berikut ini adalah contoh kompleks tentang bagaimana data dipertukarkan antara url, tampilan, alur kerja, dan template:

en: The following is more example to run a specific test class and a specific test:
id: Berikut ini adalah lebih banyak contoh untuk menjalankan kelas tes khusus dan tes khusus:

en: The following options can be defined in a ``Meta`` class inside a :class:`.DataTable` class. Example::
id: Opsi berikut dapat didefinisikan dalam kelas ``Meta`` di dalam kelas :class:`.DataTable` . Contoh::

en: The following standards are divided into required and recommended sections. Our main goal in establishing these best practices is to have code that is reliable, readable, and maintainable.
id: Standar berikut ini dibagi menjadi bagian yang diperlukan dan direkomendasikan. Tujuan utama kami dalam menetapkan praktik terbaik ini adalah memiliki kode yang dapat diandalkan, dapat dibaca, dan dipelihara.

en: The fourth optional value is used as help text if provided. The default is ``None`` which means no help text.
id: Nilai opsional keempat digunakan sebagai teks bantuan jika disediakan. Standarnya adalah ``None`` yang artinya tidak ada teks bantuan.

en: The fourth way to add a role based check is in html files. Use angular directive 'hz-if-policies' in file 'openstack_dashboard/static/app/core/cloud-services/hz-if-policies.directive.js'. Assume you have the following policy defined in your angular controller::
id: Cara keempat untuk menambahkan pemeriksaan berbasis peran adalah dalam file html. Gunakan directive angular 'hz-if-policy' dalam file 'openstack_dashboard/static/app/core/cloud-services/hz-if-policies.directive.js'.  Asumsikan Anda memiliki kebijakan berikut yang ditentukan dalam pengontrol angular Anda ::

en: The horizon PTL is expected to coordinate and encourage the core reviewer team and contributors for the success. The expectations for the core reviewer team is documented at :doc:`policies/core-reviewers` and the PTL would play an important role in this.
id: PTL Horizon diharapkan dapat mengkoordinasikan dan mendorong tim reviewer inti dan kontributor untuk kesuksesan. Harapan untuk tim reviewer inti didokumentasikan di :doc:`policies/core-reviewers` dan PTL akan memainkan peran penting dalam hal ini.

en: The horizon core reviewer team is responsible for many aspects of the horizon project. These include, but are not limited to:
id: Tim reviewer inti horizon bertanggung jawab atas banyak aspek proyek horizon. Ini termasuk, tetapi tidak terbatas pada:

en: The horizon team has a weekly meeting which covers all things related to the horizon project like announcements, project priorities, community goals, bugs and so on.
id: Tim horizon mengadakan pertemuan mingguan yang mencakup semua hal yang berkaitan dengan proyek horizon seperti pengumuman, prioritas proyek, tujuan komunitas, bug, dan sebagainya.

en: The id of the Keystone domain scoped for the current user/token.
id: Id domain Keystone mencakup untuk user/token saat ini.

en: The id of the Keystone project for the current user/token.
id: Id dari proyek Keystone untuk user/token saat ini.

en: The id of the Keystone tenant for the current user/token.
id: Id tenant Keystone untuk user/token saat ini.

en: The implementation in Horizon is based on copies of policy files found in the service's source code.
id: Implementasi di Horizon didasarkan pada salinan file kebijakan yang ditemukan dalam kode sumber layanan.

en: The included :class:`~horizon.middleware.HorizonMiddleware` catches ``NotAuthenticated`` and handles it gracefully by displaying an error message and redirecting the user to a login page.
id: :class:`~horizon.middleware.HorizonMiddleware` yang disertakan menangkap``NotAuthenticated`` dan menanganinya dengan baik dengan menampilkan pesan kesalahan dan mengarahkan pengguna ke halaman login.

en: The included :class:`~horizon.middleware.HorizonMiddleware` catches ``NotAuthorized`` and handles it gracefully by displaying an error message and redirecting the user to a login page.
id:  :class:`~horizon.middleware.HorizonMiddleware` yang disertakan menangkap``NotAuthorized`` dan menanganinya dengan baik dengan menampilkan pesan kesalahan dan mengarahkan pengguna ke halaman login.

en: The index HTML is where rendering occurs and serves as an entry point for Angular. This is where we start to diverge from the traditional Python plugin. In this example, we use a Django template as the glue to our Angular template. Why are we going through a Django template for an Angular plugin? Long story short, ``base.html`` contains the navigation piece that we still need for each panel.
id: Indeks HTML adalah tempat rendering terjadi dan berfungsi sebagai titik masuk untuk Angular. Di sinilah kita mulai menyimpang dari plugin Python tradisional. Dalam contoh ini, kami menggunakan templat Django sebagai perekat pada templat Angular kami. Mengapa kita melalui templat Django untuk plugin Angular? Singkat cerita, ``base.html`` berisi bagian navigasi yang masih kita butuhkan untuk setiap panel.

en: The index HTML is where rendering occurs. In this example, we are only using Django. If you are interested in using Angular directives instead, read the AngularJS section below.::
id: Indeks HTML adalah tempat rendering terjadi. Dalam contoh ini, kami hanya menggunakan Django. Jika Anda tertarik menggunakan arahan Angular, baca bagian AngularJS di bawah ini ::

en: The key which should be used for the workflow object in the template context. Defaults to ``"workflow"``.
id: Kunci yang harus digunakan untuk objek alur kerja dalam konteks templat. Default ke ``"workflow"``.

en: The keys which will be added to the context data upon completion of the step.
id: Kunci-kunci yang akan ditambahkan ke data konteks setelah menyelesaikan langkah.

en: The list of the current core reviewers is found at `gerrit <https://review.opendev.org/#/admin/groups/43,members>`__.
id: Daftar peninjau inti saat ini dapat ditemukan di `gerrit <https://review.opendev.org/#/admin/groups/43,members>`__.

en: The mailing list would be a good place if you would like to discuss your topic with the OpenStack community more broadly. Most OpenStack users, operators and developers subscribe it and you can get useful feedbacks from various perspectives.
id: Milis akan menjadi tempat yang baik jika Anda ingin mendiskusikan topik Anda dengan komunitas OpenStack secara lebih luas. Sebagian besar pengguna, operator, dan pengembang OpenStack berlangganan dan Anda bisa mendapatkan umpan balik yang berguna dari berbagai perspektif.

en: The main Horizon context processor. Required for Horizon to function.
id: Prosesor konteks Horizon utama. Diperlukan agar Horizon berfungsi.

en: The main Horizon middleware class. Required for use of Horizon.
id: Kelas middleware Horizon utama. Diperlukan untuk penggunaan Horizon.

en: The main view class for all views which handle forms in Horizon.
id: Kelas tampilan utama untuk semua tampilan yang menangani form di Horizon.

en: The majority of interface in a dashboard-style interface ends up being tabular displays of the various resources the dashboard interacts with. The :class:`~horizon.tables.DataTable` class exists so you don't have to reinvent the wheel each time.
id: Mayoritas antarmuka dalam antarmuka dashboard-style akhirnya menjadi tampilan tabular dari berbagai sumber daya yang berinteraksi dengan dasbor. Kelas :class:`~horizon.tables.DataTable`  ada sehingga Anda tidak perlu menemukan kembali roda (wheel)  setiap kali.

en: The member list is found at https://launchpad.net/~horizon-bugs.
id: Daftar anggota ditemukan dihttps://launchpad.net/~horizon-bugs.

en: The member list is found at https://launchpad.net/~horizon-coresec.
id: Daftar anggota ditemukan dihttps://launchpad.net/~horizon-coresec.

en: The member list is found at https://launchpad.net/~horizon-drivers.
id: Daftar anggota ditemukan dihttps://launchpad.net/~horizon-drivers.

en: The member list is found at https://review.opendev.org/#/admin/groups/537,members.
id: Daftar anggota dapat ditemukan di https://review.opendev.org/#/admin/groups/537,members.

en: 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.
id: Metode ini sebagian besar dimaksudkan untuk penggunaan internal, tetapi jika Anda ingin menimpanya untuk memberikan perilaku khusus, Anda dapat melakukannya dengan risiko Anda sendiri.

en: The method should return either ``None`` or a dictionary of data to be passed to :meth:`~horizon.workflows.Step.contribute`.
id: Metode harus mengembalikan ``None`` atau kamus data yang akan diteruskan ke :meth:`~horizon.workflows.Step.contribute`.

en: The modal directive ``horizon/static/framework/widgets/modal/`` is a good example of a reusable component.
id: Arahan modal  ``horizon/static/framework/widgets/modal/``  adalah contoh yang baik dari komponen yang dapat digunakan kembali.

en: The name for this column which should be used for display purposes. Defaults to the value of ``transform`` with the first letter of each word capitalized if the ``transform`` is not callable, otherwise it defaults to an empty string (``""``).
id: Nama untuk kolom ini yang harus digunakan untuk tujuan tampilan. Default ke nilai ``transform`` dengan huruf pertama dari setiap kata dikapitalisasi jika ``transform`` tidak dapat dipanggil, jika tidak maka defaultnya adalah string kosong (``""``).

en: The name of a parameter used for tracking the URL to redirect to upon completion of the workflow. Defaults to ``"next"``.
id: Nama parameter yang digunakan untuk melacak URL untuk dialihkan ke setelah menyelesaikan alur kerja. Default ke ``"next"`.

en: The name of an attribute to assign to data passed to the table when it accepts mix data. Default: ``"_table_data_type"``
id: Nama atribut untuk menetapkan data yang diteruskan ke tabel saat menerima data campuran. Default: ``"_table_data_type"``

en: The name of the GET request parameter which will be used when requesting specific tab data. Default: ``tab``.
id: Nama parameter permintaan GET yang akan digunakan saat meminta data tab tertentu. Default: ``tab``.

en: The name of the Keystone project for the current user/token.
id: Nama proyek Keystone untuk user/token saat ini.

en: The name of the Keystone tenant for the current user/token.
id: Nama tenant Keystone untuk user/token saat ini.

en: The name of the context variable which will contain the table when it is rendered. Defaults to ``"table"``.
id: Nama variabel konteks yang akan berisi tabel saat diberikan. Default ke ``"table"``.

en: The name of the dashboard. This will be displayed in the auto-generated navigation and various other places. Default: ``''``.
id: Nama dasbor. Ini akan ditampilkan di navigasi otomatis dan berbagai tempat lainnya. Default: ``''``.

en: The name of the panel which should be treated as the default panel for the dashboard, i.e. when you visit the root URL for this dashboard, that's the panel that is displayed. Default: ``None``.
id: Nama panel yang seharusnya diperlakukan sebagai panel default untuk dasbor, yaitu ketika Anda mengunjungi URL root untuk dasbor ini, itulah panel yang ditampilkan. Default: ``None``.

en: The name of the panel. This will be displayed in the auto-generated navigation and various other places. Default: ``''``.
id: Nama panelnya. Ini akan ditampilkan di navigasi otomatis dan berbagai tempat lainnya. Default: `` '' ``.

en: The name of the query string parameter which will be used when paginating backward in this table. When using multiple tables in a single view this will need to be changed to differentiate between the tables. Default: ``"prev_marker"``.
id: Nama parameter string kueri yang akan digunakan saat membuat halaman mundur (paginating backward) dalam tabel ini. Saat menggunakan beberapa tabel dalam satu tampilan, ini perlu diubah untuk membedakan antara tabel. Default: ``"prev_marker"``.

en: The name of the query string parameter which will be used when paginating forward in this table. When using multiple tables in a single view this will need to be changed to differentiate between the tables. Default: ``"marker"``.
id: Nama parameter string kueri yang akan digunakan saat membuat halaman ke depan dalam tabel ini. Saat menggunakan beberapa tabel dalam satu tampilan, ini perlu diubah untuk membedakan antara tabel. Default: ``"marker"``.

en: The name of the template which will be used to render this tab group. Default: ``"horizon/common/_tab_group.html"``
id: Nama template yang akan digunakan untuk merender grup tab ini. Default: ``"horizon/common/_tab_group.html"``

en: The name which will appear on the submit button for the workflow's form. Defaults to ``"Save"``.
id: Nama yang akan muncul pada tombol kirim untuk formulir alur kerja. Default ke ``"Save"``.

en: The navigational structure is strongly encouraged to flow from ``Dashboard`` objects as top-level navigation items to ``Panel`` objects as sub-navigation items as in the current implementation. Template tags are provided to automatically generate this structure.
id: Struktur navigasi sangat dianjurkan untuk mengalir dari objek ``Dashboard`` sebagai item navigasi tingkat atas ke objek ``Panel`` sebagai item sub-navigasi seperti dalam implementasi saat ini. Tag template disediakan untuk secara otomatis menghasilkan struktur ini.

en: The object (if any) which this workflow relates to. In the case of a workflow which creates a new resource the object would be the created resource after the relevant creation steps have been undertaken. In the case of a workflow which updates a resource it would be the resource being updated after it has been retrieved.
id: Objek (jika ada) yang terkait dengan alur kerja ini. Dalam kasus alur kerja yang menciptakan sumber daya baru objek akan menjadi sumber daya yang dibuat setelah langkah-langkah pembuatan yang relevan telah dilakukan. Dalam kasus alur kerja yang memperbarui sumber daya, itu akan menjadi sumber daya yang diperbarui setelah diambil.

en: The only required attribute for ``TabView``. It should be a class which inherits from :class:`horizon.tabs.TabGroup`.
id: Satu-satunya atribut yang diperlukan untuk ``TabView``. Itu harus kelas yang mewarisi dari :class:`horizon.tabs.TabGroup`.

en: The only way to attain and uphold those ideals is to make it *easy* for developers to implement those values.
id: Satu-satunya cara untuk mencapai dan menjunjung tinggi cita-cita itu adalah dengan membuatnya *easy* bagi pengembang untuk mengimplementasikan nilai-nilai itu.

en: The open question is how to maintain Django related settings in openstack_dashboard and horizon. How can we make them common? The following files are related:
id: Pertanyaan terbuka adalah bagaimana mempertahankan pengaturan terkait Django di openstack_dashboard dan horizon. Bagaimana kita bisa membuat mereka menjadi bersama? File berikut terkait:

en: The openstack_auth.user.Token instance to check
id: Contoh openstack_auth.user.Token untuk memeriksa

en: The permissions are returned as ``"openstack.{{ role.name }}"``.
id: Izin dikembalikan sebagai ``"openstack.{{ role.name }}"``.

en: The preferred Angular module name in this example is ``horizon.dashboard.identity``. The ``horizon`` part of the module name maps to the ``static`` directory and indicates this is a ``horizon`` based application. ``dashboard.identity`` maps to folders that are created within ``static``. This allows a direct mapping between the angular module name of ``horizon.dashboard.identity`` and the source code directory of ``static\dashboard\identity``.
id: Nama modul Angular yang disukai dalam contoh ini adalah ``horizon.dashboard.identity``. Bagian ``horizon`` dari nama modul memetakan ke direktori ``static`` dan menunjukkan ini adalah aplikasi berbasis ``horizon``. ``dashboard.identity`` memetakan ke folder yang dibuat dalam ``static``. Ini memungkinkan pemetaan langsung antara nama modul angular ``horizon.dashboard.identity`` dan direktori kode sumber ``static\dashboard\identity``.

en: The previous features are critical requirements of the Horizon packaging system. Any new system *must* keep these features. Although XStatic may mean a few additional steps from individual developers, those steps help maintain consistency and prevent errors across the project.
id: Fitur sebelumnya adalah persyaratan penting sistem pengemasan Horizon. Setiap sistem baru *must* menyimpan fitur-fitur ini. Meskipun XStatic dapat berarti beberapa langkah tambahan dari masing-masing pengembang, langkah-langkah tersebut membantu menjaga konsistensi dan mencegah kesalahan di seluruh proyek.

en: The primary way to add role based access control checks to panels is in the definition of table actions. When implementing a derived action class, setting the :attr:`~horizon.tables.Action.policy_rules` attribute to valid policy rules will force a policy check before the :meth:`horizon.tables.Action.allowed` method is called on the action. These rules are defined in the policy files pointed to by ``POLICY_PATH`` and ``POLICY_FILES``. The rules are role based, where entity owner is also a role. The format for the ``policy_rules`` is a list of two item tuples. The first component of the tuple is the scope of the policy rule, this is the service type. This informs the policy engine which policy file to reference. The second component is the rule to enforce from the policy file specified by the scope. An example tuple is::
id: Cara utama untuk menambahkan pemeriksaan kontrol akses berbasis peran ke panel adalah dalam definisi table action (tindakan tabel). Saat menerapkan kelas tindakan turunan, menetapkan atribut :attr:`~horizon.tables.Action.policy_rules` ke aturan kebijakan yang valid akan memaksa pemeriksaan kebijakan sebelum metode :meth:`horizon.tables.Action.allowed` dipanggil tindakan. Aturan-aturan ini didefinisikan dalam file kebijakan yang ditunjukkan oleh ``POLICY_PATH`` dan ``POLICY_FILES``. Aturan berdasarkan peran, di mana pemilik entitas juga berperan. Format untuk ``policy_rules`` adalah daftar dua item tuple. Komponen pertama dari tuple adalah ruang lingkup aturan kebijakan, ini adalah jenis layanan. Ini menginformasikan mesin kebijakan yang file kebijakan untuk referensi. Komponen kedua adalah aturan untuk menegakkan dari file kebijakan yang ditentukan oleh ruang lingkup. Contoh tuple adalah ::

en: The proposal here is to expose only settings which openstack_dashboard expects to expose to deployers. Most Django settings are internally used in ``openstack_dashboard/settings.py``. Settings required for horizon plugins are already exposed via the plugin settings, so there is no need to expose them. If deployers would like to customize Django basic settings, they can still configure them via ``local_settings.py`` or ``local_settings.d``.
id: Proposal di sini adalah untuk mengekspos hanya pengaturan yang openstack_dashboard harapkan untuk mengekspos ke deployer. Sebagian besar pengaturan Django digunakan secara internal di ``openstack_dashboard/settings.py``. Pengaturan yang diperlukan untuk plugin horizon sudah diekspos melalui pengaturan plugin, jadi tidak perlu memaparkannya. Jika deployer ingin mengkustomisasi pengaturan dasar Django, mereka masih dapat mengkonfigurasinya melalui ``local_settings.py`` atau ``local_settings.d``.

en: 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.
id: 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.

en: The quick version
id: Versi cepat

en: 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.
id: Wilayah akan dialihkan jika wilayah yang diberikan adalah salah satu wilayah yang tersedia untuk proyek lingkup. Kalau tidak, wilayah ini tidak diaktifkan.

en: The request enters view.
id: Permintaan memasuki tampilan.

en: The results are in the doc/build/html and doc/build/man directories respectively.
id: Hasilnya masing-masing dalam direktori doc/build/html dan doc/build/man.

en: The return value will be either the attribute specified for this column or the return value of the attr:`~horizon.tables.Column.transform` method for this column.
id: Nilai kembali akan berupa atribut yang ditentukan untuk kolom ini atau nilai pengembalian metode attr: `~ horizon.tables.Column.transform` untuk kolom ini.

en: The return value will be used as marker/limit-based paging in the API.
id: Nilai kembali akan digunakan sebagai marker/limit-based paging dalam API.

en: The returned classes are determied based on the workflow characteristics.
id: Kelas yang dikembalikan ditentukan berdasarkan karakteristik alur kerja.

en: The returned display form is highly recommended to be a complete action name with a form of a transitive verb and an object noun. Each word is capitalized and the string should be marked as translatable.
id: Bentuk tampilan yang dikembalikan sangat disarankan untuk menjadi nama aksi lengkap dengan bentuk kata kerja transitif dan kata benda objek. Setiap kata dikapitalisasi dan string harus ditandai sebagai diterjemahkan.

en: The row objects get an additional ``form`` parameter, with the formset form corresponding to that row.
id: Objek baris mendapatkan parameter ``form`` tambahan, dengan formset yang sesuai dengan baris itu.

en: The row status is used by other Horizon components to trigger tasks such as dynamic AJAX updating.
id: Status baris digunakan oleh komponen Horizon lain untuk memicu tugas seperti pembaruan AJAX dinamis.

en: The row's data is provided either at initialization or as an argument to this function.
id: Data baris disediakan saat inisialisasi atau sebagai argumen untuk fungsi ini.

en: The second value represents display value.
id: Nilai kedua mewakili nilai tampilan.

en: The secondary way to add a role based check is to directly use the :meth:`~openstack_dashboard.policy.check` method.  The method takes a list of actions, same format as the :attr:`~horizon.tables.Action.policy_rules` attribute detailed above; the current request object; and a dictionary of action targets. This is the method that :class:`horizon.tables.Action` class utilizes.  Examples look like::
id: Cara sekunder untuk menambahkan cek berbasis peran adalah dengan langsung menggunakan metode:meth:`~openstack_dashboard.policy.check`. Metode ini mengambil daftar tindakan, format yang sama dengan atribut :attr:`~horizon.tables.Action.policy_rules`  yang dirinci di atas; objek permintaan saat ini; dan kamus target aksi. Ini adalah metode yang memanfaatkan kelas :class:`horizon.tables.Action`. Contohnya terlihat seperti ::

en: The service rules files are loaded into the policy engine to determine access rights to actions and service APIs.
id: File aturan layanan dimuat ke mesin kebijakan untuk menentukan hak akses ke tindakan dan API layanan.

en: The session object that the auth_plugin belongs to.
id: Objek sesi milik auth_plugin.

en: The short name or "slug" representing this action. Defaults to ``"filter"``.
id: Nama pendek atau "slug" mewakili aksi ini. Default untuk `` "filter" ``.

en: The slug of the step which should initially be active when the workflow is rendered. This can be passed in upon initialization of the workflow, or set anytime after initialization but before calling either ``get_entry_point`` or ``render``.
id: Slug langkah yang awalnya harus aktif saat alur kerja diberikan. Ini dapat diteruskan pada saat inisialisasi alur kerja, atau ditetapkan kapan saja setelah inisialisasi tetapi sebelum memanggil ``get_entry_point`` atau ``render``.

en: The straight-forward approach is to have a dictionary from setting names to oslo.config options like:
id: Pendekatan straight-forward adalah memiliki kamus dari pengaturan nama ke opsi oslo.config seperti:

en: The style guide is found at the below location:
id: Panduan style ditemukan di lokasi di bawah ini:

en: The tab itself is the discrete unit for a tab group, representing one view of data.
id: Tab itu sendiri adalah unit diskrit untuk grup tab, mewakili satu tampilan data.

en: The table class is instantiated without data.
id: Kelas tabel dipakai tanpa data.

en: The table which this row belongs to.
id: Tabel tempat baris ini dimiliki.

en: The target tables are specified by the :attr:`~horizon.tabs.TableTab.table_classes` attribute.
id: Tabel target ditentukan oleh attribute :attr:`~horizon.tabs.TableTab.table_classes` attribute.

en: The template
id: Templat

en: The template file
id: File template

en: The template file contains the HTML that will be used to show the view.
id: File template berisi HTML yang akan digunakan untuk menampilkan view.

en: The template to use when rendering the workflow for AJAX requests. In general the default common template should be used. Defaults to ``"horizon/common/_workflow.html"``.
id: Templat yang digunakan saat merender alur kerja untuk permintaan AJAX. Secara umum templat umum default harus digunakan. Default ke ``"horizon/common/_workflow.html"``.

en: The template to use when rendering this view via standard HTTP requests. Required.
id: Templat yang digunakan saat merender tampilan ini melalui permintaan HTTP standar. Wajib.

en: The tenant_id keyword argument is deprecated, use project_id instead.
id: Argumen kata kunci tenant_id sudah tidak digunakan lagi, gunakan project_id sebagai gantinya.

en: The tenant_name keyword argument is deprecated, use project_name instead.
id: Argumen kata kunci tenant_name sudah usang, gunakan project_name sebagai gantinya.

en: The term "dashboard" refers to a top-level dashboard class, and "panel" to the sub-items within a dashboard. Referring to a panel as a dashboard is both confusing and incorrect.
id: Istilah "dashboard" mengacu pada kelas dasbor tingkat atas, dan "panel" ke sub-item dalam dasbor. Mengacu pada panel sebagai dasbor membingungkan dan salah.

en: The term "project" is used in place of Keystone's "tenant" terminology in all user-facing text. The term "tenant" is still used in API code to make things more obvious for developers.
id: Istilah "project" digunakan sebagai ganti terminologi "tenant" Keystone di semua teks yang menghadap pengguna. Istilah "tenant" masih digunakan dalam kode API untuk membuat hal-hal lebih jelas bagi pengembang.

en: The third optional value indicates whether or not it should be applied to the API request as an API query attribute. API type filters do not need to be accounted for in the filter method since the API will do the filtering. However, server type filters in general will need to be performed in the filter method. By default this attribute is not provided (``False``).
id: Nilai opsional ketiga menunjukkan apakah atau tidak itu harus diterapkan ke permintaan API sebagai atribut query API. Filter jenis API tidak perlu diperhitungkan dalam metode filter karena API akan melakukan pemfilteran. Namun, jenis filter server pada umumnya perlu dilakukan dalam metode filter. Secara default, atribut ini tidak disediakan (`` False``).

en: The third way to add a role based check is in javascript files. Use the method 'ifAllowed()' in file 'openstack_dashboard.static.app.core.policy.service.js'. The method takes a list of actions, similar format with the :attr:`~horizon.tables.Action.policy_rules` attribute detailed above. An Example looks like::
id: Cara ketiga untuk menambahkan pemeriksaan berbasis peran adalah dalam file javascript. Gunakan metode 'ifAllowed ()' dalam file 'openstack_dashboard.static.app.core.policy.service.js'. Metode ini mengambil daftar tindakan, format yang serupa dengan atribut :attr: `~ horizon.tables.Action.policy_rules` yang dirinci di atas. Contohnya terlihat seperti::

en: The token object is deprecated, user auth_ref instead.
id: Objek token sudah ditinggalkan, sebaliknya pengguna auth_ref.

en: The tooling for AngularJS testing and code linting relies on npm, the node package manager, and thus relies on Node.js. While it is not a prerequisite to developing with Horizon, it is advisable to install Node.js, either through `downloading <https://nodejs.org/download/>`_ or `via a package manager <https://github.com/nodejs/node-v0.x-archive/wiki/Installing-Node.js-via-package-manager>`_.
id: Perkakas untuk pengujian AngularJS dan linting kode bergantung pada npm, manajer paket simpul, dan dengan demikian bergantung pada Node.js. Meskipun bukan merupakan prasyarat untuk mengembangkan dengan Horizon, disarankan untuk menginstal Node.js, baik melalui `downloading <https://nodejs.org/download/>`_ atau `via a package manager <https://github.com/nodejs/node-v0.x-archive/wiki/Installing-Node.js-via-package-manager>`_.

en: The top level ``_styles.scss`` and ``_variables.scss`` contain imports from the ``bootstrap`` and ``horizon`` directories.
id: Level atas ``_styles.scss`` dan ``_variables.scss`` berisi impor dari direktori ``bootstrap`` dan ``horizon``.

en: The top-level SCSS file in ``openstack_dashboard/static/app/_app.scss``. It includes any styling that is part of the application ``core`` and may be reused by multiple dashboards. SCSS files that are specific to a particular dashboard are linked to the application by adding them in that dashboard's enabled file. For example, `_1920_project_containers_panel.py` is the enabled file for the ``Project`` dashboard's ``Container`` panel and includes: ::
id: File SCSS tingkat atas di ``openstack_dashboard/static/app/_app.scss``. Ini mencakup gaya apa pun yang merupakan bagian dari aplikasi ``core`` dan dapat digunakan kembali oleh beberapa dasbor. File SCSS yang khusus untuk dasbor tertentu ditautkan ke aplikasi dengan menambahkannya dalam file yang diaktifkan dasbor itu. Sebagai contoh, `_1920_project_containers_panel.py` adalah file yang diaktifkan untuk panel ``Container`` ``Project`` dasbor dan termasuk: ::

en: The triggers are fields using a ``select`` input widget, marked with the "switchable" class, and defining a "data-slug" attribute. When they are changed, any input with the ``"switched"`` class and defining a ``"data-switch-on"`` attribute which matches the ``select`` input's ``"data-slug"`` attribute will be evaluated for necessary changes. In simpler terms, if the ``"switched"`` target input's ``"switch-on"`` matches the ``"slug"`` of the ``"switchable"`` trigger input, it gets switched. Simple, right?
id: Trigger adalah field menggunakan widget input ``select``, ditandai dengan kelas "switchable", dan mendefinisikan atribut "data-slug". Ketika mereka diubah, input apa pun dengan kelas  ``"switched"`` dan mendefinisikan `` "data-switch-on" `` atribut yang cocok dengan ``select`` input `` "data-slug" `` atribut akan dievaluasi untuk perubahan yang diperlukan. Dalam istilah yang lebih sederhana, jika ``"switched"``  input target `` "switch-on" `` cocok dengan `` "slug" `` dari input pemicu `` "switchable" ``, input akan diaktifkan. Sederhana bukan?

en: The unique slug for this workflow. Required.
id: Slug unik untuk alur kerja ini. Wajib.

en: The value in WEBSSO_IDP_MAPPING is expected to be a tuple formatted as (<idp_id>, <protocol_id>). Using the values found, a IdP/protocol specific URL will be constructed::
id: Nilai dalam WEBSSO_IDP_MAPPING diharapkan menjadi tuple yang diformat sebagai (<idp_id>, <protocol_id>). Dengan menggunakan nilai-nilai yang ditemukan, URL khusus IdP/protocol akan dibuat ::

en: The value of websso_auth will be looked up in the WEBSSO_IDP_MAPPING dictionary, if a match is found it will return a IdP specific WebSSO endpoint using the values found in the mapping.
id: Nilai websso_auth akan dilihat dalam kamus WEBSSO_IDP_MAPPING, jika kecocokan ditemukan, itu akan mengembalikan titik akhir WebSSO khusus IdP menggunakan nilai yang ditemukan dalam pemetaan.

en: The values for this attribute should not correspond to the :attr:`~.Panel.name` attributes of the ``Panel`` classes. They should be the names of the Python modules in which the ``panel.py`` files live. This is used for the automatic loading and registration of ``Panel`` classes much like Django's ``ModelAdmin`` machinery.
id: Nilai untuk atribut ini seharusnya tidak sesuai dengan atribut :attr: `~ .Panel.name` dari kelas ``Panel``. Mereka harus menjadi nama-nama modul Python di mana ``panel.py`` file hidup. Ini digunakan untuk pemuatan otomatis dan registrasi kelas ``Panel`` seperti mesin Django's ``ModelAdmin``.

en: The verbose name for this action. Defaults to the name of the class.
id: Nama verbose untuk tindakan ini. Default untuk nama kelas.

en: The verbose name for this workflow which will be displayed to the user. Defaults to the class name.
id: Nama verbose untuk alur kerja ini yang akan ditampilkan kepada pengguna. Default ke nama kelas.

en: The workflow's Step is specified by its slug.
id: Langkah alur kerja ditentukan oleh slug.

en: The workflow's context data (data passed from step to step).
id: Data konteks alur kerja (data diteruskan dari langkah ke langkah).

en: Theme Preview Panel
id: Theme Preview Panel (panel pratinjau tema)

en: Then connecting ``UpdateRow`` and ``UpdateCell`` classes to the table.
id: Kemudian menghubungkan kelas ``UpdateRow`` dan ``UpdateCell`` ke tabel.

en: Then edit the sample file that was created and push it with your change.
id: Kemudian edit file sampel yang telah dibuat dan dorong dengan perubahan Anda.

en: Then in your HTML, use it like so::
id: Kemudian di HTML Anda, gunakan seperti ini::

en: Then look at the generated release notes files in releasenotes/build/html in your favorite browser.
id: Kemudian lihat file catatan rilis yang dihasilkan di  releasenotes/build/html di browser favorit Anda.

en: Then update your  ``openstack_dashboard/local/local_settings.py`` file
id: Kemudian perbarui file ``openstack_dashboard/local/local_settings.py`` Anda

en: Then you add a single line to your project's ``urls.py``
id: Kemudian Anda menambahkan satu baris ke proyek Anda ``urls.py``

en: Then, we add that action to the table actions for our table.::
id: Kemudian, kami menambahkan action itu ke tindakan tabel (table action) untuk tabel kami. ::

en: There are a few settings that must be in place for the Horizon policy engine to work.
id: Ada beberapa pengaturan yang harus ada agar mesin kebijakan Horizon berfungsi.

en: There are a load of filters, that can be used, defined in django already: https://github.com/django/django/blob/master/django/template/defaultfilters.py
id: Ada banyak filter, yang dapat digunakan, sudah didefinisikan dalam Django: https://github.com/django/django/blob/master/django/template/defaultfilters.py

en: There are a number of typical (and non-obvious) ways to break the unit tests. Some common things to look for:
id: Ada sejumlah cara khas (dan non-obvious) untuk memecahkan tes unit. Beberapa hal umum yang harus dicari:

en: There are a number of unsupported OpenStack features in horizon. Implementing such would be appreciated even if it is small.
id: Ada beberapa fitur OpenStack yang tidak didukung di horizon. Menerapkannya akan dihargai meskipun kecil.

en: There are also additional actions which are extensions of the basic Action classes:
id: Ada juga tindakan tambahan yang merupakan ekstensi dari basic Action classes:

en: There are basically 3 things that need to be defined in the table in order to enable in-line editing.
id: Pada dasarnya ada 3 hal yang perlu didefinisikan dalam tabel untuk memungkinkan pengeditan in-line.

en: 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.
id: Ada banyak pre-built class-based view di horizon. Kami mencoba memberikan titik awal (starting point) untuk semua kombinasi komponen yang umum.

en: There are multiple components in our JavaScript testing framework:
id: Ada beberapa komponen dalam kerangka pengujian JavaScript kami:

en: There are no required kwargs. They are passed directly to the auth plugin and they are implementation specific.
id: Tidak diperlukan kwargs. Mereka diteruskan langsung ke plugin auth dan mereka implementasi spesifik.

en: There are several common tasks for which Horizon provides pre-built shortcut classes. These include :class:`~horizon.tables.BatchAction`, and :class:`~horizon.tables.DeleteAction`. Each of these abstracts away nearly all of the boilerplate associated with writing these types of actions and provides consistent error handling, logging, and user-facing interaction.
id: Ada beberapa tugas umum yang Horizon menyediakan kelas pintas yang sudah dibangun sebelumnya. Ini termasuk :class:`~horizon.tables.BatchAction`, and :class:`~horizon.tables.DeleteAction`.  Masing-masing abstrak ini menghilangkan hampir semua boilerplate yang terkait dengan penulisan jenis tindakan ini dan memberikan penanganan kesalahan yang konsisten, pencatatan, dan interaksi yang dihadapi pengguna.

en: 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.
id: 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.

en: There are three main types of tests, each with their associated pros and cons:
id: Ada tiga jenis tes utama, masing-masing dengan pro dan kontra terkait:

en: 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 loaded. When you're using one of the pre-built class-based views for working with your tables the pseudo-workflow looks like this:
id: Ada dua poin dalam siklus  request-response di mana tindakan dapat terjadi; sebelum data dimuat ke dalam tabel, dan setelah data dimuat. Saat Anda menggunakan salah satu tampilan berbasis kelas pre-built untuk bekerja dengan tabel Anda, pseudo-workflow terlihat seperti ini:

en: There is also a useful and simple generic class-based view for handling the display of a :class:`~horizon.tabs.TabGroup` class.
id: Ada juga tampilan berbasis kelas generik yang berguna dan sederhana untuk menangani tampilan dari kelas :class:`~horizon.tabs.TabGroup` .

en: There is the "On Demand Agenda" section at the end of the meeting, where anyone can add a topic to discuss with the team. It is suggested to add such topic to the On-Demand agenda in the "Weekly meeting" in `horizon release priority etherpad <https://etherpad.opendev.org/p/horizon-release-priorities>`__.
id: Ada bagian "On Demand Agenda" di akhir rapat, di mana siapa pun dapat menambahkan topik untuk didiskusikan dengan tim. Disarankan untuk menambahkan topik tersebut ke agenda On-Demand di the "Weekly meeting" di `horizon release priority etherpad <https://etherpad.opendev.org/p/horizon-release-priorities>`__.

en: 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?".
id: 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?".

en: These are isolated, stand-alone tests with no external dependencies. They are written from the perspective of "knowing the code", and test the assumptions of the codebase and the developer.
id: Ini adalah tes terisolasi yang berdiri sendiri tanpa ketergantungan eksternal. Mereka ditulis dari perspektif "knowing the code", dan menguji asumsi basis kode dan pengembang.

en: These files are used to extract messages by ``pybabel``: ``babel-django.cfg`` for python code and template files, and ``babel-djangojs.cfg`` for JavaScript files.
id: File ini digunakan untuk mengekstraksi pesan dengan ``pybabel``: ``babel-django.cfg`` untuk kode python dan file templat, dan ``babel-djangojs.cfg`` untuk file JavaScript.

en: These template tags are aware of the current "active" dashboard and panel via template context variables and will render accordingly.
id: Tag templat ini mengetahui dasbor dan panel "aktif" saat ini melalui variabel konteks templat dan akan ditampilkan sesuai dengan itu.

en: These tests requires `geckodriver` installed. It could be downloaded from https://github.com/mozilla/geckodriver/releases.
id: Tes-tes ini membutuhkan `geckodriver` yang diinstal. Itu dapat diunduh dari https://github.com/mozilla/geckodriver/releases.

en: They are required to enable translation support by OpenStack CI infra. If they do not exist, the translation jobs will skip processing for your project.
id: Mereka diminta untuk mengaktifkan dukungan terjemahan oleh OpenStack CI infra. Jika tidak ada, pekerjaan terjemahan akan melewati pemrosesan untuk proyek Anda.

en: They have made a long-term, recurring time investment to improve the project.
id: Mereka telah melakukan investasi jangka panjang dan berulang untuk meningkatkan proyek.

en: They share responsibility in the project's success in its mission.
id: Mereka berbagi tanggung jawab dalam keberhasilan proyek dalam misinya.

en: They spend their time doing what needs to be done to ensure the project's success, not necessarily what is the most interesting or fun.
id: Mereka menghabiskan waktu melakukan apa yang perlu dilakukan untuk memastikan keberhasilan proyek, tidak harus apa yang paling menarik atau menyenangkan.

en: They value a healthy, vibrant, and active developer and user community.
id: Mereka menghargai komunitas pengembang dan pengguna yang sehat, bersemangat, dan aktif.

en: 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.
id: 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.

en: This action should not require user input on a per-object basis.
id: Tindakan ini seharusnya tidak memerlukan input pengguna pada basis per-objek.

en: This action will create a snapshot of the instance. When the action is taken, it will display a form that will allow the user to enter a snapshot name, and will create that snapshot when the form is closed using the ``Create snapshot`` button.
id: Tindakan ini akan membuat snapshot dari instance. Ketika tindakan diambil, itu akan menampilkan formulir yang akan memungkinkan pengguna untuk memasukkan nama snapshot, dan akan membuat snapshot itu ketika formulir ditutup menggunakan tombol ``Create snapshot``.

en: This allows the application to easily include all needed styling, simply by including a dashboard's top-level SCSS file.
id: Ini memungkinkan aplikasi untuk dengan mudah memasukkan semua styling yang diperlukan, cukup dengan memasukkan file SCSS top-level dasbor.

en: This applies ``openstack_dashboard/local/local_settings.diff`` on ``openstack_dashboard/local/local_settings.py.example`` to regenerate an ``openstack_dashboard/local/local_settings.py`` file. The migration can sometimes have difficulties to migrate some settings, if this happens you will be warned with a conflict message pointing to an ``openstack_dashboard/local/local_settings.py_Some_DateTime.rej`` file. In this file, you will see the lines which could not be automatically changed and you will have to redo only these few changes manually instead of modifying the full ``openstack_dashboard/local/local_settings.py.example`` file.
id: Ini berlaku ``openstack_dashboard/local/local_settings.diff`` pada ``openstack_dashboard/local/local_settings.py.example`` untuk membuat ulang file ``openstack_dashboard/local/local_settings.py``. Migrasi kadang-kadang dapat mengalami kesulitan untuk memigrasi beberapa pengaturan, jika ini terjadi Anda akan diperingatkan dengan pesan konflik yang menunjuk ke file ``openstack_dashboard/local/local_settings.py_Some_DateTime.rej``. Dalam file ini, Anda akan melihat baris-baris yang tidak dapat diubah secara otomatis dan Anda harus mengulang hanya beberapa perubahan ini secara manual daripada memodifikasi file penuh ``openstack_dashboard/local/local_settings.py.example``.

en: This can allow actions which don't need access to the full table data to bypass any API calls and processing which would otherwise be required to load the table.
id: Ini dapat memungkinkan aksi yang tidak memerlukan akses ke data tabel penuh untuk melewati semua panggilan API dan pemrosesan yang seharusnya diperlukan untuk memuat tabel.

en: This can be useful if the default dashboard may not be accessible to all users. When user_home is missing from HORIZON_CONFIG, it will default to the settings.LOGIN_REDIRECT_URL value.
id: Ini dapat berguna jika dasbor default mungkin tidak dapat diakses oleh semua pengguna. Ketika user_home hilang dari HORIZON_CONFIG, itu akan menjadi nilai default setting.LOGIN_REDIRECT_URL.

en: This class name is used to indicate the status of the rows in the table if any ``status_columns`` have been specified.
id: Nama kelas ini digunakan untuk menunjukkan status baris dalam tabel jika ada ``status_columns`` telah ditentukan.

en: This comes from the combination of the following two reasons.
id: Ini berasal dari kombinasi dua alasan berikut.

en: This creates a ``local_settings.diff`` file which is a diff between ``local_settings.py`` and ``local_settings.py.example``
id: Ini menciptakan file ``local_settings.diff`` yang merupakan perbedaan antara ``local_settings.py`` dan ``local_settings.py.example``

en: This directory contains SCSS that is absolutely specific to Horizon; code here should **not** override existing Bootstrap content, such as variables and rules.
id: Direktori ini berisi SCSS yang benar-benar spesifik untuk Horizon; kode di sini seharusnya **not** menggantikan konten Bootstrap yang ada, seperti variabel dan aturan.

en: This directory contains overrides and customization of Bootstrap variables, and markup used by Bootstrap components. This should **only** override existing Bootstrap content. For examples of these components, see the `Theme Preview Panel`_.
id: Direktori ini berisi penggantian dan penyesuaian variabel Bootstrap, dan markup yang digunakan oleh komponen Bootstrap. Ini harus **only** menggantikan konten Bootstrap yang ada. Untuk contoh komponen ini, lihat `Theme Preview Panel`_.

en: This distinct class is required due to the complexity involved in handling both dynamic tab loading, dynamic table updating and table actions all within one view.
id: Kelas yang berbeda ini diperlukan karena kompleksitas yang terlibat dalam penanganan pemuatan tab dinamis, pemutakhiran tabel dinamis, dan tindakan tabel semua dalam satu tampilan.

en: This environment also runs the documentation style checker ``doc8`` against RST and YAML files under ``releasenotes/source`` to keep the documentation style consistent. If you would like to run ``doc8`` manually, see **docs** environment below.
id: Lingkungan ini juga menjalankan pemeriksa gaya dokumentasi ``doc8`` terhadap file RST dan YAML di bawah ``releasenotes/source`` untuk menjaga gaya dokumentasi tetap konsisten. Jika Anda ingin menjalankan ``doc8`` secara manual, lihat **docs ** environment di bawah ini.

en: This environment also runs the documentation style checker ``doc8`` against RST files under ``doc/source`` to keep the documentation style consistent. If you would like to run ``doc8`` manually, run:
id: Lingkungan ini juga menjalankan pemeriksa gaya dokumentasi ``doc8`` terhadap file RST di bawah ``doc/source`` untuk menjaga gaya dokumentasi tetap konsisten. Jika Anda ingin menjalankan ``doc8`` secara manual, jalankan:

en: This error class which can be raised from within a handler to cause an early bailout and redirect at the middleware level.
id: Kelas kesalahan ini yang dapat dibangkitkan dari dalam handler menyebabkan bailout dini dan redirect pada level middleware.

en: This file contains contents you want to display to the user. We will provide a simple example of a step that asks for your favorite color. The most important thing to note here is the reference to our controller via the ``ng-controller`` directive. This is essentially the link to our controller.
id: File ini berisi konten yang ingin Anda tampilkan kepada pengguna. Kami akan memberikan contoh sederhana dari langkah yang meminta warna favorit Anda. Yang paling penting untuk dicatat di sini adalah referensi ke controller kami melalui direktif ``ng-controller``. Ini pada dasarnya adalah tautan ke pengontrol kami.

en: This file is responsible for listing the paths you want included in your tar.::
id: File ini bertanggung jawab untuk mendaftarkan jalur yang ingin Anda sertakan dalam tar Anda. ::

en: This file is unnecessary in a purely Django based plugin, or if your Angular based plugin is relying on CORS support in the desired service. For more information on CORS, see https://docs.openstack.org/oslo.middleware/latest/admin/cross-project-cors.html
id: File ini tidak diperlukan dalam plugin murni berbasis Django, atau jika plugin berbasis Angular Anda mengandalkan dukungan CORS dalam layanan yang diinginkan. Untuk informasi lebih lanjut tentang CORS, lihat https://docs.openstack.org/oslo.middleware/latest/admin/cross-project-cors.html

en: This file will likely be necessary if creating a Django or Angular driven plugin. This file is intended to act as a convenient location for interacting with the new service this plugin is supporting. While interactions with the service can be handled in the ``views.py``, isolating the logic is an established pattern in Horizon.
id: File ini kemungkinan akan diperlukan jika membuat plugin yang didorong oleh Django atau Angular. File ini dimaksudkan untuk bertindak sebagai lokasi yang nyaman untuk berinteraksi dengan layanan baru yang didukung plugin ini. Sementara interaksi dengan layanan dapat ditangani di ``views.py``, mengisolasi logika adalah pola yang sudah ada di Horizon.

en: This file will likely be necessary if creating a plugin using Angular. Your plugin will need to communicate with a new service or require new interactions with a service already supported by Horizon. In this particular example, the plugin will augment the support for the already supported Identity service, Keystone. This file serves to define new REST interfaces for the plugin's client-side to communicate with Horizon. Typically, the REST interfaces here make calls into ``myservice.py``.
id: File ini kemungkinan akan diperlukan jika membuat plugin menggunakan Angular. Plugin Anda perlu berkomunikasi dengan layanan baru atau memerlukan interaksi baru dengan layanan yang sudah didukung oleh Horizon. Dalam contoh khusus ini, plugin akan menambah dukungan untuk layanan Identity yang sudah didukung, Keystone. File ini berfungsi untuk mendefinisikan antarmuka REST baru untuk sisi klien plugin untuk berkomunikasi dengan Horizon. Biasanya, antarmuka REST di sini membuat panggilan ke ``myservice.py``.

en: This filter is to add safety in production environments (i.e. DEBUG is False). If DEBUG is True then your site is not safe anyway. This hook is provided as a convenience to easily activate or deactivate the filter on a per request basis.
id: Filter ini untuk menambah keamanan di lingkungan produksi (mis. DEBUG adalah False). Jika DEBUG adalah True, berarti situs Anda tidak aman. Pengait ini disediakan sebagai kemudahan untuk mengaktifkan atau menonaktifkan filter dengan mudah berdasarkan permintaan.

en: This format is 'openstack.roles.xxx' and 'xxx' is a real role name.
id: Format ini adalah 'openstack.roles.xxx' dan 'xxx' adalah nama peran nyata.

en: This function is called automatically by :meth:`~horizon.tables.Row.__init__` if the ``datum`` argument is provided. However, by not providing the data during initialization this function allows for the possibility of a two-step loading pattern when you need a row instance but don't yet have the data available.
id: Fungsi ini dipanggil secara otomatis oleh :meth: `~ horizon.tables.Row .__ init__` jika argumen ``datum`` disediakan. Namun, dengan tidak menyediakan data selama inisialisasi fungsi ini memungkinkan untuk kemungkinan pola memuat dua langkah ketika Anda membutuhkan instance baris tetapi belum memiliki data yang tersedia.

en: This gives us a custom page title, a header, and renders our tab group provided by the view.
id: Ini memberi kami judul halaman khusus, header, dan merender grup tab kami yang disediakan oleh tampilan.

en: This guide is a work in progress. It has been uploaded to encourage faster reviewing and code development in Angular, and to help the community standardize on a set of guidelines. There are notes inline on sections that are likely to change soon, and the docs will be updated promptly after any changes.
id: Panduan ini sedang dalam proses. Itu telah diunggah untuk mendorong peninjauan yang lebih cepat dan pengembangan kode di Angular, dan untuk membantu masyarakat melakukan standarisasi pada serangkaian pedoman. Ada catatan sebaris pada bagian yang kemungkinan akan segera berubah, dan dokumen akan segera diperbarui setelah perubahan apa pun.

en: This incremental growth served the goal of "Core Support" phenomenally, but left "Extensible" and "Manageable" behind. And while the other key values took shape of their own accord, it was time to re-architect for an extensible, modular future.
id: Pertumbuhan tambahan ini melayani tujuan "Core Support" secara fenomenal, tetapi menyisakan "Extensible" and "Manageable" . Dan sementara nilai-nilai kunci lainnya terbentuk atas kemauan mereka sendiri, sekarang saatnya untuk merancang ulang arsitektur untuk masa depan modular yang dapat diperluas.

en: This is a basic example where we mocked the data. For exercise, load your data using the ``$http`` service.
id: Ini adalah contoh dasar di mana kami mengejek data. Untuk latihan, muat data Anda menggunakan layanan ``$http``.

en: This is a list of test environments available to be executed by ``tox -e <name>``.
id: Ini adalah daftar test environments yang tersedia untuk dijalankan oleh ``tox -e <name>``.

en: This is a more generalized replacement of the older get_token to allow plugins to specify different or additional authentication headers to the OpenStack standard 'X-Auth-Token' header.
id: Ini adalah pengganti yang lebih umum dari get_token yang lebih tua untuk memungkinkan plugin menentukan header otentikasi berbeda atau tambahan ke header OpenStack standar 'X-Auth-Token'.

en: 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.
id: Ini sedikit penyederhanaan dari kenyataan bagaimana objek contoh sebenarnya terstruktur. Pada saat menerima, atribut diakses diperlukan langkah tambahan.

en: 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 external location, while the form validation is done as usual. It should be paired with ExternalUploadMeta metaclass embedded into the Form class.
id: Ini adalah flavor khusus FileField yang dimaksudkan untuk digunakan dalam kasus sebagai ganti mengupload file ke Django, itu harus diunggah ke beberapa lokasi eksternal, sementara validasi form dilakukan seperti biasa. Ini harus dipasangkan dengan metaclass ExternalUploadMeta yang disematkan ke kelas Form.

en: This is called upon both successful or unsuccessful completion of the workflow.
id: Ini dipanggil pada penyelesaian alur kerja yang berhasil atau tidak berhasil.

en: This is easier to understand with a conceptual example: in the context of a "launch instance" workflow, actions would include "naming the instance", "selecting an image", and ultimately "launching the instance".
id: Ini lebih mudah dipahami dengan contoh konseptual: dalam konteks alur kerja "launch instance", tindakan akan mencakup  "naming the instance", "selecting an image", dan ultimately "launching the instance".

en: This is our view. In this example, we are looping through the list of items provided by the controller and displaying the name and id. The important thing to note is the reference to our controller using the ``ng-controller`` directive.
id: Ini adalah pandangan kami. Dalam contoh ini, kami mengulang daftar item yang disediakan oleh controller dan menampilkan nama dan id. Yang penting untuk dicatat adalah referensi ke controller kami menggunakan direktif ``ng-controller``.

en: This is the entry point into our plugin. We hook into an existing module via the run block which is executed after the module has been initialized. All we need to do is inject it as a dependency and then use the methods provided in the extensible service to override or modify steps. In this example, we are going to prepend our custom step so that it will show up as the first step in the wizard.
id: Ini adalah titik masuk ke plugin kami. Kami menghubungkan ke modul yang ada melalui blok run yang dijalankan setelah modul diinisialisasi. Yang perlu kita lakukan adalah menyuntikkannya sebagai dependensi dan kemudian menggunakan metode yang disediakan dalam layanan extensible untuk mengganti atau memodifikasi langkah-langkah. Dalam contoh ini, kita akan menambahkan langkah kebiasaan kita sehingga akan ditampilkan sebagai langkah pertama dalam wizard.

en: This is the reverse of what "contribute" does to make the action outputs sane for the workflow. Changes to the context are not saved globally here. They are localized to the action.
id: Ini adalah kebalikan dari apa yang "contribute" lakukan untuk membuat output tindakan masuk akal untuk alur kerja. Perubahan pada konteksnya tidak disimpan secara global di sini. Mereka terlokalisasi pada aksi.

en: This is the value from the filter action's list of filter choices.
id: Ini adalah nilai dari daftar pilihan filter dari tindakan filter

en: This is used for the POST action attribute on the form element wrapping the table. In many cases it is also useful for redirecting after a successful action on the table.
id: Ini digunakan untuk atribut tindakan POST pada elemen formulir yang membungkus tabel. Dalam banyak kasus ini juga berguna untuk redirecting setelah tindakan yang berhasil dari  table.

en: This is used for the POST action attribute on the form element wrapping the table. We use this method to persist the pagination marker.
id: Ini digunakan untuk atribut tindakan POST pada elemen formulir yang membungkus tabel. Kami menggunakan metode ini untuk mempertahankan penanda (marker) pagination.

en: This is used for the POST action attribute on the form element wrapping the workflow.
id: Ini digunakan untuk atribut tindakan POST pada elemen formulir yang membungkus (wrapping) alur kerja.

en: This is useful when you wish for API errors to appear as errors on the form rather than using the messages framework.
id: Ini berguna ketika Anda ingin kesalahan API muncul sebagai kesalahan pada formulir daripada menggunakan kerangka pesan.

en: 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.
id: 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.

en: This log can includes information below:
id: Log ini dapat mencakup informasi di bawah ini:

en: This method can be used to customize where a user is sent when they log in, etc. By default it returns the value of :meth:`get_absolute_url`.
id: Metode ini dapat digunakan untuk menyesuaikan tempat pengguna dikirim ketika mereka masuk, dll. Secara default, ini mengembalikan nilai :meth: `get_absolute_url`.

en: This method is required.
id: Metode ini diperlukan.

en: This method must be overridden by subclasses and return the filtered data.
id: Metode ini harus ditimpa oleh subclass dan mengembalikan data yang difilter.

en: This method provides a way to get region that works for both Keystone V2 and V3.
id: Metode ini menyediakan cara untuk mendapatkan wilayah yang berfungsi untuk Keystone V2 dan V3.

en: This method should be overridden in subclasses to provide additional context data to the template.
id: Metode ini harus diganti dalam subkelas untuk memberikan data konteks tambahan ke templat.

en: This method should be overridden to return the result of any policy checks required for the user to access this dashboard when more complex checks are required.
id: Metode ini harus ditimpa untuk mengembalikan hasil pemeriksaan kebijakan yang diperlukan bagi pengguna untuk mengakses dasbor ini ketika diperlukan pemeriksaan yang lebih rumit.

en: This method takes into account both already-available data and errors within the steps.
id: Metode ini memperhitungkan data yang sudah tersedia dan kesalahan dalam langkah-langkahnya.

en: This method will set the cookie to expire in 365 days.
id: Metode ini akan mengatur cookie agar kedaluwarsa dalam 365 hari.

en: This mixin class is to be used for together with ModalFormView and WorkflowView classes to augment them with modal_backdrop context data.
id: Kelas mixin ini akan digunakan bersama dengan kelas ModalFormView dan WorkflowView untuk menambahkannya dengan data konteks modal_backdrop.

en: This optional static method can be used to specify conditions that need to be satisfied to load this panel. Unlike ``permissions`` and ``allowed`` this method is intended to handle settings based conditions rather than user based permission and policy checks. The return value is boolean. If the method returns ``True``, then the panel will be registered and available to user (if ``permissions`` and ``allowed`` runtime checks are also satisfied). If the method returns ``False``, then the panel will not be registered and will not be available via normal navigation or direct URL access.
id: Metode statis opsional ini dapat digunakan untuk menentukan kondisi yang perlu dipenuhi untuk memuat panel ini. Tidak seperti  ``permissions`` dan ``allowed`` metode ini dimaksudkan untuk menangani kondisi berbasis pengaturan daripada permission dan pemeriksaan kebijakan berbasis pengguna. Nilai kembaliannya adalah boolean. Jika metode mengembalikan ``True``, maka panel akan didaftarkan dan tersedia untuk pengguna (jika pemeriksaan runtime ``permissions`` dan ``allowed`` juga dipenuhi). Jika metode mengembalikan ``False``, maka panel tidak akan terdaftar dan tidak akan tersedia melalui navigasi normal atau akses URL langsung.

en: This page collects basic policies on horizon development.
id: Halaman ini mengumpulkan kebijakan dasar tentang pengembangan horizon.

en: This page tries to explain the plan to define default values of horizon/openstack_dashboard settings in code. This includes a blueprint `ini-based-configuration <https://blueprints.launchpad.net/horizon/+spec/ini-based-configuration>`__. This page will be updated once the effort is completed.
id: Halaman ini mencoba menjelaskan rencana untuk menetapkan nilai default pengaturan horizon/openstack_dashboard dalam kode. Ini termasuk blueprint `ini-based-configuration <https://blueprints.launchpad.net/horizon/+spec/ini-based-configuration>`__. Halaman ini akan updated setelah upaya selesai.

en: This permission available to the user is derived from the user's Keystone "roles".
id: Izin ini tersedia untuk pengguna berasal dari "roles" Keystone pengguna.

en: This project is a bit different from other OpenStack projects in that it has two very distinct components underneath it: ``horizon``, and ``openstack_dashboard``.
id: Proyek ini sedikit berbeda dari proyek OpenStack lain karena memiliki dua komponen yang sangat berbeda di bawahnya: ``horizon``, dan ``openstack_dashboard``.

en: This provides the greatest protection against false positives without weighting any particular columns.
id: Ini memberikan perlindungan terbesar terhadap positif palsu (false positives) tanpa memberi bobot pada kolom tertentu.

en: This required monkey-patching the ``contrib.auth`` middleware to make the ``request`` object available to the auth backend class.
id: Ini diperlukan monkey-patching middleware ``contrib.auth`` untuk membuat objek ``request`` tersedia untuk kelas backend auth.

en: This section describes some general things that a developer should know about packaging software. This content is mostly derived from best practices.
id: Bagian ini menjelaskan beberapa hal umum yang harus diketahui pengembang tentang pengemasan perangkat lunak. Konten ini sebagian besar berasal dari praktik terbaik.

en: This section describes topics specific to Horizon plugins.
id: Bagian ini menjelaskan topik khusus untuk plugin Horizon.

en: This section has been tested for Horizon on Ubuntu (18.04-amd64) and RPM-based (RHEL 8.x) distributions. Feel free to add notes and any changes according to your experiences or operating system.
id: Bagian ini telah diuji untuk distribusi Horizon di Ubuntu (18.04-amd64) dan berbasis RPM (RHEL 8.x). Jangan ragu untuk menambahkan catatan dan perubahan apa pun sesuai dengan pengalaman atau sistem operasi Anda.

en: This section is intended as a quick intro to contributing with AngularJS. For more detailed information, check the :ref:`topics-angularjs`.
id: Bagian ini dimaksudkan sebagai pengantar cepat untuk berkontribusi dengan AngularJS. Untuk informasi lebih rinci, periksa :ref:`topics-angularjs`.

en: This section serves as a basic introduction to writing your own panel for horizon, using AngularJS. A panel may be included with the plugin system, or it may be part of the upstream horizon project.
id: Bagian ini berfungsi sebagai pengantar dasar untuk menulis panel Anda sendiri untuk horizon, menggunakan AngularJS. Panel dapat disertakan dengan sistem plugin, atau mungkin merupakan bagian dari proyek hulu horizon.

en: This section will be extended as standard practices are adopted upstream. Currently, it may be useful to look at the Project Images Panel as a complete reference. Since Newton, it is Angular by default (set to True in the ANGULAR_FEATURES dict in ``settings.py``). You may track all the changes made to the Image Panel `here <https://github.com/openstack/horizon/commits/master/openstack_dashboard/static/app/core/images>`__
id: Bagian ini akan diperpanjang saat praktik standar diadopsi di hulu. Saat ini, mungkin berguna untuk melihat Project Images Panel sebagai referensi lengkap. Sejak Newton, ini adalah Angular secara default (disetel ke True dalam perintah ANGULAR_FEATURES di ``settings.py``). Anda dapat melacak semua perubahan yang dilakukan pada Image Panel `here <https://github.com/openstack/horizon/commits/master/openstack_dashboard/static/app/core/images>`__

en: This stores variables related to Keystone2Keystone federation. This function gets skipped if there are no Keystone service providers. An unscoped token to the identity provider keystone gets stored so that it can be used to do federated login into the service providers when switching keystone providers. The settings file can be configured to set the display name of the local (identity provider) keystone by setting KEYSTONE_PROVIDER_IDP_NAME. The KEYSTONE_PROVIDER_IDP_ID settings variable is used for comparison against the service providers. It should not conflict with any of the service provider ids.
id: Ini menyimpan variabel yang terkait dengan federasi Keystone2Keystone. Fungsi ini dilewati jika tidak ada penyedia layanan Keystone. Token yang tidak dipilih untuk keystone penyedia identitas akan disimpan sehingga dapat digunakan untuk melakukan login gabungan ke penyedia layanan ketika berpindah penyedia keystone. File pengaturan dapat dikonfigurasikan untuk mengatur nama tampilan keystone lokal (penyedia Identity) dengan mengatur KEYSTONE_PROVIDER_IDP_NAME. Variabel pengaturan KEYSTONE_PROVIDER_IDP_ID digunakan untuk perbandingan dengan penyedia layanan. Seharusnya tidak bertentangan dengan id penyedia layanan.

en: 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.
id: 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.

en: This template contains both Django and AngularJS code. Angular is denoted by ``{$..$}`` while Django is denoted by ``{{..}}`` and ``{%..%}``. This template gets processed twice, once by Django on the server-side and once more by Angular on the client-side. This means that the expressions in ``{{..}}`` and ``{%..%}`` are substituted with values by the time it reaches your Angular template.
id: Template ini mengandung kode Django dan AngularJS. Angular dilambangkan dengan ``{$..$}``  sementara Django dilambangkan dengan ``{{..}}`` dan ``{%..%}``.  Template ini diproses dua kali, sekali oleh Django di sisi server dan sekali lagi oleh Angular di sisi klien. Ini berarti bahwa ekspresi dalam ``{{..}}`` dan ``{%..%}`` diganti dengan nilai pada saat mencapai templat Angular Anda.

en: This tutorial assumes you have a basic understanding of Python, HTML, JavaScript. Knowledge of AngularJS is optional but recommended if you are attempting to create an Angular plugin.
id: Tutorial ini mengasumsikan Anda memiliki pemahaman dasar tentang Python, HTML, JavaScript. Pengetahuan tentang AngularJS adalah opsional tetapi disarankan jika Anda mencoba membuat plugin Angular.

en: This tutorial assumes you have already completed :ref:`tutorials-dashboard`. If not, please do so now as we will be modifying the files created there.
id: Tutorial ini mengasumsikan Anda telah menyelesaikan :ref: `tutorials-dashboard`. Jika tidak, silakan lakukan sekarang karena kami akan memodifikasi file yang dibuat di sana.

en: 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`_.
id: 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`_.

en: This tutorial covers how to add a more complex action to a table, one that requires an action and form definitions, as well as changes to the view, urls, and table.
id: Tutorial ini mencakup cara menambahkan tindakan yang lebih kompleks ke tabel, yang membutuhkan tindakan dan definisi bentuk, serta perubahan pada tampilan, url, dan tabel.

en: 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.
id: 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.

en: This tutorial shows you how to create a new panel. If you are interested in creating a new dashboard plugin, use the file structure from :ref:`tutorials-dashboard` instead.
id: Tutorial ini menunjukkan kepada Anda cara membuat panel baru. Jika Anda tertarik untuk membuat plugin dasbor baru, gunakan struktur file dari :ref: `tutorials-dashboard`.

en: This view handles selecting specific tabs and deals with AJAX requests gracefully.
id: Tampilan ini menangani memilih tab tertentu dan menangani permintaan AJAX dengan anggun.

en: This will be considered as the final step of the ini-based-configuration effort after horizon and openstack_dashboard settings succeed to be migrated to oslo.config explained below.
id: Ini akan dianggap sebagai langkah terakhir dari upaya konfigurasi berbasis ini setelah pengaturan horizon dan openstack_dashboard berhasil dimigrasi ke oslo.config yang dijelaskan di bawah ini.

en: This works the same as the ``FormsetDataTable`` below, but can be used to add to existing DataTable subclasses.
id: Ini berfungsi sama dengan ``FormsetDataTable`` di bawah, tetapi dapat digunakan untuk menambah subkelas DataTable yang ada.

en: Those urls are automatically constructed based on the registered Horizon apps. If a different URL structure is desired it can be constructed by hand.
id: URL tersebut dibuat secara otomatis berdasarkan aplikasi Horizon yang terdaftar. Jika struktur URL yang berbeda diinginkan dapat dibuat dengan tangan.

en: Three steps are required to use this view: set the ``table_class`` attribute with the desired :class:`~horizon.tables.DataTable` class; define a ``get_data`` method which returns a set of data for the table; and specify a template for the ``template_name`` attribute.
id: Tiga langkah diperlukan untuk menggunakan tampilan ini: atur atribut ``table_class`` dengan kelas yang diinginkan :class: `~ horizon.tables.DataTable`; mendefinisikan metode ``get_data`` yang mengembalikan seperangkat data untuk tabel; dan tentukan templat untuk atribut ``template_name``.

en: Three steps are required to use this view: set the ``table_classes`` attribute with a tuple of the desired :class:`~horizon.tables.DataTable` classes; define a ``get_{{ table_name }}_data`` method for each table class which returns a set of data for that table; and specify a template for the ``template_name`` attribute.
id: Tiga langkah diperlukan untuk menggunakan tampilan ini: atur atribut ``table_classes`` dengan tuple dari kelas yang diinginkan :class: `~ horizon.tables.DataTable`; mendefinisikan metode ``get _ {{table_name}} _ data`` untuk setiap kelas tabel yang mengembalikan satu set data untuk tabel itu; dan tentukan templat untuk atribut ``template_name``.

en: Time: http://eavesdrop.openstack.org/#Horizon_Team_Meeting
id: Waktu: http://eavesdrop.openstack.org/#Horizon_Team_Meeting

en: Timezone-aware checking of the auth token's expiration timestamp.
id: Pemeriksaan timezone-aware terhadap timestamp kedaluwarsa token.

en: Tips and tricks
id: Kiat dan trik

en: 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 this, see :ref:`pluggable-settings-label`.
id: Untuk menambahkan dasbor baru ke proyek Anda, Anda perlu menambahkan file konfigurasi ke direktori ``openstack_dashboard/local/enabled``. Untuk informasi lebih lanjut tentang ini, lihat :ref:`pluggable-settings-label`.

en: To check incoming bugs, you can check Launchpad bug page directly, but at the moment the easiest way is to subscribe Launchpad bug mails. The steps to subscribe to the Launchpad bugs are as follows:
id: Untuk memeriksa bug yang masuk, Anda dapat memeriksa halaman bug Launchpad secara langsung, tetapi saat ini cara termudah adalah dengan berlangganan email bug Launchpad. Langkah-langkah untuk berlangganan bug Launchpad adalah sebagai berikut:

en: To check the django version installed in your tox env, run:
id: Untuk memeriksa versi Django yang terinstal di tox env Anda, jalankan:

en: To connect a :class:`~horizon.Panel` with a :class:`~horizon.Dashboard` class you register it in a ``panel.py`` file
id: Untuk menghubungkan kelas :class:`~horizon.Panel` dengan kelas :class:`~horizon.Dashboard` dimana Anda mendaftarkannya dalam file ``panel.py``

en: To create a new xstatic package:
id: Untuk membuat paket xstatic baru:

en: To decipher where tests are failing it may be useful to use Jasmine in the browser to run individual tests to see where the tests are specifically breaking. To do this, navigate to your local horizon in the browser and add '/jasmine' to the end of the url. e.g: 'http://localhost:8000/jasmine'. Once you have the jasmine report you may click on the title of an individual test to re-run just that test. From here, you can also use chrome dev tools or similar to set breakpoints in the code by accessing the 'Sources' tab and clicking on lines of code where you wish to break the code. This will then show you the exact places where the code breaks.
id: Untuk menguraikan di mana tes gagal, mungkin berguna untuk menggunakan Jasmine di browser untuk menjalankan tes individu untuk melihat di mana tes secara khusus melanggar. Untuk melakukan ini, navigasikan ke horizon lokal Anda di browser dan tambahkan  '/jasmine'  di akhir url. misal 'http://localhost:8000/jasmine'. Setelah Anda memiliki laporan jasmine, Anda dapat mengklik judul tes individu untuk menjalankan kembali tes itu. Dari sini, Anda juga dapat menggunakan chrome dev tool atau sejenisnya untuk mengatur breakpoint dalam kode dengan mengakses tab 'Sources' dan mengklik pada baris kode di mana Anda ingin memecahkan kode. Ini kemudian akan menunjukkan tempat yang tepat di mana kode rusak.

en: To define the view, we must create a view class, along with the template (``HTML``) file and the form class for that view.
id: Untuk menentukan view, kita harus membuat kelas view, bersama dengan file templat (``HTML``) dan kelas bentuk untuk view itu.

en: To do this, we must edit the ``tables.py`` file under the ``mypanel`` directory and add the following::
id: Untuk melakukan ini, kita harus mengedit file ``tables.py`` di bawah direktori ``mypanel`` dan menambahkan berikut ::

en: To enable the Developer dashboard with the Theme Preview panel:
id: Untuk mengaktifkan dasbor Developer dengan panel Theme Preview:

en: To ensure that JS and CSS changes are picked up without a server restart, you can disable compression with ``COMPRESS_ENABLED = False`` in your local settings file.
id: Untuk memastikan bahwa perubahan JS dan CSS diambil tanpa restart server, Anda dapat menonaktifkan kompresi dengan ``COMPRESS_ENABLED = False`` di file pengaturan lokal Anda.

en: To generate coverage reports, run ``tox -e npm``. The coverage reports can be found at ``cover/horizon/`` (framework tests) and ``cover/openstack_dashboard/`` (dashboard tests). Load ``<browser>/index.html`` in a browser to view the reports.
id: Untuk menghasilkan laporan cakupan, jalankan ``tox -e npm``. Laporan liputan dapat ditemukan di ``cover/horizon/`` (framework tests) dan ``cover/openstack_dashboard/`` (dashboard tests). Load ``<browser>/index.html`` di browser untuk melihat laporan.

en: To have filtering working properly on the client, each row will need CSS class(es) beginning with 'category-', followed by the value of the fixed button.
id: Agar pemfilteran berfungsi dengan baik pada klien, setiap baris akan membutuhkan kelas CSS yang dimulai dengan 'category-', diikuti oleh nilai tombol tetap.

en: To include external stylesheets, you must ensure that ``ADD_SCSS_FILES`` is defined in your enabled file, and add the relevant filepath, as below: ::
id: Untuk memasukkan stylesheet eksternal, Anda harus memastikan bahwa ``ADD_SCSS_FILES`` didefinisikan dalam file yang diaktifkan, dan tambahkan filepath yang relevan, seperti di bawah ini: ::

en: To keep Horizon easily themable, there are several code design guidelines that should be adhered to:
id: Agar Horizon mudah digunakan, ada beberapa pedoman desain kode yang harus dipatuhi:

en: To make a new release of the package, you need to:
id: Untuk membuat rilis baru paket, Anda perlu:

en: 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.
id: 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.

en: 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.
id: 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.

en: To manually add files, add the following arrays and file paths to the enabled file: ::
id: Untuk menambahkan file secara manual, tambahkan array dan path file berikut ke file yang diaktifkan: ::

en: To manually add specs, add the following array and relevant file paths to your enabled file:
id: Untuk menambahkan spesifikasi secara manual, tambahkan array berikut dan jalur file yang relevan ke file yang diaktifkan:

en: To reset the tox env used for testing with different Django version to the regular tox env, run ``tox`` command with ``-r`` to recreate it.
id: Untuk mengatur ulang tox env yang digunakan untuk pengujian dengan versi Django yang berbeda ke tox toks biasa, jalankan perintah `` tox`` dengan `` -r`` untuk membuatnya kembali.

en: To run all tests::
id: Untuk menjalankan semua tes::

en: To run integration tests you should use `integration` tox environment::
id: Untuk menjalankan tes integrasi, Anda harus menggunakan `integration` tox environment::

en: To see the results:
id: Untuk melihat hasilnya:

en: To start the Horizon development server use the command below
id: Untuk memulai server pengembangan Horizon gunakan perintah di bawah ini

en: To support storing profiler data on server-side, MongoDB cluster needs to be installed on your Devstack host (default configuration), see `Installing MongoDB <https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/#install-mongodb-community-edition>`__. Then, change the ``bindIp`` key in ``/etc/mongod.conf`` to ``0.0.0.0`` and invoke ``sudo service mongod restart``.
id: Untuk mendukung penyimpanan data profiler di sisi server, cluster MongoDB perlu diinstal pada host Devstack Anda (konfigurasi default), lihat `Installing MongoDB <https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/#install-mongodb-community-edition>`__. Kemudian, ubah kunci ``bindIp`` di  ``/etc/mongod.conf`` menjadi ``0.0.0.0`` dan aktifkan ``sudo service mongod restart``.

en: To test it locally, you need some extra steps. Here is an example where ``tox_envlist`` is ``py36`` and ``django_version`` is ``>=1.11,<2.0``.
id: Untuk mengujinya secara lokal, Anda memerlukan beberapa langkah tambahan. Berikut ini contohnya ``tox_envlist`` adalah ``py36`` dan ``django_version`` adalah ``>=1.11,<2.0``.

en: 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.
id: 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.

en: 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.
id: 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.

en: To uninstall, use ``pip uninstall``. You will also need to remove the enabled file from the ``local/enabled`` folder.
id: Untuk menghapus instalan, gunakan ``pip uninstall``. Anda juga perlu menghapus file yang diaktifkan dari folder ``local/enabled``.

en: 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.
id: 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.

en: 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.
id: 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.

en: 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.
id: 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``.

en: Token object provides a consistent interface for accessing the keystone token information and service catalog.
id: Objek Token menyediakan antarmuka yang konsisten untuk mengakses informasi token keystone dan katalog layanan.

en: Topic Guides
id: Panduan Topik

en: Translated message catalog files (PO files) are placed under this directory.
id: File katalog pesan yang diterjemahkan (file PO) ditempatkan di bawah direktori ini.

en: Translation (Internationalization and Localization)
id: Terjemahan (Internasionalisasi dan Pelokalan)

en: Translation Support
id: Dukungan Terjemahan

en: Translation in Horizon
id: Terjemahan di Horizon

en: Treat everyone respectfully and professionally.
id: Perlakukan semua orang dengan hormat dan profesional.

en: Tuples in the list will possess the required permissions if the user has a permissions matching one of the elements of that tuple
id: Tuples dalam daftar akan memiliki izin yang diperlukan jika pengguna memiliki izin yang cocok dengan salah satu elemen tupel itu

en: Tutorial: Adding a complex action to a table
id: Tutorial: Menambahkan tindakan kompleks ke tabel

en: Tutorial: Building a Dashboard using Horizon
id: Tutorial: Membangun Dashboard menggunakan Horizon

en: Tutorial: Creating an Horizon Plugin
id: Tutorial: Membuat Plugin Horizon

en: Tutorials
id: Tutorial

en: Tying it together in a view
id: Mengikatnya bersama dalam tampilan (view)

en: Types of Plugins that add content
id: Jenis-jenis Plugin yang menambahkan konten

en: Ultimately that's up to each and every developer that touches the code, but if we get all the other goals out of the way then we are free to focus on the best possible experience.
id: Pada akhirnya itu terserah masing-masing dan setiap pengembang yang menyentuh kode, tetapi jika kita mendapatkan semua tujuan lain maka kita bebas untuk fokus pada pengalaman terbaik.

en: Unit tests
id: Tes unit

en: Unlike NON_FIELD_ERRORS, this doesn't fail form validation.
id: Tidak seperti NON_FIELD_ERRORS, ini tidak gagal validasi form.

en: Unregisters a :class:`~horizon.Dashboard` from Horizon.
id: Batalkan pendaftaran :class:`~horizon.Dashboard` dari Horizon.

en: Unregisters a :class:`~horizon.Panel` from this dashboard.
id: Batalkan pendaftaran  :class:`~horizon.Panel` dari dasbor ini.

en: Unregisters a :class:`~horizon.workflows.Step` from the workflow.
id: Batalkan registrasi a:class: `~ horizon.workflows.Step` dari alur kerja.

en: Unscoped Keystone access info object
id: Objek info akses Keystone terbuka (unscoped Keystone)

en: Unscoped Keystone token.
id: Token Keystone tidak tertutup.

en: Upstream
id: Upstream (ke hulu)

en: Usable: Providing an *awesome* interface that people *want* to use.
id: Usable: Menyediakan antarmuka *awesome* yang orang *want* digunakan..

en: Use "strict", enclosing each JavaScript file inside a self-executing function. The self-executing function keeps the strict scoped to the file, so its variables and methods are not exposed to other JavaScript files in the product.
id: Gunakan "strict", sertakan setiap file JavaScript di dalam fungsi yang dapat dieksekusi sendiri. Fungsi self-executing menjaga scoped ketat untuk file, sehingga variabel dan metode tidak terpapar ke file JavaScript lain dalam produk.

en: Use 2 spaces for code indentation.
id: Gunakan 2 spasi untuk indentasi kode.

en: 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.
id: 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.

en: 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.
id: 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.

en: Use ESLint in your development environment.
id: Gunakan ESLint di lingkungan pengembangan Anda.

en: 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.
id: 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.

en: Use ``===`` as opposed to ``==`` for equality checks. The ``==`` will do a type cast before comparing, which can lead to unwanted results.
id: Gunakan ``===`` sebagai lawan dari ``==`` untuk pemeriksaan kesetaraan. ``==`` akan melakukan casting jenis sebelum membandingkan, yang dapat menyebabkan hasil yang tidak diinginkan.

en: Use ``forEach`` | ``each`` when looping whenever possible. AngularJS and jQuery both provide for each loops that provide both iteration and scope.
id: Gunakan ``forEach`` | ``each`` masing-masing`` saat perulangan jika memungkinkan. AngularJS dan jQuery keduanya menyediakan untuk setiap loop yang menyediakan iterasi dan ruang lingkup.

en: Use ``{ }`` for ``if``, ``for``, ``while`` statements, and don't combine them on one line. ::
id: Gunakan pernyataan ``{ }`` untuk ``if``, ``for``, ``while`` dan jangan gabungkan dalam satu baris. ::

en: 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.
id: 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.

en: Use proper grammar, spelling, capitalization and punctuation at all times.
id: Gunakan tata bahasa, ejaan, huruf besar, dan tanda baca yang benar setiap saat.

en: Use the ``is_feature_available`` function for your service to show or hide the function.::
id: Gunakan fungsi ``is_feature_available`` untuk layanan Anda untuk menampilkan atau menyembunyikan fungsi. ::

en: Use this to validate the formset and to get the submitted data back.
id: Gunakan ini untuk memvalidasi formset dan untuk mendapatkan kembali data yang dikirimkan.

en: Used internally to track exceptions that are already handled.
id: Digunakan secara internal untuk melacak pengecualian yang telah ditangani.

en: Used like ``verbose_name`` in cases where ``handles_multiple`` is ``True``. Defaults to ``verbose_name`` with the letter "s" appended.
id: Digunakan seperti ``verbose_name`` dalam kasus di mana ``handle_multiple`` adalah ``True``. Default untuk ``verbose_name`` dengan huruf "s" ditambahkan.

en: User tries to access a resource without sufficient permissions.
id: Pengguna mencoba mengakses sumber daya tanpa izin yang memadai.

en: Uses :meth:`~horizon.tables.DataTable.get_object_id` internally.
id: Penggunaan :meth:`~horizon.tables.DataTable.get_object_id` secara internal.

en: Using filters in DataTable column
id: Menggunakan filter di kolom DataTable

en: Using strict will throw exceptions for common coding errors, like accessing global vars, that normally are not flagged.
id: Menggunakan strict akan memberikan pengecualian untuk kesalahan pengkodean umum, seperti mengakses var global, yang biasanya tidak ditandai.

en: Using the $on method, we can listen to events generated within the scope. In this manner, actions we completed in the wizard are visually reflected in the table even though they are two completely different widgets. Similarly, you can share data between steps in your workflow as long as they share the same parent scope.
id: Menggunakan metode $on, kita dapat mendengarkan event yang dihasilkan dalam ruang lingkup. Dengan cara ini, tindakan (action) yang kami selesaikan dalam wizard secara visual tercermin dalam tabel meskipun keduanya adalah dua widget yang sama sekali berbeda. Demikian pula, Anda bisa berbagi data antara langkah-langkah dalam alur kerja Anda selama mereka berbagi lingkup induk yang sama.

en: Validate the given value and return its "cleaned" value as an appropriate Python object. Raise ValidationError for any errors.
id: Validasikan nilai yang diberikan dan kembalikan nilainya "cleaned" sebagai objek Python yang sesuai. Naikkan ValidationError untuk errors apa pun.

en: Validates an expected status code.
id: Memvalidasi kode status yang diharapkan.

en: Validates the workflow steps from ``start`` to ``end``, inclusive.
id: Memvalidasi langkah-langkah alur kerja dari ``start `` hingga ``end``, inklusif.

en: Values are compared in a case-insensitive manner.
id: Nilai dibandingkan dengan cara case-insensitive.

en: Verifies that all required data is present in the context.
id: Memverifikasi bahwa semua data yang diperlukan ada dalam konteks.

en: Verifies things from an "end user" perspective, which helps to ensure a high-quality experience.
id: Memverifikasi hal-hal dari perspektif  "end user", yang membantu memastikan pengalaman berkualitas tinggi.

en: Verify if a bug can be reproduced.
id: Verifikasi apakah bug dapat direproduksi.

en: Verifying/validating the overall data integrity and subsequently triggering the final method to complete the workflow.
id: Memverifikasi/memvalidasi integritas data keseluruhan dan kemudian memicu metode terakhir untuk menyelesaikan alur kerja.

en: Version(s) of related components (at least horizon version is required)
id: Versi komponen terkait (setidaknya versi horizon diperlukan)

en: Views or utilities needed by multiple dashboards are placed in ``openstack_dashboard/static/app``. For example: ::
id: Tampilan atau utilitas yang diperlukan oleh banyak dasbor ditempatkan di ``openstack_dashboard/static/app``. Sebagai contoh: ::

en: We currently use the `Angular Style Guide`_ by John Papa as reference material. When reviewing AngularJS code, it is helpful to link directly to the style guide to reinforce a point, e.g. https://github.com/johnpapa/angular-styleguide#style-y024
id: Kami saat ini menggunakan `Angular Style Guide`_ oleh John Papa sebagai bahan referensi. Saat mengulas kode AngularJS, sebaiknya tautan langsung ke panduan gaya untuk memperkuat suatu poin, misal https://github.com/johnpapa/angular-styleguide#style-y024

en: We define a panel where our plugin's content will reside in. This is currently a necessity even for Angular plugins. The slug is the panel's unique identifier and is often use as part of the URL. Make sure that it matches what you have in your enabled file.::
id: Kami menetapkan panel tempat konten plugin kami berada. Saat ini merupakan keharusan bahkan untuk plugin Angular. Slug adalah pengidentifikasi unik panel dan sering digunakan sebagai bagian dari URL. Pastikan itu cocok dengan apa yang Anda miliki di file yang diaktifkan. ::

en: We do not bundle third-party code in Horizon's source tree. Instead, we package the required files as xstatic Python packages and add them as dependencies to Horizon.
id: Kami tidak membundel kode pihak ketiga di pohon sumber Horizon. Sebagai gantinya, kami mengemas file yang diperlukan sebagai paket Python xstatic dan menambahkannya sebagai dependensi ke Horizon.

en: We don't have a specific deadline during a development cycle. You can propose a feature any time. Only thing you keep in your mind is that we do not merge features during the feature freeze period after the milestone 3 in each cycle.
id: Kami tidak memiliki tenggat waktu khusus selama siklus pengembangan. Anda dapat mengusulkan fitur kapan saja. Satu-satunya hal yang perlu diingat adalah kami tidak menggabungkan fitur selama periode pembekuan fitur setelah pencapaian 3 di setiap siklus.

en: We follow PEP8_ for all our Python code, and use ``pep8.py`` (available via the shortcut ``tox -e pep8``) to validate that our code meets proper Python style guidelines.
id: Kami mengikuti PEP8_ untuk semua kode Python kami, dan menggunakan ``pep8.py`` (tersedia melalui shortcut ``tox -e pep8``) untuk memvalidasi bahwa kode kami memenuhi pedoman gaya Python yang tepat.

en: We highly encourage that you write and maintain your code using our plugin architecture. A plugin by definition means the ability to be connected. In practical terms, plugins are a way to extend and add to the functionality that already exists. You can control its content and progress at a rate independent of Horizon. If you write and package your code as a plugin, it will continue to work in future releases.
id: Kami sangat menyarankan Anda menulis dan memelihara kode Anda menggunakan arsitektur plugin kami. Plugin menurut definisi berarti kemampuan untuk terhubung. Secara praktis, plugin adalah cara untuk memperluas dan menambah fungsionalitas yang sudah ada. Anda dapat mengontrol kontennya dan berkembang pada tingkat yang tidak tergantung pada Horizon. Jika Anda menulis dan mengemas kode Anda sebagai plugin, itu akan terus berfungsi di rilis mendatang.

en: We highly recommend that you complete the :ref:`tutorials-plugin` if you have not done so already. If you do not know how to package and install a plugin, the rest of this tutorial will not make sense! In this tutorial, we will examine an existing workflow and how we can extend it as a plugin.
id: Kami sangat menyarankan Anda menyelesaikan :ref: `tutorials-plugin` jika Anda belum melakukannya. Jika Anda tidak tahu cara mengemas dan memasang plugin, sisa tutorial ini tidak masuk akal! Dalam tutorial ini, kita akan memeriksa alur kerja yang ada dan bagaimana kita dapat memperluasnya sebagai plugin.

en: We highly recommend using a single SCSS file for your plugin. SCSS supports nesting with @import, so if you have multiple files (i.e. per panel styling) it is best to import them all into one, and include that single file. You can read more in the `SASS documentation`_.
id: Kami sangat merekomendasikan menggunakan file SCSS tunggal untuk plugin Anda. SCSS mendukung nesting dengan @import, jadi jika Anda memiliki banyak file (misal  per panel styling) yang terbaik adalah mengimpor semuanya menjadi satu, dan memasukkan satu file itu. Anda dapat membaca lebih lanjut di `SCSS documentation`_.

en: We must add the url for our new view.  Open the ``urls.py`` file under the ``mypanel`` directory and add the following as a new url pattern::
id: Kami harus menambahkan url untuk view baru kami. Buka file ``urls.py`` di bawah direktori ``mypanel`` dan tambahkan berikut ini sebagai pola url baru ::

en: We must also add our new action as a row action for the table::
id: Kita juga harus menambahkan tindakan baru kita sebagai tindakan baris untuk tabel ::

en: We must once again run horizon to verify our dashboard is working::
id: Kami sekali lagi harus menjalankan horizon untuk memverifikasi dasbor Anda berfungsi ::

en: We need the request object to get the user, so we'll slightly modify the existing django.contrib.auth.get_user method. To do so we update the auth middleware to point to our overridden method.
id: Kami membutuhkan objek permintaan untuk mendapatkan pengguna, jadi kami akan sedikit memodifikasi metode django.contrib.auth.get_user yang ada. Untuk melakukannya, kami memperbarui auth middleware agar mengarah ke metode kami yang diganti.

en: We usually need to quote the django version in the pip command-line in most shells to escape interpretations by the shell.
id: Kita biasanya perlu mengutip versi Django di baris perintah pip di sebagian besar shell untuk menghindari interpretasi oleh shell.

en: We will add a link action to the table that will be accessible from each row in the table. The action will use the view defined above to create a snapshot of the instance represented by the row in the table.
id: Kami akan menambahkan action tautan ke tabel yang akan dapat diakses dari setiap baris di tabel. Action akan menggunakan view yang ditentukan di atas untuk membuat snapshot dari instance yang diwakili oleh baris dalam tabel.

en: We will convert the object id and ``lookup`` to unicode before comparison.
id: Kami akan mengonversi id objek dan ``lookup`` ke unicode sebelum perbandingan.

en: We will cover the basics of working with panels for both Python and Angular. If you are interested in creating a new panel, follow the steps below.
id: Kami akan membahas dasar-dasar bekerja dengan panel untuk Python dan Angular. Jika Anda tertarik untuk membuat panel baru, ikuti langkah-langkah di bawah ini.

en: We'll create a panel and call it ``My Panel``.
id: Kami akan membuat panel dan menyebutnya ``My Panel``.

en: We'll start with the table, combine that with the tabs, and then build our view from the pieces.
id: Kami akan mulai dengan tabel, menggabungkan itu dengan tab, dan kemudian membangun tampilan (view) kami dari potongan.

en: What does this mean for visual design?
id: Apa artinya ini untuk desain visual?

en: What is the point of translating my code?
id: Apa gunanya menerjemahkan kode saya?

en: What is the relationship between ``Dashboards``, ``Panels``, and navigation?
id: Apa hubungan antara  ``Dashboards``, ``Panels``, dan navigasi?

en: What makes a good unit test?
id: Apa yang membuat unit test bagus?

en: What you chose to include in ``block main`` is entirely up to you. Since you are creating an Angular plugin, we recommend that you keep everything in this section Angular. Do not mix Python code in here! If you find yourself passing in Python data, do it via our REST services instead.
id: Apa yang Anda pilih untuk dimasukkan dalam ``block main`` sepenuhnya terserah Anda. Karena Anda membuat plugin Angular, kami sarankan Anda menyimpan semuanya di bagian Angular. Jangan campur kode Python di sini! Jika Anda menemukan diri Anda mengirimkan data Python, lakukan itu melalui layanan REST kami.

en: What you've learned here is the fundamentals of how to add a table action that requires a form for data entry. This can easily be expanded from creating a snapshot to other API calls that require more complex forms to gather the necessary information.
id: Apa yang telah Anda pelajari di sini adalah dasar-dasar cara menambahkan tindakan tabel yang membutuhkan form untuk entri data. Ini dapat dengan mudah diperluas dari membuat snapshot ke panggilan API lain yang membutuhkan form yang lebih kompleks untuk mengumpulkan informasi yang diperlukan.

en: What you've learned here is the fundamentals of how to write interfaces for your own project based on the components horizon provides.
id: Apa yang telah Anda pelajari di sini adalah dasar-dasar cara menulis antarmuka untuk proyek Anda sendiri berdasarkan komponen horizon yang disediakan.

en: When a value is a dict, this means a corresponding Django dict setting is broken down into several oslo.config options. In the above example, ``OPENSTACK_NEUTRON_NETWORK['enable_router']`` is mapped to ``[neutron] enable_router``.
id: Ketika sebuah nilai adalah dict, ini berarti pengaturan dict Django yang sesuai dipecah menjadi beberapa opsi oslo.config. Pada contoh di atas, ``OPENSTACK_NEUTRON_NETWORK['enable_router']`` dipetakan ke ``[neutron] enable_router``.

en: When actions get run
id: Ketika tindakan dijalankan

en: When adding code to horizon, consider whether it is dashboard-specific or should be broken out as a reusable utility or widget.
id: Saat menambahkan kode ke horizon, pertimbangkan apakah itu khusus dasbor atau harus dibagi sebagai utilitas atau widget yang dapat digunakan kembali.

en: When all settings have been migrated, it is safe to regenerate a clean diff in order to prevent Conflicts for future migrations
id: Ketika semua pengaturan telah dimigrasi, aman untuk membuat kembali perbedaan bersih untuk mencegah Konflik untuk migrasi di masa mendatang.

en: When called for a row action, the current row data object will be passed as the first parameter.
id: Ketika dipanggil untuk aksi baris, objek data baris saat ini akan dilewatkan sebagai parameter pertama.

en: When defining the expected input to a stubbed call, make sure the arguments are *identical*, this includes ``str`` vs. ``int`` differences.
id: Ketika mendefinisikan input yang diharapkan untuk panggilan yang terhenti, pastikan argumennya *identical*, ini termasuk perbedaan ``str`` vs ``int``.

en: 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 override the :meth:`horizon.tables.Action.get_policy_target` method. This allows a programmatic way to specify the target based on the current datum. The value returned should be the target dictionary.
id: Ketika menurunkan kelas :class: `horizon.tables.Action` untuk digunakan dalam sebuah tabel, jika pemeriksaan kebijakan diinginkan untuk target tertentu, pelaksana harus mengganti metode :meth:` horizon.tables.Action.get_policy_target`. Ini memungkinkan cara terprogram untuk menentukan target berdasarkan pada datum saat ini. Nilai yang dikembalikan harus menjadi kamus target.

en: When iterated, it will yield each of the ``Panel`` instances it contains.
id: Ketika iterasi, ia akan menghasilkan masing masing instance ``Panel`` yang dikandungnya.

en: When iterated, the ``Row`` instance will yield each of its cells.
id: Ketika pengulangan (iterated), instance ``Row`` akan menghasilkan masing-masing selnya.

en: 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>`_.
id: 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>`_.

en: When returning, the loaded data is set on the tables.
id: Saat kembali, data yang dimuat diatur pada tabel.

en: When reviewing / writing, please refer to the sections of this guide. If an issue is encountered, note it with a comment and provide a link back to the specific issue. For example, code should use named functions. A review noting this should provide the following link in the comments:
id: Saat mengulas / menulis, silakan merujuk ke bagian panduan ini. Jika ada masalah, catat dengan komentar dan berikan tautan kembali ke masalah tertentu. Misalnya, kode harus menggunakan fungsi bernama. Peninjauan yang mencatat ini harus menyediakan tautan berikut dalam komentar:

en: When submitting your changes to Horizon to address issues around the new xstatic release, use a Depends-On: referencing the upper-constraints.txt review. This will cause the OpenStack testing infrastructure to pull in your updated xstatic package as well.
id: Saat mengirimkan perubahan Anda ke Horizon untuk mengatasi masalah seputar rilis xstatic baru, gunakan Depends-On: merujuk ulasan upper-constraints.txt. Ini akan menyebabkan infrastruktur pengujian OpenStack menarik paket xstatic Anda yang diperbarui juga.

en: When the list is empty and the ``link`` attribute is not None, all the rows under this column will be links.
id: Ketika daftar kosong dan atribut ``link`` bukan None, semua baris di bawah kolom ini akan menjadi tautan.

en: 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.
id: 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.

en: Where possible, use Sphinx's cross-reference syntax (e.g. ``:class:`~horizon.foo.Bar``) when referring to other Horizon components. The better-linked our docs are, the easier they are to use.
id: Jika memungkinkan, gunakan sintaks cross-reference Sphinx (misal   ``:class:`~horizon.foo.Bar``) ketika merujuk ke komponen Horizon lainnya. Semakin baik tautannya dokumen kami, semakin mudah digunakan.

en: Whether to present the workflow as a wizard, with "prev" and "next" buttons and validation after every step.
id: Apakah akan menyajikan alur kerja sebagai wizard, dengan tombol "prev" dan "next" dan validasi setelah setiap langkah.

en: Whether user is federated Keystone user. (Boolean)
id: Apakah pengguna gabungan pengguna Keystone. (Boolean)

en: While everyone is encouraged to review changes, members of the core reviewer team have the ability to +2/-2 and +A changes to these repositories. This is an extra level of responsibility not to be taken lightly. Correctly merging code requires not only understanding the code itself, but also how the code affects things like documentation, testing, upgrade impacts and interactions with other projects. It also means you pay attention to release milestones and understand if a patch you are merging is marked for the release, especially critical during the feature freeze.
id: Sementara setiap orang didorong untuk meninjau perubahan, anggota tim peninjau inti memiliki kemampuan untuk perubahan +2/-2 dan +A  pada repositori ini. Ini adalah tingkat tanggung jawab ekstra untuk tidak dianggap enteng. Menggabungkan kode dengan benar membutuhkan tidak hanya memahami kode itu sendiri, tetapi juga bagaimana kode mempengaruhi hal-hal seperti dokumentasi, pengujian, peningkatan dampak dan interaksi dengan proyek lain. Ini juga berarti Anda memperhatikan rilis tonggak (release milestones) dan memahami jika patch yang Anda gabungkan ditandai untuk rilis, terutama penting selama pembekuan fitur.

en: Why should I package my code as a plugin?
id: Mengapa saya harus mengemas kode saya sebagai plugin?

en: Why we use XStatic
id: Mengapa kami menggunakan XStatic

en: 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.
id: 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.

en: Will take screenshot of the current page on test fail for easy debug
id: Akan mengambil screenshot dari halaman saat ini pada pengujian gagal untuk debug mudah

en: Will warn you when changes in external components break your code.
id: Akan memperingatkan Anda ketika perubahan komponen eksternal merusak kode Anda.

en: With all our code in place, the only thing left to do is to integrate it into our OpenStack Dashboard site.
id: Dengan semua kode kami di tempat, satu-satunya yang tersisa untuk dilakukan adalah mengintegrasikannya ke situs OpenStack Dashboard site. kami.

en: With the rest of the files and directories in place, we can move on to add our own dashboard.
id: Dengan sisa file dan direktori di tempatnya, kita dapat melanjutkan untuk menambahkan dasbor kita sendiri.

en: Within the application, there is a simple method for registering a :class:`~horizon.Panel` (sub-navigation items). Each panel contains the necessary logic (views, forms, tests, etc.) for that interface. This granular breakdown prevents files (such as ``api.py``) from becoming thousands of lines long and makes code easy to find by correlating it directly to the navigation.
id: Di dalam aplikasi, ada metode sederhana untuk mendaftarkan :class:`~horizon.Panel` (sub-navigation items). Setiap panel berisi logika yang diperlukan (tampilan, formulir, tes, dll.) Untuk antarmuka itu. Rincian granular ini mencegah file (seperti ``api.py``) menjadi ribuan baris dan membuat kode mudah ditemukan dengan menghubungkannya langsung ke navigasi.

en: Workflows Topic Guide
id: Panduan Topik Alur Kerja

en: 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`
id: 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`

en: Write some tests for the Django portion of your plugin and place them here.
id: Tulis beberapa tes untuk bagian Django dari plugin Anda dan letakkan di sini.

en: 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.
id: 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.

en: Write-only in controllers.
id: Write-only dalam pengontrol.

en: Writing tests
id: Tes menulis

en: Writing your code as a plugin also modularizes your code making it easier to translate and test. This also makes it easier for deployers to consume your code allowing selective enablement of features. We are currently using this pattern internally for our dashboards.
id: Menulis kode Anda sebagai plugin juga memodulasi kode Anda sehingga lebih mudah untuk menerjemahkan dan menguji. Ini juga membuatnya lebih mudah bagi para penyebar untuk menggunakan kode Anda yang memungkinkan pemberdayaan fitur secara selektif. Kami saat ini menggunakan pola ini secara internal untuk dasbor kami.

en: Writing your own actions generally starts with subclassing one of those action classes and customizing the designated attributes and methods.
id: Menulis tindakan Anda sendiri biasanya dimulai dengan mensubklasifikasikan salah satu kelas tindakan tersebut dan menyesuaikan atribut dan metode yang ditunjuk.

en: XStatic provides the following features that are not currently available by default with systems like NPM and Grunt:
id: XStatic menyediakan fitur berikut yang saat ini tidak tersedia secara default dengan sistem seperti NPM dan Grunt:

en: You can also pass other arguments. For example, to drop into a live debugger when a test fails you can use::
id: Anda juga bisa memberikan argumen lain. Misalnya, untuk masuk ke debugger langsung saat tes gagal dapat Anda gunakan::

en: You can choose to customize your panel by providing your own scss. Be sure to include it in your enabled file via the ``ADD_SCSS_FILES`` setting.
id: Anda dapat memilih untuk menyesuaikan panel Anda dengan memberikan scss Anda sendiri. Pastikan Anda memasukkannya ke dalam file yang diaktifkan melalui pengaturan ``ADD_SCSS_FILES``.

en: You can integrate the :class:`.DataTable` with a Django Formset using one of following classes:
id: Anda dapat mengintegrasikan :class: `.DataTable` dengan Django Formset menggunakan salah satu kelas berikut:

en: You can know which tox env and django version are used by checking ``tox_envlist`` and ``django_version`` of the corresponding job definition in ``.zuul.yaml``.
id: Anda dapat mengetahui versi tox env dan django mana yang digunakan dengan memeriksa ``tox_envlist`` dan ``django_version`` dari definisi pekerjaan terkait di ``.zuul.yaml``.

en: You can read more about the functionality in the :ref:`auto_discover_static_files` section of the settings documentation.
id: Anda dapat membaca lebih lanjut tentang fungsi di :ref: `auto_discover_static_files` dari dokumentasi pengaturan.

en: You can run a subset of the tests by passing the test path as an argument to tox::
id: Anda dapat menjalankan subset tes dengan melewati jalur tes sebagai argumen untuk tox::

en: You can save changes you made to ``openstack_dashboard/local/local_settings.py`` with the following command:
id: Anda dapat menyimpan perubahan yang Anda buat ke  ``openstack_dashboard/local/local_settings.py`` dengan perintah berikut:

en: You can search in a distribution for a piece of software foo using a command like ``dnf search foo``, or ``zypper se -s foo``. ``dnf info foo`` returns more detailed information about the package.
id: Anda dapat mencari dalam distribusi perangkat lunak foo menggunakan perintah seperti ``dnf search foo``, atau ``zypper se -s foo``. `` dnf info foo`` mengembalikan informasi lebih rinci tentang paket tersebut.

en: 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.
id: 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.

en: 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?
id: 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?

en: 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.
id: 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.

en: You will now receive bug mails from Launchpad when a new bug is filed. Note that you can classify emails based on the subscription name above.
id: Anda sekarang akan menerima email bug dari Launchpad ketika bug baru diajukan. Perhatikan bahwa Anda dapat mengklasifikasikan email berdasarkan nama langganan di atas.

en: Your controller is the glue between the model and the view. In this example, we are going to give it some fake data to render. To load more complex data, consider using the $http service.
id: Pengontrol Anda adalah perekat antara model dan view. Dalam contoh ini, kita akan memberikan beberapa data palsu untuk ditampilkan (render). Untuk memuat data yang lebih kompleks, pertimbangkan untuk menggunakan layanan $http.

en: `Create a new repository under OpenStack`_. Use "xstatic-core" and "xstatic-ptl" groups for the ACLs. Make sure to include the ``-pypi-wheel-upload`` job in the project config.
id: `Create a new repository under OpenStack`_. Gunakan grup "xstatic-core" dan "xstatic-ptl" untuk ACL. Pastikan untuk menyertakan pekerjaan ``-pypi-wheel-upload`` dalam konfigurasi proyek.

en: `ESLint`_ is a pluggable code linting utility. This will catch small errors and inconsistencies in your JS, which may lead to bigger issues later on. See :ref:`js_code_style` for more detail.
id: `ESLint`_ adalah utilitas linting kode pluggable. Ini akan menangkap kesalahan kecil dan inkonsistensi dalam JS Anda, yang dapat menyebabkan masalah yang lebih besar di kemudian hari. Lihat :ref: `js_code_style` untuk detail lebih lanjut.

en: `JSON schemas`_ are used to define model layout and then `angular-schema-form`_ is used to create forms from that schema. Horizon adds some functionality on top of that to make things even easier through ``ModalFormService`` which will open a modal with the form inside.
id: `JSON schemas`_ digunakan untuk mendefinisikan tata letak model dan kemudian `angular-schema-form`_ digunakan untuk membuat formulir dari skema itu. Horizon menambahkan beberapa fungsionalitas di atasnya untuk menjadikan segalanya lebih mudah melalui ``ModalFormService`` yang akan membuka modal dengan formulir di dalamnya.

en: `Jasmine`_ is our testing framework, so this defines the syntax and file structure we use to test our JavaScript.
id: `Jasmine`_ adalah kerangka pengujian kami, jadi ini mendefinisikan sintaks dan struktur file yang kami gunakan untuk menguji JavaScript kami.

en: `Karma`_ is our test runner. Amongst other things, this lets us run the tests against multiple browsers and generate test coverage reports. Alternatively, tests can be run inside the browser with the Jasmine spec runner.
id: `Karma`_ adalah test runner kami. Di antara hal-hal lain, ini memungkinkan kita menjalankan pengujian terhadap banyak browser dan menghasilkan laporan cakupan pengujian. Atau, tes dapat dijalankan di dalam browser dengan Jasmine spec runner.

en: `PhantomJS`_ provides a headless WebKit (the browser engine). This gives us native support for many web features without relying on specific browsers being installed.
id: `PhantomJS`_ memberikan headless WebKit (mesin browser). Ini memberi kami dukungan asli untuk banyak fitur web tanpa bergantung pada browser tertentu yang sedang diinstal.

en: `Set up PyPi`_ to allow OpenStack (the "openstackci" user) to publish your package.
id: `Set up PyPi`_ untuk mengizinkan OpenStack (pengguna "openstackci") untuk mempublikasikan paket Anda.

en: ``-r`` in the first command recreates the tox environment. Omit it if you know what happens.
id: ``-r``di perintah pertama menciptakan lingkungan toks. Hilangkan jika Anda tahu apa yang terjadi.

en: ``.spec.js`` files can be handled manually or automatically. To use the automatic file discovery add::
id: File ``.spec.js`` dapat ditangani secara manual atau otomatis. Untuk menggunakan penemuan file otomatis, tambahkan::

en: ``Action`` classes may define the following attributes in a ``Meta`` class within them:
id: Kelas ``Action`` dapat mendefinisikan atribut berikut dalam kelas ``Meta`` di dalamnya:

en: ``Actions`` are aware of the permissions required to complete them.
id: ``Actions `` mengetahui izin yang diperlukan untuk menyelesaikannya.

en: ``Actions`` have a meta-level concept of "help text" which is meant to be displayed in such a way as to give context to the action regardless of where the action is presented in a site or workflow.
id: ``Actions`` memiliki konsep meta-level "help text" yang dimaksudkan untuk ditampilkan sedemikian rupa untuk memberikan konteks pada tindakan terlepas dari di mana tindakan disajikan di situs atau alur kerja.

en: ``Actions`` understand how to handle their inputs and produce outputs, much like :class:`~horizon.forms.SelfHandlingForm` does now.
id: ``Actions `` memahami bagaimana menangani input mereka dan menghasilkan output, seperti :class: `~ horizon.forms.SelfHandlingForm` melakukan sekarang.

en: ``LOGGING`` setting is long enough. Python now recommend to configure logging using python dict directly, but from operator/packager perspective the legacy style of using the ini format sounds reasonable. The ini format is also used in other OpenStack projects too. In this effort, I propose to use the logging configuration via the ini format file and specify the logging conf file in a oslo.config option
id: Pengaturan `LOGGING`` cukup panjang. Python sekarang merekomendasikan untuk mengkonfigurasi logging menggunakan python dict secara langsung, tetapi dari perspektif operator/packager gaya lama (legacy style) menggunakan format ini terdengar masuk akal. Format ini juga digunakan dalam proyek OpenStack lainnya juga. Dalam upaya ini, saya mengusulkan untuk menggunakan konfigurasi logging melalui file format ini dan menentukan file conf logging di opsi oslo.config

en: ``NOT_FOUND``: Errors resulting from objects which could not be located via the API. These generally result in a user-facing error message, but are otherwise returned to the normal code flow. Optionally a redirect value may be passed to the error handler so users are returned to a different view than the one requested in addition to the error message.
id: ``NOT_FOUND``: Kesalahan yang dihasilkan dari objek yang tidak dapat ditemukan melalui API. Ini umumnya menghasilkan pesan kesalahan yang dihadapi pengguna, tetapi sebaliknya dikembalikan ke aliran kode normal (normal code flow). Opsional nilai redirect dapat diteruskan ke handler error sehingga pengguna kembali ke tampilan yang berbeda dari yang diminta selain pesan kesalahan.

en: ``N`` release of horizon supports ``N`` and ``N-1`` releases of back-end OpenStack services (like nova, cinder, neutron and so on). This allows operators to upgrade horizon separately from other OpenStack services.
id: ``N`` rilis horizon mendukung ``N`` dan ``N-1`` rilis layanan OpenStack back-end (seperti nova, cinder, neutron, dan sebagainya). Ini memungkinkan operator untuk upgrade horizon secara terpisah dari layanan OpenStack lainnya.

en: ``RECOVERABLE``: Generic API errors which generate a user-facing message but drop directly back to the regular code flow.
id: ``RECOVERABLE``: Kesalahan umum Generic yang menghasilkan pesan yang dihadapi pengguna tetapi langsung kembali ke aliran kode reguler.

en: ``SECURITY_GROUP_RULES`` will be defined by YAML file. The YAML file can be validated by JSON schema in future (out of the scope of this effort)
id: ``SECURITY_GROUP_RULES`` akan ditentukan oleh file YAML. File YAML dapat divalidasi oleh skema JSON di masa depan (di luar lingkup upaya ini)

en: ``Select`` widget to handle dynamic changes to the available choices.
id: ``Select `` widget untuk menangani perubahan dinamis pada pilihan yang tersedia.

en: ``ServiceCatalog`` is fetched from Keystone.
id: ``ServiceCatalog`` diambil dari Keystone.

en: ``True`` if not authenticated,``False`` otherwise.
id: ``True``  jika tidak diautentikasi, ``False`` sebaliknya.

en: ``True`` if the token is expired, ``False`` if not, and ``None`` if there is no token set.
id: ``True`` jika token telah kedaluwarsa, ``False`` jika tidak, dan ``None`` jika tidak ada token yang ditetapkan.

en: ``True`` or ``False``.
id: ``True`` atau ``False``.

en: ``UNAUTHORIZED``: Errors resulting from authentication or authorization problems. These result in being logged out and sent to the login screen.
id: ``UNAUTHORIZED``: Kesalahan yang diakibatkan oleh masalah otentikasi atau otorisasi. Hasil ini di-logout dan dikirim ke layar login.

en: ``[default]`` section is not used as much as possible. It will be used only for limited number of well-known options. Perhaps some common Django settings like ``DEBUG``, ``LOGGING`` will match this category.
id: Bagian ``[default] `` tidak digunakan sebanyak mungkin. Ini hanya akan digunakan untuk sejumlah opsi terkenal yang terbatas. Mungkin beberapa pengaturan Django umum seperti ``DEBUG``, ``LOGGING`` akan cocok dengan kategori ini.

en: ``_styles.scss`` imports the SCSS defined for each component.
id: ``_styles.scss`` mengimpor SCSS yang ditentukan untuk setiap komponen.

en: ``_styles.scss`` imports the SCSS defined for each component. It may also contain some minor styling overrides.
id: ``_styles.scss`` mengimpor SCSS yang ditentukan untuk setiap komponen. Mungkin juga mengandung beberapa penimpaan styling minor.

en: ``_variables.scss`` contains the definitions for every Bootstrap variable. These variables can be altered to affect the look and feel of Horizon's default theme.
id: ``_variables.scss`` berisi definisi untuk setiap variabel Bootstrap. Variabel-variabel ini dapat diubah untuk memengaruhi tampilan dan nuansa tema default Horizon.

en: ``_variables.scss`` contains variable definitions that are specific to the horizon theme. This should **not** override any bootstrap variables, only define new ones. You can however, inherit bootstrap variables for reuse (and are encouraged to do so where possible).
id: ``_variables.scss`` berisi definisi variabel yang spesifik untuk tema horizon. Ini seharusnya **not** mengesampingkan variabel bootstrap apa pun, hanya mendefinisikan yang baru. Namun Anda dapat, mewarisi variabel bootstrap untuk digunakan kembali (dan didorong untuk melakukannya jika memungkinkan).

en: ``all_tcp``, ``all_udp`` and ``all_icmp`` are the reserved keyword, so it looks better to split the first three rules (``all_tcp`` to ``all_icmp``) and other remaining rules. The remaining rules will be loaded from a YAML file. For the first three rules, a boolean option to control their visibility in the security group rule form will be introduces in oslo.config. I am not sure this option is required or not, but as the first step of the migration it is reasonable to provide all compatibilities.
id: ``all_tcp``, ``all_udp`` dan ``all_icmp`` adalah kata kunci yang disediakan, sehingga terlihat lebih baik untuk membagi tiga aturan pertama (``all_tcp`` menjadi ``all_icmp``) dan aturan lainnya yang tersisa. Aturan yang tersisa akan diambil dari file YAML. Untuk tiga aturan pertama, opsi boolean untuk mengontrol visibilitas mereka di formulir aturan grup keamanan akan diperkenalkan di oslo.config. Saya tidak yakin opsi ini diperlukan atau tidak, tetapi sebagai langkah pertama migrasi, masuk akal untuk menyediakan semua kompatibilitas.

en: ``horizon.defaults`` for horizon
id: ``horizon.defaults`` untuk horizon

en: ``horizon.defaults`` load ``openstack_auth.defaults`` and overrides openstack_auth settings if necessary. Similarly, ``openstack_dashboard.defaults`` loads ``horizon.defaults`` and overrides horizon (and openstack_auth) settings if necessary.
id: ``horizon.defaults`` memuat ``openstack_auth.defaults`` dan override pengaturan openstack_auth jika perlu. Demikian pula, ``openstack_dashboard.defaults`` memuat ``horizon.defaults`` dan mengabaikan pengaturan horizon (dan openstack_auth) jika perlu.

en: ``horizon.framework`` declares a dependency on ``horizon.framework.widgets``, which declares dependencies on each individual widget. This allows the application to access any widget, simply by depending on the top-level ``horizon.framework`` module.
id: `` horizon.framework`` menyatakan dependensi pada ``horizon.framework.widgets``, yang mendeklarasikan dependensi pada masing-masing widget. Ini memungkinkan aplikasi untuk mengakses widget apa pun, hanya dengan bergantung pada modul ``horizon.framework`` tingkat atas.

en: ``horizon`` is the location of horizon
id: ``horizon``adalah lokasi horizon

en: ``icon``: Icon class for icon element (inserted before text).
id: ``icon``: Ikon kelas untuk ikon elemen (disisipkan sebelum teks).

en: ``openstack_auth.defaults`` for openstack_auth
id: ``openstack_auth.defaults`` untuk openstack_auth

en: ``openstack_dashboard.defaults`` for openstack_dashboard
id: ``openstack_dashboard.defaults`` untuk openstack_dashboard

en: ``package`` is the complete name of your packaged plugin
id: `` paket`` adalah nama lengkap dari plugin yang Anda paket

en: ``plugin`` is the location of your plugin
id: ``plugin`` adalah lokasi plugin Anda

en: ``text``: Text to display on the button
id: ``text``: Teks untuk ditampilkan pada tombol

en: ``tox -e npm`` from the horizon root directory.
id: ``tox -e npm`` dari direktori root horizon.

en: ``tox -e npm`` from the horizon root directory. This runs Karma, so it will run all the tests against PhantomJS and generate coverage reports.
id: ``tox -e npm`` dari direktori root horizon. Ini menjalankan Karma, sehingga akan menjalankan semua tes terhadap PhantomJS dan menghasilkan laporan liputan (coverage report).

en: ``value``: Value returned when the button is clicked. This value is passed to ``filter()`` as ``filter_string``.
id: ``value``: Nilai dikembalikan ketika tombol diklik. Nilai ini diteruskan ke ``filter()``` sebagai ``filter_string``.

en: and log format is defined in OPERATION_LOG_OPTIONS.
id: dan format log didefinisikan dalam OPERATION_LOG_OPTIONS.

en: application dependencies.
id: ketergantungan aplikasi.

en: base token auth url
id: url auth token dasar

en: for a Debian OS flavour, or for Fedora/Red Hat flavours::
id: untuk flavour Debian OS, atau untuk flavour Fedora/Red Hat::

en: for a policy that requires a single rule check, policy_rules should look like:
id: untuk kebijakan yang memerlukan pemeriksaan aturan tunggal, policy_rules akan terlihat seperti:

en: for a policy that requires a single rule check::
id: untuk kebijakan yang memerlukan pemeriksaan aturan tunggal::

en: for a policy that requires multiple rule checks, rules should look like:
id: untuk kebijakan yang membutuhkan beberapa pemeriksaan aturan, aturan akan terlihat seperti:

en: for a policy that requires multiple rule checks::
id: untuk kebijakan yang membutuhkan beberapa pemeriksaan aturan::

en: help_text is returned if applicable.
id: help_text dikembalikan jika berlaku.

en: hide checkbox column if no current table action is allowed.
id: sembunyikan kolom kotak centang jika tidak ada tindakan tabel saat ini diizinkan.

en: is better found like:
id: lebih baik ditemukan seperti:

en: list of scope and rule tuples to do policy checks on, the composition of which is (scope, rule)
id: daftar cakupan (scope) dan aturan tupel (rule tuple) untuk melakukan pemeriksaan kebijakan, yang komposisinya adalah (cakupan, aturan)

en: local_settings.py will have a priority over oslo.config. This means settings values from oslo.config will be loaded first and then ``local_settings.py`` and ``local_settings.d`` will be loaded in ``settings.py``.
id: local_settings.py akan memiliki prioritas di atas oslo.config. Ini berarti nilai pengaturan dari oslo.config akan dimuat terlebih dahulu dan kemudian ``local_settings.py`` dan ``local_settings.d`` akan dimuat dalam ``settings.py``.

en: openstack_auth Module
id: Modul openstack_auth

en: openstack_dashboard.settings (and local_settings.py)
id: openstack_dashboard.settings (dan local_settings.py)

en: rule: string representing the action to be checked
id: rule: string yang mewakili aksi yang harus diperiksa

en: scope: service type managing the policy for action
id: scope: jenis layanan yang mengatur kebijakan untuk aksi

en: see django.contrib.auth.views.logout_then_login extra parameters.
id: lihat django.contrib.auth.views.logout_then_login parameter tambahan.

en: the application, and includes modules from its pluggable dashboards.
id: aplikasi, dan termasuk modul dari dashboard yang bisa dicolokkan (pluggable).

en: to your enabled file (``enabled/<plugin_name>.py``). To make this possible, you need to follow some structural conventions:
id: ke file Anda yang diaktifkan (``enabled/<plugin_name>.py``). Untuk memungkinkan ini, Anda perlu mengikuti beberapa konvensi struktural:

en: to your enabled file. JS code for testing should use the extensions ``.mock.js`` and ``.spec.js``.
id: ke file yang diaktifkan. Kode JS untuk pengujian harus menggunakan ekstensi ``.mock.js`` dan ``.spec.js``.

en: when the user needs to provide a search criteria first before loading any data.
id: ketika pengguna perlu memberikan kriteria pencarian terlebih dahulu sebelum memuat data apa pun.

en: where two service-rule clauses are OR-ed.
id: dimana dua klausa aturan layanan OR-ed.

en: x tuples can be added to enforce x rules.
id: x tuples dapat ditambahkan untuk menegakkan aturan x.
