---
title: "Format localization"
version: 4.1
locale: id
source: https://docs.djangoproject.com/id/4.1/topics/i18n/formatting/
canonical: https://djangodocs.dev/id/4.1/topics/i18n/formatting/
---
# Format localization

## Ikhtisar

Django's formatting system is capable of displaying dates, times and numbers in
templates using the format specified for the current
[locale](/id/4.1/topics/i18n/#term-locale-name). It also handles localized input in forms.

Ketika itu diadakan, dua pengguna mengakses isi sama mungkin melihat tanggal, waktu dan ang berbentuk dalam cara berbeda, tergantung pada bentuk untuk lokal saat ini.

The formatting system is enabled by default. To disable it, it's
necessary to set [`USE_L10N = False`](/id/4.1/ref/settings/#std-setting-USE_L10N) in your settings file.

> **Note**
>
> To enable number formatting with thousand separators, it is necessary to
> set [`USE_THOUSAND_SEPARATOR = True`](/id/4.1/ref/settings/#std-setting-USE_THOUSAND_SEPARATOR) in
> your settings file. Alternatively, you could use [`intcomma`](/id/4.1/ref/contrib/humanize/#std-templatefilter-intcomma) to
> format numbers in your template.

> **Note**
>
> There is a related [`USE_I18N`](/id/4.1/ref/settings/#std-setting-USE_I18N) setting that controls if Django
> should activate translation. See [Terjemahan](/id/4.1/topics/i18n/translation/) for more
> details.

## Locale aware input in forms

Ketika pembentukan diadakan, Django menggunakan bentuk lokalisasi ketika mengurai tanggal, waktu dan sejumlah dalam formulir. Itu berarti itu mencoba bentuk berbeda untuk lokal-lokal berbeda ketika menebak bentuk digunakan oleh pengguna ketika memasukkan data pada formulir.

> **Note**
>
> Django menggunakan bentuk-bentuk berbeda untuk menampilkan data pada itu digunakan untuk mengurai data. Kebanyakan terutama, bentuk-bentuk untuk mengurai tanggal tidak dapat menggunakan `%a` (nama hari kerja disingkat), `%A` (nama hari kerja penuh), `%b` (nama bulan disingkat), `%B` (nama bulan penuh), atau `%p` (AM/PM).

To enable a form field to localize input and output data use its `localize`
argument:

```
class CashRegisterForm(forms.Form):
   product = forms.CharField()
   revenue = forms.DecimalField(max_digits=4, decimal_places=2, localize=True)
```

## Mengendalikan lokalisasi dalam cetakan-cetakan

Ketika anda mengadakan pembentukan dengan [`USE_L10N`](/id/4.1/ref/settings/#std-setting-USE_L10N), Django akan mencoba menggunakan bentuk khusus lokal kapanpun itu mengeluarkan sebuah nilai dalam sebuah cetakan.

Bagaimanapun, itu mungkin tidak selalu sesuai untuk menggunakan nilai-nilai lokal -- sebagai contoh, jika anda sedang mengeluarkan JavaScript atau XML yang dirancang untuk menjadi dapat-dibaca-mesin, anda akan selalu ingin nilai-nilai tidak terlokalisasi. Anda mungkin ingin juga menggunakan lokalisasi dalam cetakan-cetakan terpilih, daripada menggunakan lokalisasi dimanapun,

Untuk mengizinkan pengendalian baik terhadap penggunaan lokalisasi, Django menyediakan pustaka cetakan `l10n` yang mengandung etiket-etiket dan penyaring-penyaring berikut

### Etiket cetakan

#### `localize`

Mengadakan atau meniadakan lokalisasi dari variabel-variabel cetakan dalam blok terkandung.

Etiket ini mengizinkan pengendalian berkurai baik dari lokalisasi daripada [`USE_L10N`](/id/4.1/ref/settings/#std-setting-USE_L10N).

Untuk mengaktifkan atau menonaktifkan lokalisasi untuk sebuah blok cetakan, gunakan:

```
{% load l10n %}

{% localize on %}
    {{ value }}
{% endlocalize %}

{% localize off %}
    {{ value }}
{% endlocalize %}
```

> **Note**
>
> Nilai dari [`USE_L10N`](/id/4.1/ref/settings/#std-setting-USE_L10N) tidak dihormati dalam dari blok `{% localize %}`.

Lihat [`localize`](#std-templatefilter-localize) dan [`unlocalize`](#std-templatefilter-unlocalize) untuk penyaring cetakan yang akan melakukan pekerjaan sama pada dasar per-variabel.

### Filter templat

#### `localize`

memaksa lokalisasi pada sebuah nilai tunggal.

Sebagai contoh:

```
{% load l10n %}

{{ value|localize }}
```

Untuk meniadakan lokalisasi pada sebuah nilai tunggal, gunakan [`unlocalize`](#std-templatefilter-unlocalize). Untuk mengendalikan lokalisasi terhadap bagian besar dari sebuah cetakan, gunakan etiket cetakan [`localize`](#std-templatetag-localize).

#### `unlocalize`

Memaksa sebuah nilai tunggal untuk dicetak tanpa lokalisasi.

Sebagai contoh:

```
{% load l10n %}

{{ value|unlocalize }}
```

Untuk memaksa lokalisasi pada sebuah nilai tunggal, gunakan [`localize`](#std-templatefilter-localize). Untuk mengendalikan lokalisasi terhadap bagian besar dari sebuah cetakan, gunakan etiket cetakan [`localize`](#std-templatetag-localize).

Returns a string representation for unlocalized numbers  (`int`, `float`,
or `Decimal`).

## Membuat berkas bentuk disesuaikan

Django provides format definitions for many locales, but sometimes you might
want to create your own, because a format file doesn't exist for your locale,
or because you want to overwrite some of the values.

To use custom formats, specify the path where you'll place format files
first.  To do that, set your [`FORMAT_MODULE_PATH`](/id/4.1/ref/settings/#std-setting-FORMAT_MODULE_PATH) setting to the
package where format files will exist, for instance:

```
FORMAT_MODULE_PATH = [
    'mysite.formats',
    'some_app.formats',
]
```

Berkas-berkas tidak ditempatkan langsung dalam direktori ini, tetapi dalam sebuah direktori bernama seperti lokal, dan harus dinamai `formats.py`. Waspadalah tidak menaruh informasi sensitif dalam berkas-berkas ini didalam dapat dikeluarkan jika anda melewatkan string `django.utils.formats.get_format()` (digunakan oleh penyaring cetakan [`date`](/id/4.1/ref/templates/builtins/#std-templatefilter-date)).

Untuk menyesuaikan bentuk Inggris, sebuah struktur seperti ini akan diperlukan:

```
mysite/
    formats/
        __init__.py
        en/
            __init__.py
            formats.py
```

Selagi `formats.py` mengandung pengertian bentuk penyesuaian. Sebagai contoh:

```
THOUSAND_SEPARATOR = '\xa0'
```

to use a non-breaking space (Unicode `00A0`) as a thousand separator,
instead of the default for English, a comma.

## Batasan-batasan dari bentuk lokal disediakan.

Some locales use context-sensitive formats for numbers, which Django's
localization system cannot handle automatically.

### Swis (Jerman)

The Swiss number formatting depends on the type of number that is being
formatted. For monetary values, a comma is used as the thousand separator and
a decimal point for the decimal separator. For all other numbers, a comma is
used as decimal separator and a space as thousand separator. The locale format
provided by Django uses the generic separators, a comma for decimal and a space
for thousand separators.
