Android Zamień „…” na znak elipsy


306

Ponieważ narzędzia AVD 16 otrzymuję to ostrzeżenie:

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

w moim strings.xml

na tej linii

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

Jak wymienić ...? Czy to dosłownie &#8230;?

Czy ktoś mógłby wyjaśnić to kodowanie?


Jako notatkę zauważyłem, że niektóre z przetłumaczonych plików ciągów Androida używają… samego siebie, a nie jednostki Unicode. Biorąc pod uwagę, że i tak pliki XML systemu Android są normalnie kodowane w UTF-8, nie widzę powodu, aby nie używać samego znaku, a nie potencjalnie ezoterycznej jednostki Unicode, zwłaszcza że większość programów do edycji tekstu obsługuje obecnie autokorekty „...” na „ … ”(Microsoft Word robi to domyślnie, ostatnio sprawdziłem).
JAB

Czy to właściwie trzy kropki (ASCII 46 / 0x26)? Lub ASCII 133 (jeden znak)?
Peter Mortensen,

1
Przy odpowiedzi na inne pytanie SO istnieje lepsze wytłumaczenie niż „Zmień ... na Unicode, ponieważ jest lepszy”. stackoverflow.com/a/27984145/973919 Krótko mówiąc, zapobiega podziałowi trzech kropek na tekst wielowierszowy (pokazując tylko 1 lub 2 kropki), aw niektórych typografiach źle jest widzieć 3 kropki.
xarlymg89

Odpowiedzi:


538

&#8230;jest unicode dla „ ”, więc po prostu go zastąp. Lepiej jest mieć go jako jeden znak / symbol niż trzy kropki.


41
Dlaczego jest „lepiej”? To komplikuje sprawy, gdy podaje się tekst tłumaczom. Czy możemy jakoś zabić to głupie ostrzeżenie? Dzięki
świniowiec

25
@swinefeaster dobrze wiedzieć :) ale ponieważ są płatne, można je również uczyć :)
WarrenFaith

25
@swinefeaster Jest po części „lepszy”, ponieważ się nie psuje („...” może się owijać np. w drugim okresie), a teoretycznie języki mogą je renderować inaczej (wiele języków azjatyckich umieszcza je na środku, a są szerszy (dopasowuje szerokość znaku)). Nieprzerwanie jest przydatne wszędzie, nie wiem jednak, czy Android poprawnie renderuje je w innych językach, ani nie znam znaków UTF do tego celu.
Groxx,

12
Posiadanie „...” powoduje problemy z dostępnością. Android Talkback czyta „Ładowanie ...” jako „Ładowanie 3 okres”
Mohammad Shabaz Moosa

14
Wygląda na to, że mój komentarz nie był jasny. Użycie „ładowanie ...” (3 kropki) prowadzi Talkback do powiedzenia „ładowanie 3 okresu” Używanie „Ładowanie & # 8230;” (ellipsis) prowadzi Talkback do powiedzenia „Ładowanie” [Co jest dobre ..] Dlatego powinniśmy zawsze używać elipsy
Mohammad Shabaz Moosa

15

Krótko mówiąc, po prostu umieść &#x2026;...

Link do listy jednostek znaków XML

  • Spójrz na kolumnę HTML Unicode na wiersz o nazwie hellip

5
Początkowo zastanawiałem się, dlaczego użyłeś, &#x2026;gdy ostrzeżenie Eclipse mówi, aby użyć, &#8230;ale twój link na to odpowiada. Mianowicie, że x oznacza wartość szesnastkową, a 8230 w systemie dziesiętnym to 2026 w systemie szesnastkowym.
k2col

gdzie umieścić to & # x2026 dowolną lokalizację do tego.
Tushar Pandey

@ TusharPandey- jeśli kod jest <string name = "Wyszukiwanie"> Searching ... </ string> to będzie wyglądać mniej więcej tak <nazwa String = "poszukiwania"> & # x2026 wyszukiwania </ string>
Jadeye

13

