Android Ganti "..." dengan karakter elipsis


306

Karena alat AVD 16 saya mendapatkan peringatan ini:

Replace "..." with ellipsis character (..., …) ?

di strings.xml saya

pada baris ini

 <string name="searching">Searching...</string>

Bagaimana cara saya mengganti ...? Apakah secara harfiah &#8230;?

Bisakah seseorang menjelaskan pengkodean ini?


Sebagai catatan, saya perhatikan bahwa beberapa file string terjemahan Android sendiri menggunakan ... itu sendiri daripada entitas Unicode. Mengingat bahwa file Android XML biasanya dikodekan dalam UTF-8, saya tidak melihat alasan untuk tidak menggunakan karakter itu sendiri daripada entitas Unicode yang berpotensi esoterik, terutama karena kebanyakan program pengolah kata hari ini mendukung koreksi otomatis "..." ke " ... "(Microsoft Word melakukannya secara default, terakhir saya periksa).
JAB

Apakah ini sebenarnya tiga titik (ASCII 46 / 0x26)? Atau ASCII 133 (satu karakter)?
Peter Mortensen

1
Pada jawaban pertanyaan SO lainnya, ada penjelasan yang lebih baik daripada 'Ubah ... menjadi Unicode karena itu lebih baik'. stackoverflow.com/a/27984145/973919 Singkatnya, ini mencegah tiga titik terpecah pada teks multi-garis (menunjukkan 1 atau 2 titik saja) dan dalam beberapa tipografi terlihat buruk untuk melihat 3 titik.
xarlymg89

Jawaban:


538

&#8230;adalah unicode untuk " ... " jadi ganti saja. Lebih baik memilikinya sebagai satu karakter / simbol daripada tiga titik.


41
Mengapa "lebih baik"? Hal ini menyulitkan saat memberikan teks kepada penerjemah. Bisakah kita membunuh peringatan bodoh ini? Terima kasih
swinefeaster

25
@swinefeaster senang mengetahui :) tetapi karena mereka dibayar, mereka juga dapat diajar :)
WarrenFaith

25
@swinefeaster Ini "lebih baik" sebagian karena tidak rusak ("..." mungkin membungkus misalnya periode kedua), dan secara teoritis bahasa dapat membuat mereka berbeda (banyak bahasa asia menempatkannya di tengah dan mereka lebih luas (cocok dengan lebar karakter)). Non-breaking berguna di mana-mana, saya tidak menyadari Android membuat mereka dengan benar di langs lain, saya juga tidak mengetahui karakter UTF untuk tujuan ini.
Groxx

12
Memiliki "..." menyebabkan masalah aksesibilitas. Android Talkback membaca "Memuat ..." sebagai "Memuat 3 periode"
Mohammad Shabaz Moosa

14
Sepertinya komentar saya tidak jelas. Menggunakan "memuat ..." (3 titik) mengarahkan Talkback untuk mengatakan "memuat 3 periode" Menggunakan "Memuat & # 8230;" (ellipsis) mengarahkan Talkback untuk mengatakan "Memuat" [Yang bagus ..] Jadi, kita harus selalu menggunakan ellipsis
Mohammad Shabaz Moosa

15

Untuk membuat hal pendek cukup taruh &#x2026;...

Tautan ke Daftar Entitas karakter XML

  • Lihatlah kolom Unicode HTML untuk baris bernama hellip

5
Saya awalnya bertanya-tanya mengapa Anda menggunakan &#x2026;ketika peringatan Eclipse mengatakan untuk menggunakan &#8230;tetapi tautan Anda menjawabnya. Yaitu bahwa x menandakan nilai hex dan 8230 dalam desimal adalah 2026 dalam hex.
k2col

tempat meletakkan ini & # x2026 lokasi apa pun untuk ini.
Tushar Pandey

@ TusharPandey- jika kode Anda <string name = "search"> Mencari ... </string> maka akan terlihat seperti <string name = "searching"> Mencari & # x2026 </string>
Jadeye

13

