Android Sostituisci "..." con il carattere di puntini di sospensione


306

Dal momento che gli strumenti AVD 16 ricevo questo avviso:

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

nel mio strings.xml

a questa linea

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

Come posso sostituire ...? È letteralmente &#8230;?

Qualcuno potrebbe spiegare questa codifica?


Come nota, ho notato che alcuni dei file di stringa tradotti da Android usano ... stesso anziché l'entità Unicode. Dato che i file XML Android sono normalmente codificati in UTF-8 comunque, non vedo alcun motivo per non utilizzare il carattere stesso piuttosto che l'entità Unicode potenzialmente esoterica, soprattutto perché la maggior parte dei programmi di elaborazione testi attualmente supporta il correzione automatica di "..." a " ... "(Microsoft Word lo fa per impostazione predefinita, l'ultima volta che ho controllato).
JAB

In realtà sono tre punti (ASCII 46 / 0x26)? O ASCII 133 (un carattere)?
Peter Mortensen,

1
Alla risposta di un'altra domanda SO, c'è una spiegazione migliore di "Cambia ... in Unicode perché è meglio". stackoverflow.com/a/27984145/973919 In breve, impedisce ai tre punti di essere divisi su un testo a più righe (mostrando solo 1 o 2 punti) e in alcune tipografie sembra male vedere 3 punti.
xarlymg89,

Risposte:


538

&#8230;è l'unicode per " ... " quindi sostituiscilo. È meglio averlo come un carattere / simbolo di tre punti.


41
Perché è "migliore"? Ciò complica le cose quando si consegna il testo ai traduttori. Possiamo in qualche modo uccidere questo stupido avvertimento? Grazie
Swinefeaster il

25
@swinefeaster buono a sapersi :) ma dato che sono pagabili, sono anche
acquistabili

25
@swinefeaster È "meglio" in parte perché non si rompe ("..." potrebbe andare in giro ad esempio nel secondo periodo), e teoricamente le lingue potrebbero renderle diversamente (molte lingue asiatiche le mettono nel mezzo e sono più largo (corrisponde alla larghezza di un carattere)). La non rottura è utile ovunque, non sono a conoscenza del fatto che Android li renda correttamente in altre lingue, né sono a conoscenza dei caratteri UTF per questo scopo.
Groxx,

12
Avere "..." causa problemi di accessibilità. Android Talkback legge "Caricamento in corso ..." come "Caricamento in corso 3 periodi"
Mohammad Shabaz Moosa,

14
Sembra che il mio commento non sia stato chiaro. L'uso di "caricamento in corso ..." (3 punti) porta Talkback a dire "caricamento in 3 periodi" Uso di "Caricamento in corso & # 8230;" (puntini di sospensione) porta Talkback a dire "Caricamento" [Che è buono ..] Quindi, dovremmo usare sempre i puntini di sospensione
Mohammad Shabaz Moosa,

15

Per farla breve basta mettere &#x2026;in atto ...

Collegamento a Elenco entità caratteri XML

  • Guarda la colonna Unicode di HTML per la riga chiamata hellip

5
Inizialmente mi chiedevo perché l'hai usato &#x2026;quando l'avviso Eclipse dice di usare &#8230;ma il tuo link risponde. Vale a dire che la x indica un valore esadecimale e 8230 in decimale è 2026 in esadecimale.
k2col,

dove mettere questo & # x2026 qualsiasi posizione per questo.
Tushar Pandey,

@ TusharPandey- se il tuo codice è <string name = "search"> Ricerca in corso ... </string> allora sarà simile a <string name = "search"> Ricerca in corso & # x2026 </string>
Jadeye,

13

Se stai usando Eclipse, puoi sempre fare quanto segue:

  • Fare clic con il tasto destro del mouse sull'avvertimento
  • Seleziona "Correzione rapida" (il collegamento è Ctrl+ 1per impostazione predefinita)
  • Seleziona "Sostituisci con caratteri suggeriti"

Questo dovrebbe sostituire i tuoi tre punti con il carattere Unicode corretto per i puntini di sospensione.

Solo una nota: l'ultima versione di ADT (21.1) a volte non eseguirà correttamente l'operazione di sostituzione, ma le versioni precedenti non avevano problemi a farlo.

Questo è il personaggio:


Questo ha funzionato per me! Tuttavia non è successo nulla di "visivo" diverso dall'avvertimento scomparso e sto eseguendo ADT 22.2.1. Ma immagino che sia così :)
Ymerdrengene,

Non ha funzionato per me. Eclipse mi ha suggerito (non so perché) di surroudare il tag <resources> con un nuovo tag <element>.
Leonardo Raele,

Eclipse lo farà qualche volta se non si evidenzia esattamente l'area giusta. Mi trovo a evidenziare e provare a risolvere rapidamente due o tre volte prima che effettivamente dia il suggerimento giusto.
Michael Celey,

10

La soluzione al tuo problema è:

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

E cerca " puntini di sospensione ". Modificare il livello di avviso in " Informazioni " o " Ignora ".


8
Quei suggerimenti hanno senso. Ignorarli è solo una soluzione, se si è veramente sicuri, cosa si sta facendo. In questo caso, la sostituzione ha senso, quindi ignorare l'avviso non è buono.
Alexander Pacha,

Grazie! Proprio quello che stavo cercando. E questo è il posto giusto per fare ogni sorta di cose correlate (non ho bisogno di un computer per dirmi come si scrive, capitalizzare o punteggiare). Molto utile!
Scott Biggs,

3
questa non è una buona opzione per ignorare gli avvisi. è necessario correggere gli avvisi per risultati migliori.
Deepak,

1
Ad essere sincero, se il computer ti sta dicendo che hai scritto, scritto in maiuscolo o punteggiato qualcosa in modo errato, allora dovresti risolverlo. I suggerimenti sono utili al riguardo, sconsiglio di disabilitarli.
EpicPandaForce,

3

Questa risposta è indirettamente correlata a questa domanda:

Nel mio caso textView1.setTextView("done&#8230");stava mostrando qualche scatola / carattere cinese. Più tardi, ho verificato fileformat.infocosa rappresenta il valore e ho scoperto che si tratta di un personaggio Han. Quindi che si fa? Ho cercato "carattere ellisse fileformat.info" e poi tutto mi è diventato chiaro quando ho visto i suoi valori;

UTF-16 (hex) 0x2026 (2026)

UTF-16 (decimal) 8,230

Pertanto, sono disponibili diverse codifiche per rappresentare un carattere (ad es. 10 in decimale è rappresentato come A in hexa), quindi è molto importante sapere quando si scrive un carattere unicode, come la funzione di ricezione lo decodifica. Se decodifica come valore decimale, devi fornire un valore decimale, se accetta esadecimale, devi fornire esadecimale.

Nel mio caso, la funzione setTextView () accetta un valore codificato decimale ma stavo fornendo valori esadecimali, quindi ho ricevuto un carattere sbagliato.


3

Il collegamento di correzione rapida in Android Studio è Alt+ Enterper impostazione predefinita.


0

Meglio non ignorarlo come suggerito da alcuni, mi sembra. Usa Android Studio per correggerlo (piuttosto che digitare il codice carattere) e lo strumento sostituirà i tre punti con il carattere unicode a tre punti . Non confonderai i traduttori ecc.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.