v36
v36 (2024-12-07)
Highlights for this release
This is a big release, featuring:
- Total redesign of the UI to a cleaner, more modern, more consistent and more accessible design. In addition, a customizable
themeColor
allows for a lot of customization (see livecodes.io/docs/configuration/configuration-object#themecolor). - Internationalization (i18n) support for the entire UI. The app can be displayed in multiple languages - currently 12. The new config option
appLanguage
allows setting the app language (see livecodes.io/docs/configuration/configuration-object#applanguage).
Credits:
A huge shout-out to our contributors for making this release possible!
- @gigamaster for the design and implementation of the new UI.
- @zyf722 for the i18n support.
Thank you :)
Bug Fixes
- App: do not clear console in style-only update (f6ebeb5)
- docs: align code block for e2e tests (751c766)
- docs: fix links to CDNs (4150510)
- services: fix CORS error in firefox when calling jsdelivr API (d00c7e5)
- ToolsPane: fix console themes (58da00c)
- UI: fix external resources screen styles in firefox (ff9f347)
- Templates modify React Native template till React Native Web supports React 19.
Features
- Config: add
appLanguage
config property to set i18n language (c682d7c) - Config: add
themeColor
config property to set theme color.
- abstract tag for innerHTML (7c942e3)
- add a script to generate English .ts and .json template from .html for i18n (7ab9473)
- add i18n integration for html pages (e426d0f)
- App: add console message (c17c4ed)
- export i18n keys in alphabetical order to have better diff (7c72fda)
- extract i18n from .ts files with translateString (1f1f507)
- i18n: add
getLanguageDirection
to get ltr/rtl layout (016b62c) - i18n: add
placeholder
as translatable attribute (6c9a27c) - i18n: add a ci script to push source texts to lokalise (0eaa5e7)
- i18n: add an
overwrite
flag fori18n-export
(eb9ba81) - i18n: add app language in editor settings (861a26b)
- i18n: add branching and rename
i18n-push-to-lokalise
(d304f09) - i18n: add i18n for loading screen (1ff478d)
- i18n: add i18n-import (83a040a)
- i18n: add i18n-lokalise-json (35471c7)
- i18n: add interpolation for element-level translation (647849a)
- i18n: add types for translation keys (d44159e)
- i18n: async lazy load i18n for language-info (a7bc906)
- i18n: change escapeValue to false to prevent HTML tag escaping (4d3c04b)
- i18n: change tag numbering to left-to-right in
abstractifyHTML
(f995c76) - i18n: change translate to support multiple properties (f482820)
- i18n: custom event driven translation (a6c60cf)
- i18n: deprecate outdated keys when importing (2c4b49a)
- i18n: enhance type-safety and intellisense of i18n (cb4d9d6)
- i18n: enhance type-safety for translateString (12bdeea)
- i18n: lazy-load i18n (56411fc)
- i18n: only allow supported appLanguages (4114d98)
- i18n: remove empty translation entries (5d05602)
- i18n: set
dir
based onappLanguage
(cf115c1) - i18n: string-level i18n (d01bab0)
- i18n: use ts to have type-safe translation (b38e1a9)
- i18n: utility function to support dynamically-added elements (fe69071)
- Import: import local files by dropping in editor (09c69f6)
- Import: improve file selection criteria on import (c96c541)
- load
appLanguage
ingetUserConfig
(2e73a96) - set document language with i18n (0149c4a)
- UI: add fallback when css masking is not supported (bde3df7)
- use i18next (73d74e2)