Bahasa Melayu

Teks & alat harian · Kit Alat Teks

Mengapa huruf besar bukan sahaja A–Z: ß, pemetaan huruf Turki i dan Unicode

· Latar belakang

unicode penukaran kes penyetempatan

Huruf Jerman, Turki dan Yunani yang melalui perubahan huruf besar dan kecil
Ilustrasi vektor ToolAcre asal

Terangkan mengapa huruf besar dan huruf kecil ditakrifkan oleh jadual Unicode dan bukannya aritmetik pada huruf, dengan pengecualian yang terkenal — ß menjadi SS, ı tanpa titik Turki dan sigma akhir Greek — dan maksudnya bagi mana-mana penukar berasaskan pelayar.

STRASSE dan huruf yang berkembang — mengapa huruf besar 'straße' mengubah kiraan aksara

Tampalkan `straße` ke dalam penukar dan huruf besarkannya: JavaScript menghasilkan `STRASSE`. Hasilnya kelihatan lebih panjang kerana huruf kecil s tajam dipetakan kepada dua huruf besar oleh operasi lalai yang digunakan di sini. Oleh itu, peraturan pengesahan yang menganggap penukaran kes mengekalkan kiraan aksara boleh menolak, memotong atau menyelewengkan teks Jerman yang sah.

Arah terbalik tidak membina semula sumber. Mengecilkan `STRASSE` menghasilkan `strasse`, bukan `straße`, kerana jujukan besar juga mewakili pasangan biasa huruf s. Penukaran kes adalah akibatnya transformasi teks, bukan pengekodan boleh balik. Kekalkan ejaan asal apabila identiti, ketepatan paparan atau perbandingan yang tepat penting.

Pemetaan kes sebagai jadual, bukan formula — cara Unicode mentakrifkan pemetaan kes yang ringkas dan penuh untuk setiap huruf berhuruf kecil

Kod ASCII selalunya mengajar corak yang mudah: huruf Latin huruf besar dan huruf kecil menduduki julat yang boleh diramal, jadi offset angka muncul untuk menyambungkannya. Model itu berhenti berguna apabila teks mengandungi huruf di luar julat tersebut atau pemetaan menghasilkan lebih daripada satu aksara output. Oleh itu penukar memanggil kaedah huruf rentetan JavaScript dan bukannya melakukan aritmetik huruf.

Repositori tidak mendedahkan jadual pemetaan Unicode atau membezakan pemetaan mudah dan penuh, jadi butiran tersebut tidak boleh dibentangkan sebagai ciri alat ini. Kontrak yang boleh diperhatikan adalah lebih sempit: `toUpperCase()` dan `toLowerCase()` mewakilkan kepada enjin pelayar. Keputusan harus diuji dalam persekitaran di mana teks yang ditukar sebenarnya akan digunakan.

Penukaran kes menggunakan pemetaan aksara yang disediakan oleh enjin, bukan aritmetik atau jadual yang didedahkan oleh alat ini

Hasil perubahan panjang mempengaruhi lebih daripada pembilang di sebelah input. Offset yang disimpan, julat pilihan, sorotan dan kedudukan kursor yang dikira sebelum penukaran mungkin tidak lagi menghala ke teks yang dimaksudkan selepas itu. Risiko yang sama dikenakan pada mana-mana aliran kerja yang memperuntukkan ruang output daripada panjang input atau menganggap satu aksara sumber sentiasa sepadan dengan satu aksara hasil.

Pergi balik juga boleh kehilangan perbezaan walaupun contoh tertentu mengekalkan panjang yang boleh dilihat sama. Beberapa ejaan sumber mungkin bertumpu pada satu bentuk huruf besar, meninggalkan operasi huruf kecil tanpa maklumat yang mencukupi untuk memilih yang asal. Bandingkan nilai yang diubah sahaja apabila kerugian itu boleh diterima; sebaliknya kekalkan yang asal dan gunakan strategi perbandingan yang direka untuk keperluan produk.

Pemetaan yang mengubah panjang dan sebab menukar kembali tidak boleh sentiasa memulihkan sumber

Greek sigma memberikan amaran yang berbeza. Bahasa Yunani huruf kecil menggunakan bentuk sigma yang boleh berubah mengikut kedudukan dalam sesuatu perkataan, jadi menukar huruf besar tidak boleh selalu diputuskan daripada satu aksara terpencil. JavaScript menerima rentetan lengkap, membenarkan gelagat huruf kecil terbina dalam untuk mempertimbangkan teks sekeliling dan bukannya menggantikan setiap sigma besar dengan satu glyph tetap.

