Android Замініть “…” символом еліпсису


306

Оскільки засоби AVD 16 отримую це попередження:

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

в моїх рядках.xml

на цій лінії

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

Як мені замінити ...? Це просто буквально &#8230;?

Може хтось пояснить це кодування?


Як зауваження, я помітив, що деякі перекладені рядкові файли Android використовують… себе, а не сутність Unicode. Зважаючи на те, що файли Android XML як правило кодуються в UTF-8, я не бачу причин не використовувати самого символу, а не потенційно-езотеричну сутність Unicode, тим більше, що більшість програм для обробки тексту в наші дні підтримують автокорегування "..." для " … "(Microsoft Word робить це за замовчуванням, востаннє перевіряв).
JAB

Це насправді три крапки (ASCII 46 / 0x26)? Або ASCII 133 (один символ)?
Пітер Мортенсен

1
У відповіді на інше питання ТА є краще пояснення, ніж "Змінити ... в Unicode, тому що краще". stackoverflow.com/a/27984145/973919 Коротше кажучи, це запобігає розбиванню трьох крапок на багаторядковий текст (показує лише 1 або 2 крапки), а в деяких типографіях погано бачити 3 крапки.
xarlymg89

Відповіді:


538

&#8230;є унікод для " ... ", тому просто замініть його. Краще мати його як один знак / символ, ніж три крапки.


41
Чому це "краще"? Це ускладнює речі при наданні тексту перекладачам. Чи можемо ми якось вбити це дурне попередження? Спасибі
свинячий

25
@swinefeaster добре знати :), але оскільки вони платні, вони теж
доступні

25
@swinefeaster Це "краще" частково, тому що воно не ламається ("..." може обернутися, наприклад, другий період), і теоретично мови можуть відображати їх по-різному (багато азіатських мов ставлять їх в середину, і вони ширше (відповідає ширині символів)). Не злам корисний скрізь, я не знаю, як Android відображає їх правильно в інших мовах, хоча я не знаю символів UTF для цієї мети.
Groxx

12
Наявність "..." викликає проблеми з доступністю. Android Talkback читає "Завантаження ..." як "Завантаження 3 періоду"
Mohammad Shabaz Moosa

14
Здається, мій коментар не був зрозумілим. Використання "завантаження ..." (3 крапки) призводить Talkback до "завантаження 3 періоду", використовуючи "Завантаження & # 8230;" (еліпсис) веде Talkback, щоб сказати "Завантаження" [Що добре ..] Отже, ми повинні використовувати еліпсис завжди
Mohammad Shabaz Moosa

15

Щоб зробити коротке, просто поставте &#x2026;на місце ...

Посилання на список об'єктів символів XML

  • Подивіться на Unicode стовпець HTML для рядка з ім'ям hellip

5
Я спочатку цікавився, чому ви використовували, &#x2026;коли попередження Eclipse говорить про використання, &#8230;але ваше посилання відповідає на це. А саме, що x означає шістнадцяткове значення, а 8230 в десятковій частині - 2026 у шістнадцятковій.
k2col

куди помістити це & # x2026 будь-яке місце для цього.
Тушар Пандей

@ TusharPandey- якщо ваш код <string name = "search"> Пошук ... </string>, він буде виглядати приблизно як <string name = "search"> Пошук & # x2026 </string>
Jadeye

13

Якщо ви використовуєте Eclipse, ви завжди можете зробити наступне:

  • Клацніть правою кнопкою миші на попередженні
  • Виберіть "Швидке виправлення" (ярлик є Ctrl+ 1за замовчуванням)
  • Виберіть "Замінити запропонованими символами"

Це повинно замінити три крапки правильним символом Unicode для еліпсису.

Лише зауваження: остання версія ADT (21.1) іноді не буде виконувати операцію заміни належним чином, але попередні версії не мали проблем із цим.

Це персонаж:


Це працювало для мене! Однак нічого "наочного" не сталося, окрім попередження, зникло, і я працюю ADT 22.2.1. Але я здогадуюсь, як це працює :)
ymerdrengene

Не працював для мене. Eclipse засудив мене (не знаю чому), щоб замінити тег <resources> на новий тег <element>.
Леонардо Раель

Затьмарення зробить це колись, якщо ви точно не виділите потрібну область. Я вважаю себе виділенням і намагаюся швидко виправити два-три рази, перш ніж це насправді робить правильну пропозицію.
Майкл Селі

10

Рішення вашої проблеми:

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

І шукайте " еліпсис ". Змініть рівень попередження на " Інформація " або " Ігнорувати ".


8
Ці пропозиції мають сенс. Просто ігнорувати їх - це лише рішення, якщо ви справді впевнені, що робите. У цьому випадку заміна має сенс, тому ігнорувати попередження не добре.
Олександр Пача

Дякую! Тільки те, що я шукав. І це місце, щоб робити всілякі пов’язані речі (мені не потрібен комп’ютер, щоб підказати, як написати, з великої літери або пунктувати). Дуже корисний!
Скотт Біггс

3
це не гарний варіант ігнорувати попередження. вам слід виправити попередження для кращих результатів.
Діпак

1
@ScottBiggs, щоб бути справедливим, якщо комп'ютер говорить вам, що ви написали, написали великі літери або прописали щось неправильно, то вам слід це виправити. У цьому плані корисні линзи, я раджу не відключати їх.
EpicPandaForce

3

Ця відповідь опосередковано пов'язана з цим питанням:

У моєму випадку textView1.setTextView("done&#8230");демонструвався якийсь коробковий / китайський характер. Пізніше я перевірив, fileformat.infoщо означає значення, і виявив, що це Хань. Отже, що робити? Я шукав "fileformat.info символ еліпса", і тоді мені все стало зрозуміло, як тільки я побачив його значення;

UTF-16 (hex) 0x2026 (2026)

UTF-16 (decimal) 8,230

Отже, у вас є кілька кодування для представлення символу (наприклад, 10 у десятковій частині представлено як A в гексах), тому дуже важливо знати, коли ви пишете символ Unicode, як функція прийому розшифровує його. Якщо воно розшифровується як десяткове значення, тоді ви повинні надати десяткове значення, якщо воно приймає шістнадцятковий, то вам слід надати шістнадцятковий.

У моєму випадку функція setTextView () приймає кодоване десяткове значення, але я надавала шістнадцяткові значення, тому я отримувала неправильний характер.



0

Краще не ігнорувати це так, як пропонують деякі, мені здається. Використовуйте Android Studio, щоб виправити це (замість того, щоб насправді вводити код символу), і інструмент замінить три крапки на триточний символ однокодування . Не буде заплутати перекладачів тощо.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.