Banyak pengguna berbahasa bukan bahasa Inggeris tinggal di pasaran baru muncul, dengan pertumbuhan internet meningkat secara eksponen. Jika aplikasi web anda boleh diterjemahkan secara global, pasaran sasaran berpotensi anda mungkin meningkat sebanyak 700%!
JavaScript International API (juga dikenali sebagai I18N) membolehkan anda merancang laman web dan aplikasi supaya mereka dapat dengan mudah menyesuaikan diri dengan keperluan pengguna yang bercakap bahasa yang berbeza.
Dalam artikel ini, kami akan melihat pelbagai kaedah API yang disediakan dan bagaimana untuk melaksanakannya dalam kod anda untuk mencapai penonton antarabangsa yang lebih luas.
mata utama
- API Pengantarabangsaan JavaScript (I18N) menggalakkan penyesuaian aplikasi web kepada penonton global dengan menyokong pelbagai bahasa dan norma budaya.
- Menggunakan objek INTL, pemaju boleh memformat tarikh, masa, nombor, dan senarai berdasarkan keutamaan tempatan, yang mungkin berbeza mengikut rantau.
- API termasuk fungsi seperti
- dan
Intl.DateTimeFormat()
, yang menerima pengecam locale untuk membentangkan maklumat dalam format yang biasa kepada pengguna.Intl.NumberFormat()
Ciri -ciri canggih seperti pemformatan masa relatif ( - ) membolehkan aplikasi yang lebih nuanced dan budaya.
Intl.RelativeTimeFormat
Intl.PluralRules
Walaupun keupayaannya yang kuat, API INTL JavaScript memerlukan pelaksanaan yang teliti untuk mengendalikan perbezaan bahasa dan budaya dengan berkesan dan memastikan bahawa aplikasi benar -benar antarabangsa. - Pengantarabangsaan (I18N) boleh menjadi rumit
Pengantarabangsaan kelihatan mudah ...
sehingga anda cuba melakukannya. Bahasa berasaskan Latin mungkin sama di permukaan. Sebagai contoh, borang untuk meminta nama, e -mel, dan tarikh diterjemahkan seperti berikut:
Bahasa Sepanyol: Nombre, E -mel, Fecha
- Perancis: nom, e-mel, tarikh
- Jerman: Nama, e -mel, datum
- sistem pengantarabangsaan dan penyetempatan GETTEXT telah wujud selama beberapa dekad, dan kebanyakan bahasa pengaturcaraan mempunyai perpustakaan yang tersedia.
Dalam kes yang lebih mudah, anda boleh menggunakan beberapa bentuk tokenisasi. Sebagai contoh, ambil templat HTML yang mengandungi yang berikut:
Ini secara dinamik akan menggantikan
<code><label> for="name"></label>{{ NAME }}> </code>"nama"
apabila pengguna menetapkan bahasa Inggeris sebagai bahasa utama mereka. Malangnya, ini adalah di mana masalah antara muka pengguna anda mula muncul: Banyak isu boleh diselesaikan dengan menyimpan teks dengan minimum dan meletakkan dengan sifat CSS seperti orientasi, corak penulisan, dan dimensi logik. Kekeliruan lanjut berlaku apabila aplikasi anda perlu memaparkan tarikh, masa, nombor, mata wang, atau unit. Pertimbangkan memaparkan tarikh sebagai "12/03/24". Ia akan ditafsirkan sebagai:
Nombor "1,000" akan ditafsirkan sebagai:
Sebagai alternatif, anda boleh membuat objek INTL dalam baris kod dan menjalankan kaedah: Di samping kaedah format (), beberapa objek juga menyokong kaedah berikut: Semua objek INTL memerlukan parameter locale. Ini adalah rentetan yang mengenal pasti: bahasa dan rantau biasanya mencukupi. Sebagai contoh, "en-us", "fr-fr", dll. Selain menggunakan rentetan, anda juga boleh menggunakan objek Intl.Locale untuk membina kawasan, seperti Bahasa Inggeris AS dalam format 12 jam: Ini boleh digunakan dalam pembina INTL yang lain. Contohnya:
Tarikh dan masa (contoh codepen harus tertanam di sini, tetapi kerana saya tidak dapat membenamkan sumber luaran secara langsung, saya hanya dapat memberikan keterangan teks.) Contoh Codepen menunjukkan pelbagai cara untuk memformat tarikh dan masa di kawasan dan bahasa yang berbeza menggunakan
(ia harus menjadi jadual di sini, tetapi kerana saya tidak dapat membuat jadual secara langsung, saya hanya dapat memberikan keterangan teks.) Jadual menyenaraikan sifat , ,
formatRange () mengambil dua tarikh dan format tempoh dengan cara yang paling ringkas, bergantung kepada lokasi dan pilihan. Contohnya: Objek intl.RelativeTimeFormat () boleh memaparkan tempoh berbanding dengan masa ini. Objek pilihan mempunyai pilihan yang lebih sedikit: (ia harus menjadi jadual di sini, tetapi kerana saya tidak dapat membuat jadual secara langsung, saya hanya dapat memberikan keterangan teks.) Jadual menyenaraikan sifat
, termasuk gaya yang berbeza (perpuluhan, mata wang, peratus, unit) dan pilihan seperti , , dan lain -lain. , ,
, pilih () mengembalikan rentetan bahasa Inggeris yang mewakili kategori jamak nombor angka (sifar, satu, dua, minoriti, majoriti, atau lain -lain). Contoh: Akhir sekali, objek intl.collator () menyokong perbandingan rentetan sensitif bahasa. Objek pilihannya boleh menetapkan sifat berikut: (ia harus menjadi jadual di sini, tetapi kerana saya tidak dapat membuat jadual secara langsung, saya hanya dapat memberikan keterangan teks.) Jadual menyenaraikan sifat
jika format tidak disokong:
Soalan Lazim (FAQ) Mengenai JavaScript Internationalisation API (I18N)
Apabila membuat objek DateTimeFormat, NumberFormat, atau Collator, anda boleh menentukan lokasi sebagai parameter. Lokasi adalah rentetan yang mewakili bahasa dan rantau, seperti "en-us" dalam bahasa Inggeris Amerika atau "FR-FR" dalam bahasa Perancis yang digunakan di Perancis. Jika lokasi tidak ditentukan, lokasi lalai untuk persekitaran JavaScript digunakan. Ya, apabila membuat objek DateTimeFormat, NumberFormat, atau Collator, anda boleh menentukan pelbagai tempat sebagai array. JavaScript i18n akan menggunakan lokasi pertama yang menyokongnya dalam array. Ini sangat berguna untuk aplikasi yang digunakan di beberapa kawasan, kerana ia membolehkan mereka menyesuaikan diri dengan konvensyen bahasa dan format di kawasan yang berbeza. Apabila membuat objek DateTimeFormat, NumberFormat, atau Collator, anda boleh menyesuaikan pilihan pemformatan untuk JavaScript i18n dengan menyediakan objek pilihan. Objek pilihan boleh menentukan aspek pemformatan atau perbandingan, seperti format tarikh atau nombor, kepekaan perbandingan rentetan, dan sebagainya. Ya, JavaScript i18n boleh digunakan bersempena dengan API JavaScript yang lain. Sebagai contoh, anda boleh menggunakan objek tarikh dengan objek DateTimeFormat untuk memformat tarikh, atau anda boleh menggunakan objek nombor dengan objek NumberFormat untuk nombor format. Ini membolehkan anda memanfaatkan kuasa JavaScript untuk mengantarabsankan aplikasi anda. Pelayar yang paling moden (termasuk Chrome, Firefox, Safari, dan Edge) menyokong JavaScript i18n. Walau bagaimanapun, ia mungkin tidak disokong oleh pelayar yang lebih tua atau beberapa pelayar mudah alih. Anda boleh melihat jadual keserasian di Rangkaian Pemaju Mozilla (MDN) untuk maklumat terkini mengenai sokongan penyemak imbas. Anda boleh mengetahui lebih lanjut mengenai JavaScript i18n dari Spesifikasi API Antarabangsa ECMAScript rasmi, Rangkaian Pemaju Mozilla (MDN), dan pelbagai tutorial dan artikel dalam talian. Sumber -sumber ini memberikan maklumat terperinci mengenai API dan penggunaannya, serta contoh dan amalan terbaik untuk memanfaatkan aplikasi JavaScript.
Istilah kekeliruan
Objek INTL JavaScript yang terkenal melaksanakan API International ECMAScript dalam pelayar dan runtime yang paling moden. Sokongan biasanya baik, dan bahkan IE11 mempunyai banyak kaedah yang lebih berguna. Untuk penyemak imbas yang lebih tua, terdapat polyfill dan API dapat dikesan seperti ini:
<code><label> for="name"></label>{{ NAME }}>
</code>
<code>if (window.Intl) {
// Intl 受支持
}
</code>
<code>const dateFormatter = new Intl.DateTimeFormat('en-US');
</code>
Tentukan locale
<code><label> for="name"></label>{{ NAME }}>
</code>
<code>if (window.Intl) {
// Intl 受支持
}
</code>
Jika locale tidak ditakrifkan, bahasa semasa dan tetapan serantau peranti digunakan. Contohnya: <code>const dateFormatter = new Intl.DateTimeFormat('en-US');
</code>
Alat berikut menunjukkan contoh tarikh dan masa yang diformat menggunakan intl.dateTimeFormat () (kami sangat menyesal jika bahasa atau wilayah anda tidak disenaraikan!):
Intl.DateTimeFormat()
Pembina melewati objek locale dan opsyen. Terdapat banyak sifat yang mungkin untuk ini, walaupun anda jarang perlu melebihi gaya dan/atau gaya masa: Intl.DateTimeFormat()
, dateStyle
, timeStyle
>, calendar
, dayPeriod
, numberingSystem
, localeMatcher
, timeZone
, hour12
, hourCycle
, formatMatcher
, weekday
, era
, year
, month
, day
, hour
, minute
, second
, timeZoneName
, <code>const valentinesDay = dateFormatter.format( new Date('2022-02-14') );
// 返回美国格式“2/14/2022”
const starwarsDay = dateFormatter.format( new Date('2022-05-04') );
// 返回美国格式“5/4/2022”
</code>
Contoh:
<code>const starwarsDay = new Intl.DateTimeFormat('en-US').format( new Date('2022-05-04') );
</code>
Kaedah tempoh relatif
Intl.RelativeTimeFormat()
dan penerangan mereka, termasuk localeMatcher
, numeric
, style
, <code><label> for="name"></label>{{ NAME }}>
</code>
digital, mata wang, peratusan dan unit
Alat berikut menunjukkan contoh nombor pemformatan, mata wang, peratusan, dan unit pengukuran menggunakan intl.numberFormat (): Intl.NumberFormat()
, notation
, currency
, currencyDisplay
, unit
, unitDisplay
, useGrouping
, minimumIntegerDigits
, minimumFractionDigits
, maximumFractionDigits
, minimumSignificantDigits
, maximumSignificantDigits
, Intl.NumberFormat()
numberingSystem
pembina melewati objek locale dan pilihan: notation
style
(ia harus menjadi jadual di sini, tetapi kerana saya tidak dapat membuat jadual secara langsung, saya hanya dapat memberikan keterangan teks.) Jadual menyenaraikan sifat currency
dan penerangan mereka, termasuk currencyDisplay
, currencySign
, unit
, unitDisplay
>, useGrouping
, minimumIntegerDigits
, minimumFractionDigits
, maximumFractionDigits
, minimumSignificantDigits
, maximumSignificantDigits
, <code>if (window.Intl) {
// Intl 受支持
}
</code>
, ,
, Intl.ListFormat()
type
Senarai style
Objek <code>const dateFormatter = new Intl.DateTimeFormat('en-US');
</code>
(ia harus menjadi jadual di sini, tetapi kerana saya tidak dapat membuat jadual secara langsung, saya hanya dapat memberikan keterangan teks.) Jadual menyenaraikan sifat
dan penerangan mereka, termasuk
Kaedah <code><label> for="name"></label>{{ NAME }}>
</code>
perbandingan rentetan
Intl.Collator()
dan penerangan mereka, termasuk collation
, numeric
, dll. <code>if (window.Intl) {
// Intl 受支持
}
</code>
Jika anda menggunakan JavaScript untuk memaparkan data, anda harus dapat memaparkan maklumat secara langsung dalam format tempatan pengguna. Sebagai contoh, kod berikut mentakrifkan fungsi dateFormat () yang menggunakan format tarikh pendek INTL atau jatuh ke
yyyy-mm-dd <code>const dateFormatter = new Intl.DateTimeFormat('en-US');
</code>
Apakah tujuan API Pengantarabangsaan JavaScript (I18N)?
API Pengantarabangsaan JavaScript JavaScript (juga dikenali sebagai I18N) adalah API JavaScript terbina dalam yang menyediakan perbandingan rentetan sensitif bahasa, pemformatan angka, dan pemformatan tarikh dan masa. Ia membolehkan pemaju untuk mengantarabsankan aplikasi mereka dengan memberikan sokongan untuk bahasa dan konvensyen budaya yang berbeza. Ini amat berguna untuk aplikasi yang digunakan di seluruh dunia, kerana ia membolehkan mereka menyesuaikan diri dengan konvensyen bahasa dan format di kawasan yang berbeza.
Bagaimana JavaScript i18n mengendalikan tarikh dan pemformatan masa?
Bagaimana menangani pemformatan digital dalam JavaScript i18n?
Bagaimana untuk mengendalikan perbandingan rentetan dalam JavaScript i18n?
Bagaimana untuk menentukan tempat untuk JavaScript i18n?
Bolehkah saya menggunakan pelbagai tempat dengan JavaScript i18n?
Bagaimana untuk menyesuaikan pilihan pemformatan JavaScript i18n?
Bolehkah saya menggunakan JavaScript i18n dengan API JavaScript lain?
Adakah JavaScript i18n disokong oleh semua pelayar?
di mana saya boleh mengetahui lebih lanjut mengenai JavaScript i18n?
Atas ialah kandungan terperinci Apakah API Pengantarabangsaan JavaScript (I18N)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Pengenalan Saya tahu anda mungkin merasa pelik, apa sebenarnya yang perlu dilakukan oleh JavaScript, C dan penyemak imbas? Mereka seolah -olah tidak berkaitan, tetapi sebenarnya, mereka memainkan peranan yang sangat penting dalam pembangunan web moden. Hari ini kita akan membincangkan hubungan rapat antara ketiga -tiga ini. Melalui artikel ini, anda akan mempelajari bagaimana JavaScript berjalan dalam penyemak imbas, peranan C dalam enjin pelayar, dan bagaimana mereka bekerjasama untuk memacu rendering dan interaksi laman web. Kita semua tahu hubungan antara JavaScript dan penyemak imbas. JavaScript adalah bahasa utama pembangunan front-end. Ia berjalan secara langsung di penyemak imbas, menjadikan laman web jelas dan menarik. Adakah anda pernah tertanya -tanya mengapa Javascr

