Comments (6)
This is an intentional limitation.
Unicode, in its entirety, is staggering in scope. While supporting some subset of Unicode, someday, is not impossible, it would introduce a daunting amount of complexity. For pixel-perfect cross-platform results, Decker uses custom text layout routines and its own collection of bitmapped fonts, which would both need to be extended to include new glyphs for most non-English languages, and I'd also need to adapt the touch keyboard to permit entering those new glyphs.
Supporting UTF-8 in Lil itself isn't as bad, but it would introduce impedance mismatches between Lil and Decker. For example, it would no longer necessarily be the case that a Lil string or a Lil identifier is displayable in Decker. Lil can presently manipulate UTF-8 data as raw bytes using the "array" interface, but in many ways this is less convenient than working with ordinary strings.
For displaying text in Decker, some workarounds are possible; Decks can include custom fonts, and "rich text" fields can include inline bitmaps and reference different fonts for a given span, but copying and pasting "blended" text would reveal the underlying ASCII. There is some precedent for "normalizing" Unicode characters to ASCII equivalents on input (presently Decker "straightens" curly-quote characters, for example), but I doubt that applying this approach to letters would make users of languages with diacritics very happy.
from decker.
What we don't want is Decker would become bloated, so I'm fine with this limitation!
from decker.
No. Including UniFont would increase the baseline size of web-decker by multiple megabytes for a single font, and as previously stated I do not wish to drag in all the text layout and string manipulation complications of Unicode.
If future versions of Decker support non US-ASCII characters, I'm much more inclined to pursue an equivalent of MacRoman's extended code page and convert to and from UTF-8 at the periphery of the system; it would be possible to support French, German, Spanish, Portuguese, and a handful of other major western languages with relatively sparing changes to text layout and string representations.
from decker.
sure, I understand, it quite beyond the scope of Decker. We'll deal with it :)
from decker.
Thanks for your understanding. I do apologize for the accessibility limitations of this constraint.
from decker.
@JohnEarnest would you accept a PR for this? I think UniFont might be a good fit for decker.
from decker.
Related Issues (20)
- Add markdown support HOT 3
- Weird issue with importing CSV files in Native-Decker HOT 2
- Translate function on images behaving differently between C and Javascript versions (and I think the JS one is incorrect) HOT 1
- Consider a no-redraw-on-idle mode? HOT 3
- [C-decker] font interface: incorrectly specifying size crashes decker HOT 2
- Doc says to use canvas.tri[], but should be canvas.poly[] HOT 3
- Sharp canvas pixels for the web HOT 5
- Compilation issues on MacOS Ventura HOT 3
- Cannot install under macOS
- Persistent extremely loud clicking noise when opening on linux HOT 11
- auto-focus the editor when editing a script HOT 2
- feature request: modified click to edit widgets HOT 3
- bug: current line in transparent grid is unreadable HOT 2
- drawing with the menu hidden seems to still allow interaction with the menu HOT 1
- tap to click doesn't show menus HOT 2
- icon?
- configurable home/end behavior HOT 3
- Desktop Version Collision Problems: Draggable functions working improperly HOT 1
- Official prebuild release HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from decker.