web-dev-qa-db-ja.com

アクセント付き単語のアルファベット順のグループ化

UIには国のリストがあり、デザインプロトタイプでは国が頭文字でグループ化されています。国名は言語によって異なるため、グループも変更されます。これは、グループ自体が変わることも意味します。

一部の言語では、国名はアクセント付き文字で始まります。たとえば、英語ではオーストリア、ドイツ語ではÖsterreichです。これらの単語をグループ化することはどのように一般的ですか:Österreichは「O」グループまたは「Ö」グループに属すべきですか?国によって異なる伝統がありますか?

ポルトガル語の別の例:AlemanhaÁustriaはどちらもAで始まり、別のグループに属しているとは誰も予想しません。

19
ecc

diacritic が新しい文字を生成するか、単に同じ文字のバリエーションを生成するかは、言語に直接依存します。

フランス語(またはイタリア語、カタロニア語、ポルトガル語...)では、アクセント付き文字(À、É、Ê、Ô、Ôなど)は新しい文字を生成せず、同じ文字のバリエーションにすぎません。そのため、アクセント記号付きの文字で始まる単語は、同じアクセント記号なしの文字で始まる他の単語と同じように分類されます。

ドイツ語では、 mlaut は3つの異なる母音(Ä、Ö、およびÜ)を生成しますが、これらは異なる文字と見なすことができますが、単語をアルファベット順に並べ替えると、ウムラウトは通常、基礎となる母音と区別されません。

フィニッシュでは、ノルウェー語とデンマーク語ですが、Å、Öなどの文字は、実際にはAやOとは完全に異なる文字です。これらの言語では、通常、これらの文字で始まる単語に独自のカテゴリがあると考えられます。

ハンガリー語などの他の言語もあります。アクセント付き文字(á、é、ó、ú、ő、ű...など)は異なる文字ですが、通常はペアで照合されます(a /á、e /é、i /í)。 、o /ó、ö/ő、u /úおよびü/ű)辞書で。

ご覧のとおり、同じ文字(たとえばÖ)は言語によって扱いが異なる場合があります。UIの動作は、文字自体だけでなく、Wordの言語によっても調整する必要があります。

diacritics についてのウィキペディアのページを確認してください。アクセント記号付きの文字が、サポートする必要がある言語の新しい文字と見なされるかどうかがわかります。

  • 特定の言語の場合、アクセント付き文字が別の文字ではない場合、単語は同じカテゴリに属している必要があります。
  • 分音記号が新しい文字を生成する言語を処理する必要がある場合は、各言語を確認し、現地の一般的な方法を使用する必要があります。

異なるルールで複数の言語をサポートする必要がある場合は、i18nを専用ソリューションに委任する必要があります。これは、ご覧のとおり、非常に複雑になる可能性があるためです。

36
zakinster

ドイツ人として、私はこれがどのように扱われるかについて二つの方法を知っています。 「ö」は「百科事典」などでは「o」として扱われるか、「電話帳」などでは「oe」として扱われます。 「ß」は常に「ss」として扱われます。

ドイツのISO(DIN)でも、次の2つのバリアントを認識しています。DIN 5007バリアント1および2

ソフトウェア側では、MySQLのようなデータベース 照合が異なります

これについて明確な答えはありません。たぶん この表 は役立ちます(いいえ、正直なところ、事態はさらに悪化します)。

5
mrks

ルールは、ユーザーが期待する場所でユーザーが見つけられるように、名前をカテゴリーに入れてソートすることです。ユーザーの言語のルールに従います。たとえば、Ångströmのようなスウェーデン語の名前があり、ユーザーがイギリス人である場合、イギリスのユーザーが探す場所なので、Aという文字の下で並べ替えます。ユーザーがスウェーデン語の場合は、Zという文字の後に並べ替えます。

正しいルールを自分で理解することを忘れてください。言語がわからない場合はさらに複雑になります(ドイツ語のように、2つのまったく異なるシステムのどちらを適用するかを知る必要があります)。ご使用のオペレーティングシステムに、サポートする有用なライブラリがあるかどうかを確認してください。

4
gnasher729

デンマークのサイトでは同じ問題に直面し、混乱を避けるためにそれらを別々の文字としてグループ化しました。グループ化は、ユーザーが理解できる必要があります。

Gyldendal.dk authors list

3
Usman Mani

他の人が言ったことを述べるもう1つの方法は、使用する照合(テキストソート)アルゴリズムに依存するということです。各言語/方言/言語のバリエーションには、独自の照合アルゴリズムがあります[一部の言語には複数の言語があるという漠然とした記憶があります]。照合によっては、発音区別符号付きとなしの文字を同じ文字と見なします(例:xaxx、xáxy、xayy)。一部の照合では、それらを別の文字と見なします。

したがって、完全なソリューションでは、照合規則を「開いて」、内部を調べる必要があります。

文字列(国名)をブラックボックス照合アルゴリズム(お気に入りのプログラミング言語またはライブラリを形成する)で並べ替え、最初の文字[*]でグループ化することは、簡単で汚い解決策かもしれません。いくつかの文字が他の文字( 'A'、 'Á'、 'A'など)と混在する場合は、それらを同じ文字としてグループ化します。絶対確実ではありません。 :-)

[*]「最初の文字」には微妙な点があることに注意してください。最初のUnicodeコードポイント?最初のグリフ?最初のグリフクラスタ? Unicodeには結合文字があります...

更新:ちなみに、グループ化の問題を回避するために、UIを少し変更(?)することができます。グループ化が辞書のように特定の文字列をすばやく見つけるための方法である場合、別の方法として、すべての文字列(国名)をアルファベット順に並べ替えた(ページ番号付き?)長いリストにして、いくつかの見出しとリンクを選択する方法があります。それぞれ、リスト上の一致する場所に移動します。このような見出しは、単一の文字、またはその文字で始まる最初の文字列の最初の数文字です。ほぼ等間隔の見出しを選択すると効果的です。

例えば。 国の特定のリスト 、Afg ... Bhu ... Con ... Fra ... Hun ... Lib ...などの場合、それぞれ25文字列ごと。

注:単なるアイデアであり、使いやすさはテストされていません。詳細は練習問題として残しました;-)

2
Pablo H

Ä、Ö、Õ、Åなどはアクセント付きの文字ではありませんが、AやOとはまったく異なり、発音が異なる文字です。スウェーデン語とフィンランド語のアルファベットでは、「英語」の文字の最後にあります。 OとÖを混同して整理されたリストをいくつか見ましたが、これは混同するのと同じくらい混乱します。たとえば、sとkとしましょう。

アルファベットの観点だけで考える場合は、英語以外の文字を含む正式な標準を見つける必要があります。ユーザビリティの観点からは、アルファベット順がリストの使いやすさに大きな影響を与えるとは思いません。

たとえば、自国でどのキーワードを使用すればよいかわからない場合があります:オランダvs.オランダvs.オランダ。これはすばらしい記事です: https://www.smashingmagazine.com/2011/11/redesigning-the-country-selector/ リストを検索して同じ国の複数のキーワードをマッピングすることを提案します。

1
Boat

おそらく単純化しすぎたかもしれませんが、特定の言語の辞書を調べて、アルファベット順に並べるだけです。素敵なボックスには収まりません。異なる言語、異なるルール、私は疑っています...

1
Owen Parker