Uji sigma dalam perkataan lengkap, bukan sahaja sebagai sampel aksara tunggal. Tanda baca, ruang dan sempadan perkataan adalah sebahagian daripada input yang dinilai oleh enjin, dan mengeditnya boleh mengubah hasil huruf kecil. Untuk semakan penyetempatan, simpan keseluruhan frasa yang digunakan oleh antara muka dan bandingkan frasa itu dengan terjemahan yang diluluskan dan bukannya memeriksa titik kod sahaja.

Sigma Yunani menunjukkan bahawa huruf kecil boleh bergantung pada teks sekeliling

Bahasa Turki membezakan i bertitik dan tidak bertitik dengan cara yang lalai, penukaran kes bebas tempatan tidak dimodelkan sebagai tingkah laku khusus Turki. Konfigurasi ToolAcre secara eksplisit mengatakan pemetaannya adalah bebas setempat dan bahasa Turki bertitik dan bertitik i bukan huruf khas. Oleh itu, hasil yang kelihatan munasabah bukanlah bukti bahawa nama, alamat atau rentetan antara muka telah ditukar dengan betul untuk pembaca Turki.

Tanggapan praktikal adalah untuk tidak menambah penggantian selepas penukaran generik. Penggantian sedemikian boleh merosakkan teks bahasa bercampur dan masih terlepas konteks. Gunakan operasi sedar setempat dalam perisian yang tempattempatnya diketahui dan minta kandungan Turki atau Azeri disemak dalam tetapan itu. Dalam penukar ini, layan contoh i sebagai demonstrasi pengehadan yang didokumenkan.

Turki bertitik dan tidak bertitik saya memerlukan pengendalian setempat yang tidak disediakan oleh penukar ini

ToolAcre melaksanakan UPPER dan lebih rendah dengan memanggil kaedah rentetan JavaScript yang sepadan pada input lengkap. Ia tidak melepasi tempat, memuatkan kamus bahasa atau meminta penukaran sebelah pelayan. Oleh itu, output ialah hasil kes lalai enjin pelayar, yang berguna untuk memeriksa gelagat aplikasi biasa tetapi bukan untuk memperakui tipografi khusus bahasa.

Perbezaan itu penting apabila menghasilkan semula pepijat. Rekod rentetan sumber yang tepat, ubah suai yang dipilih dan rentetan yang terhasil daripada melaporkan sahaja bahawa penggunaan huruf besar kelihatan salah. Jika kod pengeluaran menggunakan kaedah JavaScript lalai yang sama, penukar menawarkan perbandingan padat. Jika pengeluaran menggunakan API setempat, memadankan halaman ini bukanlah ujian penerimaan yang berkaitan.

Perkara yang tidak dicakupi ini — peraturan pembungkusan tajuk untuk digraf dan sejarah ibu kota ẞ

Butang Title Case ialah satu lagi transformasi dengan kontrak yang sengaja dihadkan. Ia mencari larian huruf, menggabungkan tanda atau apostrof, huruf besar huruf pertama dan huruf kecil yang lain. Ia tidak mempunyai kamus bahasa atau pengecualian panduan gaya, jadi akronim dan kata nama khas boleh berubah, manakala perkataan kecil seperti `of` dan `the` ditulis dengan huruf besar seperti perkataan lain.

Artikel ini tidak bergantung pada sejarah cadangan garis besar tentang modal yang tajam atau peraturan yang lebih luas untuk digraf selongsong tajuk, kerana kedua-duanya tidak ditubuhkan oleh sumber yang diperiksa. Subjek tersebut mungkin berharga dengan rujukan bebas, tetapi mereka tidak menerangkan fungsi yang dihantar. Di sini panduan yang boleh dipercayai adalah untuk menyemak setiap tajuk yang ditukar dan memulihkan ejaan yang disengajakan secara manual.

Tingkah laku huruf tajuk dalam alat ini, tanpa sejarah abjad yang tidak disokong

Cuba tiga semakan tertumpu dalam penukar huruf besar: huruf besar `straße`, huruf kecil perkataan Yunani yang mengandungi sigma besar dan jalankan sampel i bertitik dan tanpa titik melalui kedua-dua arah. Perhatikan rentetan sebenar daripada meramalkannya daripada bahasa Inggeris. Kemudian gunakan Buat asal antara percubaan supaya setiap keputusan bermula daripada teks asal dan bukannya transformasi lossy sebelumnya.

Pelajaran yang lebih luas adalah operasi: penukaran kes boleh mengubah panjang, meruntuhkan perbezaan dan bergantung pada konteks linguistik yang tidak diketahui oleh operasi lalai. Gunakan alat untuk mendedahkan tingkah laku tersebut, bukan untuk menjanjikan ketepatan penyetempatan sejagat. Kekalkan teks sumber, uji frasa sebenar yang lengkap dan gunakan semakan sedar setempat di mana-mana sahaja keputusan khusus bahasa diperlukan.