Quali sono i requisiti minimi e assoluti per contenere set di caratteri asiatici SE per un progetto di sistema integrato?

13

Lavoro per un'azienda che ha iniziato a integrare sistemi informatici incorporati nei nostri prodotti che produciamo. Abbiamo una vasta gamma di prodotti e sono distribuiti in tutto il mondo. Inoltre, abbiamo progettato alcune schede integrate che possono essere utilizzate per diversi scopi a seconda del firmware che è stato trasmesso al sistema. In questo modo non dobbiamo ridisegnare il nostro hardware del computer per i nostri vari prodotti: tutto ciò che dobbiamo fare è riscrivere il livello del firmware per soddisfare le esigenze specifiche del prodotto.

A causa di queste limitazioni hardware, la modifica dell'hardware richiede un atto di congresso, ma la scrittura di nuovo software è molto più semplice.

Uno dei nostri prodotti ha un nuovo requisito che non abbiamo dovuto implementare in precedenza, che è la necessità del testo immesso dall'utente.

Al momento, siamo stati in grado di memorizzare il testo internazionale nelle risorse e solo i caratteri dei caratteri necessari sono stati compilati per immagini bitmap. Ciò significa che siamo stati in grado di memorizzare linguaggi altamente ideografici come il testo cinese e giapponese in una quantità minima di spazio perché utilizziamo solo una percentuale molto piccola dell'intero set di lingue.

Poiché questo nuovo prodotto richiede che i nostri utenti inseriscano del testo, dovremo implementare un set di caratteri esteso. Essendo principalmente uno sviluppatore di PC, ho abbastanza familiarità con ASCII, Unicode, UTF-8, ecc., Tuttavia, l'implementazione di un set completo di caratteri di una di queste lingue non è fattibile perché abbiamo una quantità limitata di FRAM sulla scheda per memorizzare i dati del carattere.