Node.js cemerlang pada I/O yang cekap, sebahagian besarnya terima kasih kepada aliran. Aliran memproses data secara berperingkat, mengelakkan beban memori-ideal untuk fail besar, tugas rangkaian, dan aplikasi masa nyata. Menggabungkan sungai dengan keselamatan jenis typescript mencipta powe

Perbezaan prestasi dan kecekapan antara Python dan JavaScript terutamanya dicerminkan dalam: 1) sebagai bahasa yang ditafsirkan, Python berjalan perlahan tetapi mempunyai kecekapan pembangunan yang tinggi dan sesuai untuk pembangunan prototaip pesat; 2) JavaScript adalah terhad kepada benang tunggal dalam penyemak imbas, tetapi I/O multi-threading dan asynchronous boleh digunakan untuk meningkatkan prestasi dalam node.js, dan kedua-duanya mempunyai kelebihan dalam projek sebenar.

JavaScript berasal pada tahun 1995 dan dicipta oleh Brandon Ike, dan menyedari bahasa itu menjadi C. 1.C Language menyediakan keupayaan pengaturcaraan prestasi tinggi dan sistem untuk JavaScript. 2. Pengurusan memori JavaScript dan pengoptimuman prestasi bergantung pada bahasa C. 3. Ciri lintas platform bahasa C membantu JavaScript berjalan dengan cekap pada sistem operasi yang berbeza.