Jeśli korzystasz z Eclipse, zawsze możesz wykonać następujące czynności:

  • Kliknij ostrzeżenie prawym przyciskiem myszy
  • Wybierz „Szybka poprawka” ( domyślnie skrót to Ctrl+ 1)
  • Wybierz „Zamień na sugerowane znaki”

To powinno zastąpić twoje trzy kropki odpowiednim znakiem Unicode dla elipsy.

Tylko uwaga: najnowsza wersja ADT (21.1) czasami nie wykonuje poprawnie operacji zamiany, ale wcześniejsze wersje nie miały z tym problemu.

To jest postać:


To zadziałało dla mnie! Jednak nic „wizualnego” się nie wydarzyło poza ostrzeżeniem, a ja korzystam z ADT 22.2.1. Ale chyba tak to działa :)
ymerdrengene

Nie działało dla mnie. Zaćmienie zasugerowało mi (nie wiem dlaczego), aby otoczyć tag <resources> nowym tagiem <element>.
Leonardo Raele,

Eclipse zrobi to kiedyś, jeśli nie podświetlisz dokładnie odpowiedniego obszaru. Podkreślam i próbuję szybko naprawić dwa lub trzy razy, zanim faktycznie pojawi się właściwa sugestia.
Michael Celey,

10

Rozwiązaniem Twojego problemu jest:

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

I wyszukaj „ elipsa ”. Zmień poziom ostrzeżenia na „ Informacje ” lub „ Ignoruj ”.


8
Te sugestie mają sens. Po prostu ich zignorowanie jest rozwiązaniem, jeśli naprawdę jesteś pewien, co robisz. W takim przypadku zamiana ma sens, więc zignorowanie ostrzeżenia nie jest dobre.
Alexander Pacha,

Dzięki! Właśnie tego szukałem. I to jest miejsce do robienia różnego rodzaju powiązanych rzeczy (nie potrzebuję komputera, aby powiedzieć mi, jak przeliterować, wielkich liter lub interpunkcji). Bardzo przydatne!
Scott Biggs,

3
nie jest to dobra opcja, aby zignorować ostrzeżenia. należy poprawić ostrzeżenia, aby uzyskać lepsze wyniki.
Deepak,

1
@ ScottBiggs, aby być uczciwym, jeśli komputer mówi ci, że przeliterowałeś, pisałeś wielką literą lub interpunkowałeś coś niepoprawnie, powinieneś to naprawić. Wskazówki są przydatne w tym względzie, odradzam ich wyłączanie.
EpicPandaForce

3

Ta odpowiedź jest pośrednio związana z tym pytaniem:

W moim przypadku textView1.setTextView("done&#8230");pokazałem trochę pudełkowego / chińskiego znaku. Później sprawdziłem, fileformat.infoco reprezentuje wartość, i odkryłem, że jest to postać Hana. Co więc robić? Szukałem „elipsy pliku fileformat.info”, a potem wszystko stało się dla mnie jasne, gdy zobaczyłem, że są takie wartości;

UTF-16 (hex) 0x2026 (2026)

UTF-16 (decimal) 8,230

Tak więc masz kilka dostępnych kodowań do reprezentowania znaku (np. 10 w systemie dziesiętnym jest reprezentowane jako A w heksie), więc bardzo ważne jest, aby wiedzieć, kiedy piszesz znak Unicode, w jaki sposób funkcja odbierająca go dekoduje. Jeśli dekoduje jako wartość dziesiętną, musisz podać wartość dziesiętną, jeśli akceptuje szesnastkowy, musisz podać wartość szesnastkową.

W moim przypadku funkcja setTextView () akceptuje wartości zakodowane dziesiętnie, ale podawałem wartości szesnastkowe, więc otrzymywałem zły znak.



0

Wydaje mi się, że najlepiej nie ignorować tego, jak sugerują niektórzy. Zastosowanie Android Studio to poprawić (zamiast faktycznie wpisując w kodzie znaków), a narzędzie zastąpi trzy kropki z trzy punktowym unicode charakter . Nie będzie mylące dla tłumaczy itp.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.