curiozitate despre informarea sistemului cu privire la limba folosită de tastatură, pe Linux

13 views
Skip to first unread message

Cristian Secară

unread,
Apr 26, 2012, 12:10:19 PM4/26/12
to diacr...@googlegroups.com
Am o curiozitate: pe Linux, dacă am sistemul cu setările de locale pe
limba A și comut doar tastatura pe limba B, când sunt într-un editor de
text
- mai simplu
- mai deștept
textul pe care îl scriu primește cumva în mod automat vreo meta
informație de la tastatură în care să fie informat despre limba
tastaturii din acel moment ?

Cristi

--
Cristian Secară
http://www.secarica.ro

Iosif Fettich

unread,
Apr 26, 2012, 3:15:04 PM4/26/12
to diacr...@googlegroups.com
Bună seara,

> Am o curiozitate: pe Linux, dacă am sistemul cu setările de locale pe
> limba A și comut doar tastatura pe limba B, când sunt într-un editor de
> text
> - mai simplu
> - mai deștept
> textul pe care îl scriu primește cumva în mod automat vreo meta
> informație de la tastatură în care să fie informat despre limba
> tastaturii din acel moment ?

Mă tem că așa cum e formulată întrebarea, un răspuns pertinent e greu
înspre imposibil de dat.

Chiar trecînd peste amănuntul că textul e text și ca atare nu are vreun
rol activ ca să poată primi _el_ vreun imbold la acțiune și înțelegînd
deci că _aplicația_ (editorul) care generează textul ar putea fi informată
despre evenimentul "a fost acționată combinația de taste care în mediul
vizual X solicită schimbarea mapării de tastatură (sau s-a făcut acest
lucru cu ajutorul mausului, sau prin program, sau ...)", răspunsul
probabil că tot ar fi de genul „depinde“.

Depinde de aplicația care generează textul, de mediul în care lucrează și
de felul în care aplicația conlucrează cu mediul.

Uff...

Iosif Fettich

Mișu Moldovan

unread,
Apr 26, 2012, 3:30:46 PM4/26/12
to diacr...@googlegroups.com
On Thu, Apr 26, 2012 at 19:10, Cristian Secară <li...@secarica.ro> wrote:
> Am o curiozitate: pe Linux, dacă am sistemul cu setările de locale pe
> limba A și comut doar tastatura pe limba B, când sunt într-un editor de
> text
> - mai simplu
> - mai deștept
> textul pe care îl scriu primește cumva în mod automat vreo meta
> informație de la tastatură în care să fie informat despre limba
> tastaturii din acel moment ?

În Linux sunt multe editoare de text, ce folosesc diferite widget-uri
și biblioteci etc., deci e greu de generalizat... Pentru cazul tipic
al unui editor GTK+ (să zicem Gedit), editorul în sine nu are treabă
cu aranjamentul de tastatură folosit. Are cunoștință de opțiunile de
localizare ale utilizatorului în ideea de verifica ortografic textul,
dar din punctul de vedere al editorului este irelevant dacă
utilizatorul introduce acel text cu o tastatură românească sau cu una
personalizată utilizând doar accente moarte sau prin copy/paste.

Din punct de vedere al localizării, diferența dintre un editor simplu
și unul mai deștept e dată de verificarea ortografică, care de regulă
e automată, după opțiunile de localizare ale utilizatorului. Unele
softuri permit schimbarea limbii pentru verificarea ortografică
independent de opțiunile de localizare ale utilizatorului, iar cele
mai deștepte pot face verificare automată în mai multe limbi în
același text, de exemplu dacă se amestecă româna cu engleza și
franceza.

HTH,

--
mișu

Cristian Secară

unread,
Apr 26, 2012, 4:50:56 PM4/26/12
to diacr...@googlegroups.com
În data de Thu, 26 Apr 2012 22:15:04 +0300 (EEST), Iosif Fettich a
scris:

> Depinde de aplicația care generează textul, de mediul în care
> lucrează și de felul în care aplicația conlucrează cu mediul.

Mda. Curiozitatea asta provine printre altele de la situația din
Windows, unde o tastatură (fișierul .dll de mapare) conține un „LOCALE
ID”, anume codul de limbă pe care o deservește. Nu sunt conștient de
nicio aplicație care să țină cont de el și oricum mi se pare o
tâmpenie, pentru că dacă scriu în engleză de pe tastatura românească
ID-ul ăla devine inutil (engleza fiind cel mai simplu exemplu, nu mai
zic de alte limbi cu diacritice unde pot folosi tastele moarte).

De fapt, întrebarea mea are legătură cu cu totul altceva: scrierea unui
mesaj î sistemul GSM. Acolo în mod normal limba nu trebuie declarată,
dar sunt câteva situații care cer asta obligatoriu. Mă refer de exemplu
la un sistem dubios de codare a SMS-urilor denumit „National Language
Single Shift” și „National Language Locking Shift”, care folosește o
tabelă de substituție per caracter sau per mesaj, tabelă care este
definită per limbă, limbă a cărei incluziune trebuie cerută în mod
expres (iar tabela trebuie să se regăsească și la emițător și la
receptor). Standardul în cauză se numește 3GPP TS 23.038 iar acel
sistem de codare a fost adăugat de la versiuena 8.

Sistemul are șanse de funcționare pe un telefon unde limba este
cunoscută (declarată), dar are șanse zero de funcționare (zic eu) dacă
folosesc aplicația de pe PC cu care vine telefonul și unde scriu cu
tastatura fără să știe nimeni în ce limbă scriu, mai ales dacă mă
folosesc de tastele moarte. Cel puțin pe Windows.

Tot pentru SMS-uri mai există un standard, 3GPP TS 23.042, care
imaginează o metodă de compresie a textului bazat pe un dicționar de
cuvinte întâlnite uzual în schimburile de mesaje trimise prin SMS (se
pere că au făcut ei niște statistici). La fel, pentru ca sistemul să
funcționeze este obligatoriu ca limba mesajului să fie cunoscută în
prealabil (iar dicționarul trebuie să se regăsească și la emițător și
la receptor). Standardul înșiră diverse cuvinte pentru mai multe limbi.
La fel ca în primul caz, eu zic că sistemul este mort și inutil în
momentul în care mă apuc să scriu mesajele de pe PC (cum fac eu de
obicei).

Revenind, dacă ar fi o aplicație (ipotetic) pe Linux care să
deservească un telefon, mă întrebam dacă vreo componentă din Linux ar
avea cum să informeze aplicația despre limba de scriere, doar pe baza
tastaturii folosite în acel moment. Căutam o analogie de
funcționalitate pe baza unui exemplu cu un procesor de text.

Mișu Moldovan

unread,
Apr 26, 2012, 5:05:55 PM4/26/12
to diacr...@googlegroups.com

On Apr 26, 2012 11:51 PM, "Cristian Secară" <li...@secarica.ro> wrote:
[snip]


> Revenind, dacă ar fi o aplicație (ipotetic) pe Linux care să
> deservească un telefon, mă întrebam dacă vreo componentă din Linux ar
> avea cum să informeze aplicația despre limba de scriere, doar pe baza
> tastaturii folosite în acel moment. Căutam o analogie de
> funcționalitate pe baza unui exemplu cu un procesor de text.

Ce ai descris tu este ficțiune curată. Există programe în Linux ce interacționează cu anumite modele de telefoane, de exemplu gnokii pentru cele Nokia, dar mă îndoiesc că e vreunul care să implementeze niște standarde atât de obscure și nefolosite. Iar dacă ar face-o, ar folosi probabil același mecanism de detectare al limbii utilizatorului precum corectoarele ortografice, adică opțiunile de localizare, nu aranjamentul de tastatură.

Pentru cultura mea generală, există implementări practice pentru limba română ale celor două standarde?

Mulțam,

--
mișu

Cristian Adam

unread,
Apr 26, 2012, 5:39:14 PM4/26/12
to diacr...@googlegroups.com, Cristian Secară
On 26.04.2012 22:50, Cristian Secară wrote:
De fapt, întrebarea mea are legătură cu cu totul altceva: scrierea unui mesaj î sistemul GSM. Acolo în mod normal limba nu trebuie declarată, dar sunt câteva situații care cer asta obligatoriu. Mă refer de exemplu la un sistem dubios de codare a SMS-urilor denumit „National Language Single Shift” și „National Language Locking Shift”, care folosește o tabelă de substituție per caracter sau per mesaj, tabelă care este definită per limbă, limbă a cărei incluziune trebuie cerută în mod expres (iar tabela trebuie să se regăsească și la emițător și la receptor).

SMS-ul este o tehnologie învechită, în ziua de astăzi lumea folosește WhatsApp, nu SMS :-)

Uite ce răspund WhatsApp la întrebarea: „How is WhatsApp Messenger different from SMS?

„SMS is an older messaging system with a limited functionality and high cost. WhatsApp Messenger
aims to provide more at a lower cost. We are sure you and your friends will figure out the difference
between SMS and WhatsApp Messenger very quickly.


Este nevoie doar de acces la internet :-)

--
Cristian.

Cristian Secară

unread,
Apr 26, 2012, 5:39:50 PM4/26/12
to diacr...@googlegroups.com
În data de Fri, 27 Apr 2012 00:05:55 +0300, Mișu Moldovan a scris:

> Ce ai descris tu este ficțiune curată. Există programe în Linux ce
> interacționează cu anumite modele de telefoane, de exemplu gnokii
> pentru cele Nokia, dar mă îndoiesc că e vreunul care să implementeze
> niște standarde atât de obscure și nefolosite.

Obscure da, nefolosite nu m-aș aventura să zic, primul standard
menționat include suport pentru turcă, spaniolă, portugheză, bengală,
(de-acum citez din engleză) Gujarati, Hindi, Kannada, Malayalam, Oriya,
Punjabi, Tamil, Telugu, Urdu. Având în vedere că în standard scrie că
„Encoding of a message using the national locking shift mechanism is not
intended to be implemented until a formal request is issued by the
relevant national regulatory body.” mă gândesc că dacă cineva chiar a
cerut asta, apăi o și folosi cumva (mai puțin pentru turcă și spaniolă,
restul au cerut includerea limbii lor cândva în intervalul 2008-2010).