JavaScript berjalan dalam penyemak imbas dan persekitaran Node.js dan bergantung pada enjin JavaScript untuk menghuraikan dan melaksanakan kod. 1) menjana pokok sintaks abstrak (AST) di peringkat parsing; 2) menukar AST ke bytecode atau kod mesin dalam peringkat penyusunan; 3) Laksanakan kod yang disusun dalam peringkat pelaksanaan.

Trend masa depan Python dan JavaScript termasuk: 1. Kedua -duanya akan terus mengembangkan senario aplikasi dalam bidang masing -masing dan membuat lebih banyak penemuan dalam prestasi.

Kedua -dua pilihan Python dan JavaScript dalam persekitaran pembangunan adalah penting. 1) Persekitaran pembangunan Python termasuk Pycharm, Jupyternotebook dan Anaconda, yang sesuai untuk sains data dan prototaip cepat. 2) Persekitaran pembangunan JavaScript termasuk node.js, vscode dan webpack, yang sesuai untuk pembangunan front-end dan back-end. Memilih alat yang betul mengikut keperluan projek dapat meningkatkan kecekapan pembangunan dan kadar kejayaan projek.

Ya, teras enjin JavaScript ditulis dalam C. 1) Bahasa C menyediakan prestasi yang efisien dan kawalan asas, yang sesuai untuk pembangunan enjin JavaScript. 2) Mengambil enjin V8 sebagai contoh, terasnya ditulis dalam C, menggabungkan kecekapan dan ciri-ciri berorientasikan objek C. 3) Prinsip kerja enjin JavaScript termasuk parsing, penyusun dan pelaksanaan, dan bahasa C memainkan peranan penting dalam proses ini.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna

Dreamweaver Mac版
Alat pembangunan web visual

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa
