Androidは「…」を省略記号で置き換えます


306

AVDツール16以降、次の警告が表示されます。

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

私のstrings.xmlに

この線で

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

どうすれば交換でき...ますか?文字通り&#8230;ですか?

誰かがこのエンコーディングを説明できますか?


注として、Android独自の翻訳された文字列ファイルの一部が…自体ではなくUnicodeエンティティを使用していることに気付きました。とにかくAndroid XMLファイルは通常UTF-8でエンコードされているので、特に最近のほとんどのワードプロセッシングプログラムは "..."から ""への自動修正をサポートしているため、潜在的に難解なUnicodeエンティティではなく文字自体を使用しない理由はありません。 … "(Microsoft Wordはデフォルトでこれを行いますが、最後に確認しました)。
JAB 2014

実際には3つのドット(ASCII 46 / 0x26)ですか?またはASCII 133(1文字)?
Peter Mortensen 2017年

1
別のSOの質問の答えには、「Unicodeに変更する方が良いので、それを変更する」よりも優れた説明があります。stackoverflow.com/a/27984145/973919つまり、3行のドットが複数行のテキストで分割されるのを防ぎ(1または2ドットのみを表示)、一部のタイポグラフィでは3行のドットが見えにくいように見えます。
xarlymg89

回答:


538

&#8230;」のユニコードなので、単に置き換えてください。3つのドットよりも、1つの文字/記号である方が適切です。


41
なぜ「より良い」のですか?これは、翻訳者にテキストを渡すときに事態を複雑にします。どういうわけか、この愚かな警告を殺すことができますか?ありがとう
swinefeaster 2012年

25
@swinefeaster知っておくと役に立ちます:)しかし、支払いが可能なため、教えることもできます:)
WarrenFaith

25
@swinefeaster壊れないため( "..."は2番目のピリオドなどで折り返される可能性があるため)部分的には "良い"であり、理論的には言語によってレンダリングが異なる可能性があります(多くのアジア言語はそれらを中央に配置し、幅が広い(文字幅に一致))。改行なしはどこでも役に立ちますが、Androidが他の言語で正しくレンダリングすることは知りませんし、この目的のためのUTF文字も知りません。
Groxx 2013

12
「...」があると、アクセシビリティの問題が発生します。Androidトークバックは「読み込み中...」を「読み込み中3期間」と読みます
Mohammad Shabaz Moosa

14
私のコメントは明確ではなかったようです。「loading ...」(3つのドット)を使用すると、トークバックは「loading 3 period」と発声し、「Loading&#8230;」を使用します。(省略符号)トークバックを「読み込み中」と表示します[どちらがいいですか..]したがって、常に省略符号を使用する必要があります
Mohammad Shabaz Moosa

15

短くするために置くだけ&#x2026;で......

XML文字エンティティリストへのリンク

  • hellipという名前の行のHTMLのUnicode列を見てください

5
&#x2026;Eclipseの警告で「使用する」と表示されているのになぜ使用したのか疑問に思いました&#8230;が、リンクでそれを解決できます。つまり、xは16進数の値を示し、10進数の8230は16進数の2026です。
k2col 2014年

これを配置する場所&#x2026これの任意の場所。
Tushar Pandey 2015

@ TusharPandey-コードが<string name = "searching"> Searching ... </ string>の場合、<string name = "searching"> Searching&#x2026 </ string>のようになります
Jadeye

13

Eclipseを使用している場合は、いつでも次のことができます。

  • 警告を右クリック
  • 「Quick Fix」を選択します(ショートカットはデフォルトでCtrl+ 1
  • 「推奨文字に置き換える」を選択します

これにより、3つのドットが省略記号の適切なUnicode文字に置き換えられます。

注意:最新バージョンのADT(21.1)では、置換操作が適切に実行されない場合がありますが、以前のバージョンでは、これを実行しても問題はありませんでした。

これはキャラクターです:


これは私のために働いた!しかし、警告が消えたこと以外は何も「視覚的」には何も起こらず、ADT 22.2.1を実行しています。しかし、私はそれがどのように機能するかを推測します:)
ymerdrengene '20

私のために働いていませんでした。Eclipseは、<resources>タグを新しい<element>タグで囲むように私(なぜだかわかりません)を要求しました。
Leonardo Raele 2014

Eclipseは、適切な領域を正確に強調表示しないと、いつかそれを行います。実際に正しい提案をする前に、2〜3回強調表示してすばやく修正しようとしていることに気づきました。
Michael Celey 2014

10

あなたの問題の解決策は:

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

そして、「省略」を検索します。警告レベルを「情報」または「無視」に変更します。


8
これらの提案は理にかなっています。単にそれらを無視することは解決策にすぎません。本当に確信がある場合は、あなたが何をしているのですか。この場合、置き換えは理にかなっているため、警告を無視するのはよくありません。
Alexander Pacha

ありがとう!まさに私が探していたもの。そして、それはあらゆる種類の関連することを行う場所です(私はスペル、大文字、または句読点の方法を教えるためにコンピュータを必要としません)。非常に便利!
Scott Biggs 2013年

3
これは警告を無視するのに適したオプションではありません。より良い結果を得るには、警告を修正する必要があります。
ディーパック、2015年

1
@ScottBiggsは公平である必要があります。コンピューターが、スペル、大文字、句読点のいずれかが間違っていることを通知している場合は、修正する必要があります。Lintsはその点で便利です。無効にすることはお勧めしません。
EpicPandaForce 2015年

3

この回答は、この質問に間接的に関連しています。

私の場合textView1.setTextView("done&#8230");、ボックス/中国語の文字が表示されていました。後で、fileformat.info値が何を表しているかを調べたところ、これは漢字であることがわかりました。じゃあ何をすればいいの?"fileformat.info ellipse character"を検索したところ、その値がわかると、すべてが明らかになりました。

UTF-16 (hex) 0x2026 (2026)

UTF-16 (decimal) 8,230

したがって、文字を表すためにいくつかのエンコーディングを使用できます(たとえば、10進数では10はヘキサではAとして表されます)。Unicode文字を書き込むときに、受信側関数がそれをどのようにデコードするかを知ることが非常に重要です。10進値としてデコードする場合は10進値を提供する必要があり、16進を受け入れる場合は16進値を提供する必要があります。

私の場合、setTextView()関数は10進数でエンコードされた値を受け入れますが、16進数の値を指定していたため、間違った文字を取得していました。



0

一部の人が示唆するように、それを無視しないことをお勧めします。(実際に文字コードを入力するのではなく)Android Studioを使用して修正すると、ツールは3つのドットを3つのドットのUnicode 文字に置き換えます。翻訳者などと混同しないでください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.