Jika Anda menggunakan Eclipse maka Anda selalu dapat melakukan hal berikut:

  • Klik kanan pada peringatan itu
  • Pilih "Perbaikan Cepat" (pintasan adalah Ctrl+ 1secara default)
  • Pilih "Ganti dengan karakter yang disarankan"

Ini harus mengganti tiga titik Anda dengan karakter Unicode yang tepat untuk ellipsis.

Hanya sebuah catatan: Versi terbaru ADT (21.1) terkadang tidak akan melakukan operasi penggantian dengan benar, tetapi versi sebelumnya tidak memiliki masalah melakukan hal ini.

Ini karakternya:


Ini berhasil untuk saya! Namun tidak ada "visual" yang terjadi selain peringatan yang hilang, dan saya menjalankan ADT 22.2.1. Tapi saya kira itulah cara kerjanya :)
ymerdrengene

Tidak berhasil untuk saya. Eclipse menyarankan saya (saya tidak tahu mengapa) untuk mengelabui tag <resources> dengan tag <element> baru.
Leonardo Raele

Eclipse akan melakukannya kapan saja jika Anda tidak benar-benar menyorot area yang tepat. Saya menemukan diri saya menyorot dan mencoba untuk memperbaiki dua atau tiga kali sebelum itu benar-benar membuat saran yang tepat.
Michael Celey

10

Solusi untuk masalah Anda adalah:

Go to Window -> Preferences -> Android -> Lint Error Checking

Dan cari " elipsis ". Ubah level peringatan menjadi " Info " atau " Abaikan ".


8
Saran-saran itu masuk akal. Mengabaikan mereka hanyalah solusi, jika Anda benar-benar yakin, apa yang Anda lakukan. Dalam hal ini, penggantian itu masuk akal, jadi mengabaikan peringatan itu tidak baik.
Alexander Pacha

Terima kasih! Apa yang saya cari. Dan itu adalah tempat untuk melakukan segala macam hal terkait (saya tidak perlu komputer untuk memberi tahu saya cara mengeja, menggunakan huruf besar, atau membubuhkan tanda baca). Sangat berguna!
Scott Biggs

3
ini bukan pilihan yang baik untuk mengabaikan peringatan. Anda harus memperbaiki peringatan untuk hasil yang lebih baik.
Deepak

1
@ScottBiggs agar adil, jika komputer memberi tahu Anda bahwa Anda telah mengeja, menggunakan huruf besar, atau memberi tanda baca pada sesuatu yang salah, maka Anda harus memperbaikinya. Serat berguna dalam hal itu, saya menyarankan agar tidak menonaktifkannya.
EpicPandaForce

3

Jawaban ini secara tidak langsung terkait dengan pertanyaan ini:

Dalam kasus saya textView1.setTextView("done&#8230");menunjukkan beberapa karakter kotak / Cina. Kemudian, saya memeriksa fileformat.infonilai yang diwakilkan dan saya menemukan ini adalah karakter Han. Jadi, apa yang harus dilakukan? Saya mencari "karakter elips fileformat.info" dan kemudian semuanya menjadi jelas bagi saya setelah saya melihat nilainya;

UTF-16 (hex) 0x2026 (2026)

UTF-16 (decimal) 8,230

Jadi, Anda memiliki beberapa pengkodean yang tersedia untuk mewakili karakter (mis. 10 dalam Desimal direpresentasikan sebagai A dalam heksa) sehingga sangat penting untuk mengetahui kapan Anda menulis karakter unicode, bagaimana fungsi penerima menerjemahkannya. Jika itu diterjemahkan sebagai nilai desimal maka Anda harus memberikan nilai desimal, jika itu menerima heksadesimal maka Anda harus memberikan heksadesimal.

Dalam kasus saya, fungsi setTextView () menerima nilai dikodekan desimal tapi saya memberikan nilai heksadesimal jadi saya mendapatkan karakter yang salah.



0

Lebih baik tidak mengabaikannya seperti yang disarankan oleh beberapa orang, menurut saya. Gunakan Android Studio untuk memperbaikinya (daripada benar-benar mengetik kode karakter), dan alat akan mengganti tiga titik dengan karakter unicode tiga titik . Tidak akan membingungkan penerjemah dll.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.