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


14

Lavoro per un'azienda che ha iniziato a integrare sistemi informatici incorporati nei nostri prodotti che produciamo. Abbiamo una gamma piuttosto ampia di prodotti e sono distribuiti in tutto il mondo. Inoltre, abbiamo progettato alcune schede integrate che possono servire a molteplici scopi a seconda del firmware che è stato inviato al sistema. In questo modo non dobbiamo riprogettare l'hardware del nostro 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 del nostro hardware richiede un atto congressuale, 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à di un testo immesso dall'utente.

Attualmente, siamo stati in grado di archiviare il testo internazionale in risorse e solo i caratteri necessari sono compilati in immagini bitmap. Ciò significa che siamo stati in grado di memorizzare lingue altamente ideografiche 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 richiederà ai nostri utenti di inserire del testo, dovremo implementare un set di caratteri completo. Essendo principalmente uno sviluppatore di PC, ho abbastanza familiarità con ASCII, Unicode, UTF-8, ecc. Tuttavia, l'implementazione di un set di caratteri completo di una di queste lingue non è fattibile perché abbiamo una quantità limitata di FRAM sulla scheda per memorizzare i dati dei caratteri.

La mia direzione spera che esista un set di caratteri minimo che possa essere utilizzato per linguaggi altamente ideografici. Credo che ci sia un alfabeto fonetico per il giapponese (Hiragana?) Esistono alfabeti fonetici simili anche per le lingue cinese, coreana, vietnamita, ecc. E, in tal caso, i parlanti di queste lingue potrebbero comunicare con un set di caratteri così stretto? Sono abbastanza sicuro che la risposta a questa domanda sia "assolutamente no" ma è una domanda che vale la pena porre.

Il management ha stabilito un requisito "soft" per cui possiamo avere solo un set di caratteri limitato di circa 8.000 caratteri che copre tutte le principali lingue di uso comune. Se ciò non è possibile, dobbiamo cercare una forma di metodo alternativo per soddisfare le nostre esigenze sulla base delle nostre risorse hardware limitate.

Sono sicuro che questo problema deve essere stato risolto prima. Qualcuno ha esperienza di lavoro all'interno di tali vincoli mentre necessita di un ampio sistema di codifica di caratteri e caratteri? In tal caso, quali pepite di saggezza puoi offrire?


Né la Corea né il Giappone fanno parte del Sud-est asiatico. Appartengono a E Asia. Naturalmente se intendi S, SE ed E Asia, per favore scrivi così.
Lalala,

Risposte:


25

Questa è un'ottima domanda

Affrontare la tua risposta una lingua alla volta;

vietnamita

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

Tiếng Việt, fieno Việt ngữ, là di là di Sri Cà di Dio (così come Kinh) và là di là di chinh che c'è il Vietnam. Làâ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 consonante non standard e sei vocali non standard.

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

coreano

Il coreano è una brutta notizia. Il coreano è scritto attraverso 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 con jamo.

Un esempio di come appare il testo coreano:

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

Unicode ha 11.172 caratteri di blocco completati, ma se sei disposto a codificare la logica per comporre tu stesso i "blocchi" finali, puoi risparmiare notevolmente 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, hai bisogno di:

  • 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 questo è il migliore che avremo per ora).

giapponese

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

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

Esempio di scrittura obbligatoria:

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

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

Punteggiatura CKJ

Non un esperto in 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, abbiamo 7631 caratteri rimanenti nel nostro "budget". Sarà sufficiente coprire i caratteri cinesi?

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

Con oltre 100.000 caratteri esistenti, è sostanzialmente impossibile coprire completamente il set di caratteri cinesi, il sottoinsieme utilizzato attivamente è molto più piccolo. Si dice che 2000-3000 caratteri siano sufficienti per l'alfabetizzazione generale (HSK, test simile al TOEFL del cinese mandarino, richiede la 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 nella RPC, i secondi - a Taiwan), che differiscono per molti personaggi, restando 7600 simboli, direi, sarebbe sufficiente per coprire la maggior parte dei casi d'uso per entrambi i set di caratteri.

Sentiti libero di chiedere se hai qualche domanda!


5
Wow. Questa è probabilmente la migliore risposta che abbia mai ricevuto per qualsiasi domanda che ho pubblicato su SO. Oggi ho modificato questa domanda perché è stata lasciata in sospeso. Le nostre esigenze sono leggermente cambiate, ma conosco anche la natura dei nostri prodotti e prevedo che questo sarà un bisogno in futuro in un momento sconosciuto. Ottieni il +1 e rispondi al voto. Vorrei poterti dare anche più punti di quello. Grazie 1.000.000!
RLH,

Nessun amore per il tailandese?
Lalala,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.