> Pentru cultura mea generală, există implementări practice pentru limba
> română ale celor două standarde?

Nu. În perioada asta mă preocupă găsirea unei metode de a înlătura
discriminarea la care sunt supuse unele limbi din zona noastră a
europei, printre care și româna, unde un mesaj scris corect (sau
cu alfabet chirilic de exemplu) poate include maxim 70 de caractere,
în raport cu majoritatea limbilor din vestul europei, unde un mesaj
scris corect poate include liniștit toate cele 160 de caractere per
flux de SMS.

Una dintre găselnițele lor este acel standard cu tabelă de substituție
și mă interesează să-i găsesc nod în papură ca să fie nevoie de altceva
mai bun :) (cum ar fi codarea SCSU, pare-se, ceva pur Unicode)
În anul 2012, o codare cu tabele de codare proprietare și per limbă mi
se pare o idioțenie, dar vorbind mai obiectiv, treaba cu scrisul de pe
PC mi se pare mai critic (sau copy & paste de aiurea, unde informația
despre limbă poate să lipsească sau să fie pusă la plezneală).

Cristian Secară

unread,
Apr 26, 2012, 5:59:25 PM4/26/12
to diacr...@googlegroups.com
În data de Thu, 26 Apr 2012 23:39:14 +0200, Cristian Adam a scris:

> SMS-ul este o tehnologie învechită, în ziua de astăzi lumea folosește
> WhatsApp <http://en.wikipedia.org/wiki/Whatsapp>, nu SMS :-)

În jurul meu diverși folosesc SMS-ul din plin, pe când de Whatsapp aud
acum pentru prima dată :) (iar foarte mulți au telefoane de la servici,
fără internet pe abonament și uneori cu telefoane fără capabilități de
internet)

Oricum, din ce observ, pe mine nu mă interesează. Este ceva care
trebuie instalat (n-am chef) și nu mi-e clar dacă „celălalt” nu trebuie
cumva să aibă un Whatsapp și pe aparatul lui.

Dar chiar și-așa, mă interesează principiul. SMS-ul este ceva încă
prezent și în forma tehnică actuală este discriminatoriu pentru unii
(mai ales în alte țări din zonă, nu îmi fac iluzii la noi).

Iosif Fettich

unread,
Apr 27, 2012, 2:41:07 AM4/27/12
to diacr...@googlegroups.com
Bună dimineața,

> Revenind, dacă ar fi o aplicație (ipotetic) pe Linux care să deservească
> un telefon, mă întrebam dacă vreo componentă din Linux ar avea cum să
> informeze aplicația despre limba de scriere, doar pe baza tastaturii
> folosite în acel moment.

E prea devreme pentru tot textul :), dar încerc să răspund la asta.

Pe de o parte, în mod cert aplicația poate afla care sînt toate setările
de tastatură și/sau locale valabile pentru ea, oricînd vrea ea.

Dacă (sau cît de ușor) s-ar putea „abona” la o „listă” prin care să fie
anunțată dacă ceva în zona asta se schimbă în cursul rulării - fără să
întrebe ea prin sistem - nu știu să spun.

Iosif Fettich

Paul Fogarassy

unread,
Apr 27, 2012, 3:30:46 AM4/27/12
to diacr...@googlegroups.com
>> Depinde de aplicația care generează textul, de mediul în care
>> lucrează și de felul în care aplicația conlucrează cu mediul.

> Mda. Curiozitatea asta provine printre altele de la situația din
> Windows, unde o tastatură (fișierul .dll de mapare) conține un „LOCALE
> ID”, anume codul de limbă pe care o deservește. Nu sunt conștient de
> nicio aplicație care să țină cont de el și oricum mi se pare o
> tâmpenie, pentru că dacă scriu în engleză de pe tastatura românească
> ID-ul ăla devine inutil (engleza fiind cel mai simplu exemplu, nu mai
> zic de alte limbi cu diacritice unde pot folosi tastele moarte).

Una dintre aplicaţiile pentru care contează limba în care este scris un text este cititorul de ecran. Acesta poate reproduce informaţia textuală prin voce sintetică sau pe un afişaj Braille. Dacă există informaţii cu privire la limba în care este scris textul, atunci aplicaţia poate (dacă este setată astfel) să aleagă corect vocea sintetică (nu să citească un text românesc cu o limbă engleză) sau poate folosi tabela Braille corectă, pentru că (în afară de majoritatea literelor) există diferenţe.

Unele editoare de text (inclusiv MS Word) interceptează evenimentul de schimbare a limbii tastaturii şi introduc taguri, care pot marca anumite porţiuni de text. Din păcate, nu este cea mai bună abordare, motiv pentru care nici nu prea este folosită.

p

_______________________
Dr.ing. Paul FOGARASSY
Director BAUM Engineering
tel. +40 729 099 260
www.baum.ro

Reply all
Reply to author
Forward
0 new messages