Il mio management spera che ci sia un set di caratteri minimo che possa essere usato per linguaggi altamente ideografici. Credo che ci sia un alfabeto fonetico per il giapponese (l'Hiragana?) Ci sono alfabeti fonetici simili per le lingue cinese, coreano, vietnamita, ecc. E, in tal caso, i parlanti di queste lingue potrebbero comunicare con un set di caratteri così ristretto? Sono abbastanza sicuro che la risposta a questa domanda sia "assolutamente, no", ma è una domanda che vale la pena di porre.

La gestione ha stabilito un requisito "soft" che possiamo avere solo un set di caratteri limitato di circa 8000 caratteri che coprono tutte le principali lingue di uso comune. Se ciò non è possibile, dobbiamo cercare qualche forma di metodo alternativo per soddisfare le nostre esigenze in base alle nostre limitate risorse hardware.

Sono sicuro che questo problema doveva essere stato risolto prima. Qualcuno ha esperienza di lavoro all'interno di tali vincoli pur avendo bisogno di un esteso sistema di codifica di caratteri e caratteri? Se sì, quali pepite di saggezza puoi offrire?

    
posta RLH 11.07.2011 - 18:48
fonte

1 risposta

23

Questa è una domanda eccellente.

Per affrontare la tua risposta una lingua alla volta;

Vietnamita

Il vietnamita non usa più personaggi ideografici, ma il suo set di caratteri latini è piuttosto ampio: guarda l'esempio per vedere quanti segni diacritici usa:

Tiếng Việt, hay Việt ngữ, là ngôn ngữ của người Việt (người Kinh) và là ngôn ngữ chính thức tại Việt Nam. Đây là tiếng mẹ đẻ của khoảng 85% dân cư Việt Nam, cùng với gần ba triệu người Việt hải ngoại, mà phần lớn là người Mỹ gốc Việt. Tiếng Việt còn là ngôn ngữ thứ hai của các dân tộc thiểu số tại Việt Nam.

Il motivo è che ogni sillaba di Vietnames ha uno dei sei segni di tono che influiscono sulla pronuncia - oltre ad avere un glifo consonantico non standard e sei vocali non standard.

Unicode compone i segni di tono sulle vocali; se hai la capacità di comporre glifi, avrai solo 13 glifi extra per i vietnamiti, ma in caso contrario avrai bisogno di 1 consonante extra + 12 vocali * 6 toni + 6 nuove vocali senza tonalità = 79 glifi extra , in caso di downcase e maiuscolo.

coreano

Il coreano è una cattiva notizia. Il coreano è scritto con un alfabeto chiamato Hangul , che, pur essendo tecnicamente un alfabeto di sole 68 lettere (chiamato jamo), è in realtà scritto in blocchi di dimensioni sillabe, costruiti di jamo.

Un esempio di come appare il testo coreano:

한글 또는 조선글은 한국어의 고유 문자로서, 1443년 조선 제4대 임금 세종이 훈민정음(訓民正音)이라는 이름으로 창제하여 1446년에 반포하였다. 이후 한문을 고수하는 사대부들에게는 경시되기도 하였으나, 조선 왕실과 일부 양반층과 서민층을 중심으로 이어지다가 1894년 갑오개혁에서 한국의 공식적인 나라 글자가 되었고, 1910년대에 이르러 한글학자인 주시경이 '한글'이라는 이름을 사용하였다.

Unicode ha 11.172 caratteri di blocco completati - ma se sei disposto a codificare la logica per comporre i "blocchi" finali da solo, puoi risparmiare molto sul set di caratteri.

Fondamentalmente, tutte le sillabe possono essere divise in due categorie: consonante + vocale e consonante + vocale + finale, dove finale può essere una vocale, una consonante o un composito. Le sillabe CV sono costruite con C a sinistra e V a destra; Le consonanti CVF sono composte con blocco CV in alto (da sinistra a destra) e finale in basso.

Quindi, in sostanza, è necessario:

  • 19 iniziali, in due forme
  • 21 mediali, in due forme
  • 28 finali

per un totale di 108 simboli . (Non sono assolutamente sicuro che non ci siano "legature" in coreano, quindi a volte un blocco costruito sembra diverso dalla combinazione di componenti, ma per ora è il migliore che otterremo.

giapponese

Come hai giustamente notato, il giapponese ha un alfabeto fonetico - ma in realtà, non solo uno, ma due! Hiragana e Katakana sono sillabari, entrambi con 48 delle stesse sillabe, ma usati in diversi contesti (il katakana è usato per le parole straniere, l'hiragana è usato per la grammatica).

Purtroppo (per i nostri scopi), il giapponese è quasi impossibile scrivere completamente usando solo questi due alfabeti: i caratteri cinesi o kanji , come sono noti in questo contesto, sono essenziali per qualsiasi giapponese testo.

Esempio di scrittura obbligatorio:

仮名(かな)とは、漢字をもとにして日本で作られた文字のこと。現在一般には平仮名と片仮名のことを指す。表音文字の一種であり、基本的に1字が1音節をあらわす音節文字に分類される。漢字に対して和字(わじ)とも言う。ただし和字は和製漢字を意味する事もある。

Oltre a kanji, avrai bisogno di 103 glifi per mappare due alfabeti fonetici + 7 kanji comuni che non esistono in cinese.

Punteggiatura CKJ

Non è un esperto su questo, ma sia il cinese che il giapponese usano la punteggiatura classica, dell'Asia orientale. Unicode ha 64 simboli dedicati alla punteggiatura e ai simboli CJK.

cinese

Quindi, restano 7631 caratteri nel nostro "budget". Sarà sufficiente per coprire i caratteri cinesi?

漢字為上古時代的華夏族人所發明創製並作改進,目前确切歷史可追溯至約公元前1300年商朝的甲骨文、籀文、金文。再到秦朝的小篆,發展至漢朝隸變,至唐代楷化為今日所用的手寫字體標準——正楷。汉字是迄今为止连续使用时间最长的主要文字,也是上古时期各大文字体系中唯一传承至今的文字,期間東亞諸國都有一定程度地自行創製漢字。

Con oltre 100.000 caratteri esistenti, è essenzialmente impossibile per completamente coprire caratteri cinesi, il sottoinsieme utilizzato attivamente è molto più piccolo. Si dice che 2000-3000 caratteri siano sufficienti per l'alfabetizzazione generale (HSK, test del cinese mandarino simile al TOEFL, richiede una conoscenza di 2800 caratteri per il suo livello più alto, HSK Advanced), 4000-5000 caratteri sono sufficienti per una persona istruita.

Tenendo presente che esistono caratteri semplificati e tradizionali (i primi sono usati in PRC, quest'ultimo - in Taiwan), che differiscono per un sacco di caratteri, rimanendo 7600 simboli, direi, sarebbe appena sufficiente per coprire la maggior parte dei casi d'uso per entrambi i caratteri.

Sentiti libero di chiedere se hai qualche domanda!

    
risposta data 24.08.2011 - 18:54
fonte

Leggi altre domande sui tag