Implement custom i18n (#11047)
* add custom i18n functionality
* add changeset
* lint
* tweak example
* use i18n in launch instead of blocks
* fix test
* tweak
* lint
* - refactor i18n.ts for testing
- add i18n mock tests
* clean up
* clean up tweaks
* add locale reactivity
* fix py test
* casing tweaks
* clean up
* restore __call__
* i18n accordion
* add changeset
* doc tweak
* fix tests
* update types for label args
* add I18n typing to info
* more typing
* - update typing
- update props from backend
- update visible strings in frontend
* update demo with comments
* clean up
* tweaks
* tweak
* tweak
* tests
* add changeset
* lint
* lint
* fix tests
* add changeset
* fix typecheck
* fix type errors
* ruff
* hopefully fix type issue
* fix test
* init fix
* fixes
* tweak
* tweak
* test
* fix
* change implementation
* clean up
* unit test
* TranslationMetadata -> I18nData
* test
* test / tweaks
* test
* revert test
* test
* fix
* lint
* add i18n to mount_gradio_app
* add locale validation
* format
* Add i18n documentation
* init fix
* lint
* test without init
* tweak
* fix config init
* Update gradio/blocks.py
Co-authored-by: Abubakar Abid <abubakar@huggingface.co>
* Update gradio/blocks.py
Co-authored-by: Abubakar Abid <abubakar@huggingface.co>
* changes
* remove a couple comments
* tweaks
* lint
---------
Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com>
Co-authored-by: Abubakar Abid <abubakar@huggingface.co>