2011-07-27 10 views
6

Chcę konwertować cyfry na inne cyfry językowe, w jaki sposób mogę to zrobić?cyfry kodek zamieniany na inne cyfry langauge

Chcę być w stanie obsługiwać jak najwięcej języków (języki obsługiwane przez obsługę google). Czytałem i wierzę, że można to zrobić z poziomu kodu.

Oto kod, który skopiowałem z jakiejś aplikacji JavaScript, ale obsługuje on tylko 2 języki.

TextTools.arabicNumber = function (str) { 
    var res = String(str).replace(/([0-9])/g, function (s, n, ofs, all) { 
     return String.fromCharCode(0x0660 + n * 1); 
    }); 
    return res; 
} 
TextTools.farsiNumber = function (str) { 
    var res = String(str).replace(/([0-9])/g, function (s, n, ofs, all) { 
     return String.fromCharCode(0x06F0 + n * 1); 
    }); 
    return res; 
} 

Odpowiedz

9

Problem już został rozwiązany, wystarczy spojrzeć na standard Unicode, aby znaleźć inne znaki liczbowe. Możesz sprawdzić Code Charts lub po prostu użyć Wikipedia dla zakresów znaków. Kilka interesujących rzeczy do zapamiętania, jednak:

Nie każdy język/kultura używa dziesiętnego systemu numerów pozycyjnych, chociaż większość istniejących robi. Będziesz chciał sprawdzić, czy symbole liczbowe są używane w taki sam sposób, jak na Zachodzie, aby upewnić się, że wszystko jest poprawne. Z tego, co wiem, liczby japońskie lub koreańskie są zapisywane przy użyciu innego systemu, ale używają liczb zachodnich w innych kontekstach w ten sam sposób, co Zachód. Musisz to wszystko zweryfikować, aby upewnić się, że masz poprawnie działający system.

Ale z punktu widzenia technicznego tłumaczenia, zakładając, że zamierzasz przekonwertować zachodnie cyfry na cyfry w innym skrypcie, masz to ustalone.

ETA: W odniesieniu do komentarza rozważmy przypadek traditional Hebrew numbers. Liczby są tworzone jako jednostki + dziesiątki + setki (w rzeczywistości setki + dziesiątki + jednostki podczas czytania od prawej do lewej). Tak więc 456 staje się 400 + 50 + 6, lub w języku hebrajskim, תנו.

+0

Nie to nie jest mój kod, mam go z innej strony internetowej i dodano tutaj na przykład użycie. OK, powiedzmy, że chcę dodać liczby hebrajskie, jak mogę to zrobić na podstawie podanego kodu? – Basit

+0

Sprawdź ten link http://www.i18nguy.com/unicode/hebrew-numbers.html. Wydaje się, że tradycyjne liczby hebrajskie nie są pozycyjne, lecz addytywne, więc budujesz je tak, jakbyś liczył rzymskie. Nowoczesne liczby hebrajskie są wykonywane za pomocą cyfr zachodnich. –

+0

ostatnia rzecz. podany link wykresów kodów, głównie listów. możesz podać inny link wykresu kodowego, który podaje również liczby dla większości dostępnych języków. – Basit

2

Nie jestem pewien, czy powstanie ogólne rozwiązanie dla wielu języków. Nie mam dobrego zrozumienia, ale jak ludzie zauważyli w hebrajskiej dyskusji, jeśli postacie są inne, kolejność lub interpretacja jest prawdopodobnie inna. Jak się nauczyłeś w szkole podstawowej, istnieje proste tłumaczenie na liczby rzymskie, ale nie jest to tylko transformacja między postaciami. Myślę, że musisz kierować reklamy na określone języki i skonsultować się z ekspertem (lub wikipedią), aby zbudować kod dla każdego z nich.

Pomyślałem, że może tłumaczenie google będzie wiedzieć, jak to zrobić, ale wygląda na to, że nie z quick check. Popraw mnie, jeśli się mylę.

Ale dla tych, które są po prostu transliteracje, oto Unicode numery asortyment językach: roman numerals, Tamil, Arabic, Devanagari, Bengali, Gurmukhi, Gujarati, Thai, Tibetan, Mongolian, Hangzhou itp Łatwo jest znajdź więcej, używając tego narzędzia, które napisałem.

+0

ya google nie tłumaczyć liczb, inaczej nie myślałem o pisanie własnych. btw twoje narzędzie jest naprawdę dobre, naprawdę to lubię. tylko jedną rzecz, jak mogę znaleźć pełną listę obsługiwanych języków, więc mogę też zajrzeć do nich. Próbowałem pisać arabski, który nie działał, potrzebują specjalnej nazwy uniqe, żeby się pojawił, więc zastanawiam się, gdzie jest pełna lista nazw. – Basit