Setiap ekstensi atau aplikasi yang diinternasionalkan memiliki setidaknya satu file bernama messages.json
yang menyediakan
{i>string<i} khusus lokalitas. Halaman ini menjelaskan format file messages.json
. Untuk mengetahui informasi tentang
cara menginternasionalkan dan melokalkan, lihat halaman Internasionalisasi.
Ringkasan kolom
Kode berikut menunjukkan kolom yang didukung untuk messages.json
. Hanya "name" dan "pesan"
kolom wajib diisi.
{
"name": {
"message": "Message text, with optional placeholders.",
"description": "Translator-aimed description of the message.",
"placeholders": {
"placeholder_name": {
"content": "A string to be placed within the message.",
"example": "Translator-aimed example of the placeholder string."
},
...
}
},
...
}
Contoh
Berikut adalah file messages.json
yang menentukan tiga pesan bernama "prompt_for_name", "hello", dan
"daaah":
{
"prompt_for_name": {
"message": "What's your name?",
"description": "Ask for the user's name"
},
"hello": {
"message": "Hello, $USER$",
"description": "Greet the user",
"placeholders": {
"user": {
"content": "$1",
"example": "Cira"
}
}
},
"bye": {
"message": "Goodbye, $USER$. Come back to $OUR_SITE$ soon!",
"description": "Say goodbye to the user",
"placeholders": {
"our_site": {
"content": "Example.com",
},
"user": {
"content": "$1",
"example": "Cira"
}
}
}
}
Detail kolom
Bagian ini menjelaskan setiap kolom yang dapat muncul dalam file messages.json
. Untuk mengetahui detail tentang cara
digunakan—misalnya, apa yang terjadi ketika lokal tidak mendefinisikan semua pesan—lihat
Internasionalisasi.
nama
Sebenarnya, tidak ada kolom bernama "nama". Nama kolom ini adalah nama pesan—sama
name yang Anda lihat di __MSG__name___
atau getMessage("_name_")
.
Nama berupa kunci yang tidak peka huruf besar/kecil yang memungkinkan Anda mengambil teks pesan yang dilokalkan. Nama dapat sertakan karakter berikut:
- A-Z
- a-z
- 0-9
- _ (garis bawah)
- @
Berikut ini tiga contoh nama, yang diambil dari bagian Contoh:
"prompt_for_name": {
...
},
"hello": {
...
},
"bye": {
...
}
Untuk contoh lain penggunaan nama, lihat halaman Internasionalisasi.
pesan
Pesan yang diterjemahkan, dalam bentuk string yang dapat berisi placeholder. Gunakan
$_placeholder_name_$
(tidak peka huruf besar/kecil) untuk merujuk ke placeholder tertentu. Sebagai contoh, Anda dapat
merujuk ke placeholder bernama "our_site" sebagai $our_site$
, $OUR_SITE$
, atau $oUR_sITe$
.
Berikut adalah tiga contoh pesan, yang diambil dari bagian Contoh:
"message": "What's your name?"
...
"message": "Hello, $USER$"
...
"message": "Goodbye, $USER$. Come back to $OUR_SITE$ soon!"
Untuk memasukkan tanda dolar ($
) ke dalam string, gunakan $$
. For example, use the following code to specify
the message Amount (in $):
"message": "Amount (in $$)"
Meskipun placeholder seperti
$USER$
adalah cara yang lebih disukai untuk merujuk ke string substitusi (string yang ditentukan menggunakan parameter substitutions dari i18n.getMessage) yang juga dapat Anda rujuk untuk mengganti {i>string<i} secara langsung dalam pesan. Misalnya, pesan berikut mengacu pada tiga string substitusi pertama yang diteruskan kegetMessage()
:"message": "Params: $1, $2, $3"
Meskipun ada contoh tersebut, sebaiknya tetap gunakan placeholder, bukan string
$_n_
dalam pesan Anda. Bayangkan {i>placeholder<i} sebagai nama variabel yang baik. Seminggu setelah Anda menulis kode, Anda mungkin akan lupa merujuk pada$1
, tetapi Anda akan tahu apa yang dimaksud dengan placeholder Anda. Untuk informasi selengkapnya tentang placeholder dan string substitusi, lihat bagian placeholder.deskripsi
Opsional. Deskripsi pesan, yang dimaksudkan untuk memberikan konteks atau detail guna membantu penerjemah membuat terjemahan terbaik.
Berikut adalah tiga contoh deskripsi, yang diambil dari bagian Contoh:
"description": "Ask for the user's name" ... "description": "Greet the user" ... "description": "Say goodbye to the user"
placeholder
Opsional. Mendefinisikan satu atau beberapa substring yang akan digunakan dalam pesan. Berikut adalah dua alasan mengapa Anda mungkin ingin menggunakan {i>placeholder<i}:
- Untuk menentukan teks untuk bagian dari pesan Anda yang tidak boleh diterjemahkan. Contoh: kode HTML, nama merek dagang, dan penentu format.
- Untuk merujuk ke string substitusi yang diteruskan ke
getMessage()
. Contoh:$1
.
Setiap {i>placeholder<i} memiliki nama, sebuah "konten" item, dan "contoh" opsional yang bermanfaat. Nama placeholder tidak peka huruf besar/kecil dan dapat berisi karakter yang sama dengan nama pesan.
"Konten" nilai item adalah string yang bisa merujuk ke string substitusi, yang ditentukan
menggunakan parameter substitutions dari metode i18n.getMessage. Nilai "konten" item adalah
biasanya seperti "Example.com" atau "$1". Jika Anda merujuk ke {i>string
<i}substitusi yang tidak
ada, Anda mendapatkan
string kosong. Tabel berikut menunjukkan cara string $_n_
berkaitan dengan string
yang ditentukan oleh parameter substitutions.
parameter substitutions | Nilai $1 | Nilai $2 | Nilai $3 |
---|---|---|---|
userName | nilai userName | "" | "" |
["Cira", "Kathy"] | "Cira" | "Kathy" | "" |
"Contoh" (opsional, namun sangat direkomendasikan) membantu penerjemah dengan menunjukkan cara konten
muncul untuk pengguna akhir. Misalnya, {i>placeholder<i} untuk jumlah dolar harus memiliki contoh seperti
"$23.45"
.
Cuplikan berikut, yang diambil dari bagian Contoh, menampilkan "placeholder" item yang berisi dua placeholder bernama "our_site" dan "pengguna". "our_site" placeholder tidak memiliki "example" item karena nilainya terlihat jelas dari kolom tersebut.
"placeholders": {
"our_site": {
"content": "Example.com",
},
"user": {
"content": "$1",
"example": "Cira"
}
}