2009-10-09 7 views
5

Czy istnieje sposób na uzyskanie liter alfabetu w języku?C#: uzyskać litery alfabetu dla języka skandynawskiego?

Chcę zrobić stronicowanie i chcę pokazać np. 7 ostatnich liter alfabetu. Dla alfabetu holenderskiego t-z są ostatnie 7 liter, ale dla Szwecji jest to w-ö (co jest w x y z å ä ö).

Kiedy otrzymam to jako dane wejściowe, dla "normalnego" alfabetu z-a mogę wygenerować między sobą litery używając tabeli ASCII, ale dla Szwecji to nie zadziała.

+0

A niektóre języki nie mają nawet alfabetu ... – Gart

+0

hahaha , nie chcę tego znać :) – Michel

+0

Cóż, teraz, gdy o tym myślę, robię ... ciekawy: jak możesz mieć język bez alfabetu? – Michel

Odpowiedz

0

Tak aby oczyścić ten jeden w górę, myślę, że odpowiedź jest taka, że ​​nawet jeśli ograniczę się do języków zachodnich nie mogę zapytać .NET Framework dla litery alfabetu. Więc sam sporządziłem listę z listami, na szczęście były tylko cztery języki do zrobienia.

1

Nie sądzę, że to dostępne programowo domyślnie ale tutaj jest to dobry zestaw dokumentów referencyjnych na Evertype website

+0

+1, podczas gdy ja zalecałbym CLDR tam, gdzie było to możliwe, a CLDR obejmuje większą liczbę języków, zestaw Michaela jest dobry w posiadaniu reguł dotyczących liter w połowie zawartych w alfabecie (np. Po angielsku zwykle nie podajemy æ w alfabet, przynajmniej w zakresie współczesnego języka angielskiego, ale jest właściwie posortowany tak, jakby był "ae", podczas gdy ȝ nie jest już zawarty w alfabecie, ale sortuje między yi z). Podobnie jest z literami powszechnie używanymi w słowach wypożyczeń w niektórych językach i tymi, które zmieniły alfabet. Niezbyt często konieczne, aby wiedzieć, ale doskonałym źródłem, gdy jest. –

5

Do mojej najlepszej wiedzy, ani .NET ani Okna dostarczania tych informacji. Można go jednak znaleźć w Konsoli Unicode: CLDR database. Ten DB jest w rzeczywistości zestawem plików XML (po jednym dla każdego języka, nazwanym po skrócie), zawierającym wszystkie rodzaje informacji o lokalizacji. Kopalnia złota!

element/ldml/characters/examplarCharacters zawiera listę znaków używanych w danym języku. na przykład, dla szwedzkiego (sv.xml):

[a-v x-z å ä ö] 

Zauważ, że gdy mówisz „litery ASCII”, zdajesz sobie sprawę, jesteś ograniczając się do alfabecie łacińskim, prawda? Jeśli chodzi o CLDR, listy takie jak a-z są sekwencjami znaków Unicode, a nie tylko literami ASCII. na przykład, w języku rosyjskim (od ru.xml):

[а-е ё ж-я] 
+2

Ostrożnie!CLDR tak naprawdę nie zawiera wymaganych informacji. Na przykład dla języka niderlandzkiego element/ldml/characters/exemplarCharacters to [a ä be é ë fi í ï {ij} jo ö pu ú ü vz] (yikes!) Ale wierz mi, [az] jest tym, czego potrzebujesz na to pytanie. – Ruben

+0

Nie, nie ufam Tobie ;-) Chociaż akcentowane litery nie są powszechnie używane w samym języku, litery takie jak é nie są rzadkie w nazwach holenderskich (nie jestem pewien co do Holandii, ale na pewno dla Flamandzów (mówiąc po holendersku) belgijskie nl-BE) i według www.voornamen.com, Björn jest obecnie najpopularniejszym holenderskim imieniem dla dzieci –

+1

To prawda, ale nie ma to znaczenia dla pytania. Używane są akcentowane litery, ale nigdy nie są traktowane jako oddzielne litery do alfabetyzacji, w odróżnieniu od å ä i ö po szwedzku Filtrowanie po [a] po niderlandzku * musi * zawierać á à ä itd. (wystarczy sprawdzić słownik). – Ruben

1

I tak wyślesz listę strun do tłumaczy. Dla każdego języka witryny będziesz mieć jeden i każdy będzie znał odpowiedź na ich języki. Dlatego po prostu prześlij im łańcuch "a b c d e f g h i j k l m n o p q r s t u v w x y z" i udokumentuj to jako alpaka, który jest używany do stronicowania. Powinni być w stanie przetłumaczyć to dla ciebie. Pamiętaj, że możesz odzyskać wpisy, takie jak ... "x ij z" dla holenderskiego - "ij" jest wspólną pisownią pojedynczej litery IJ

Powiązane problemy