Long-term goals of typesafe-i18n
#324
Replies: 4 comments 8 replies
-
Hi! I just stumbled upon your project. For the topic of collaboration service, my previous employer have created an open source tool just for this. I'll leave a few links below in case you think it might align with your vision! https://www.accent.reviews/ They also support "live" visual editing for non technical people: |
Beta Was this translation helpful? Give feedback.
-
I'm quite excited about this one, as in my experience it's the biggest missing part of typesafe-i18n and i18n in general. |
Beta Was this translation helpful? Give feedback.
-
Just wanted to mention that i18next is getting more type-safety built-in since v22, haven't had the time so far to try the new type stuff out but it looks pretty good and i18next has a big ecosystem. Don't wanna make this project here bad at all or anything just thought it's nice to mention somewhere 😉 |
Beta Was this translation helpful? Give feedback.
-
A small update on this topic: I took some time to think about what in my opinion the pain points of i18n are. I came to the conclusion that a regular library is not enough to make i18n really accessible to everyone. The whole tooling around internationalization needs to be improved. You can find more information here: https://github.com/pipeli18ne/RFC |
Beta Was this translation helpful? Give feedback.
-
The current landscape of the
i18n
experience is far from ideal. When working the first time oni18n
a few years back I didn't like the experience and our team had encountered a lot of problems. As a developer I thought we can do better so I startedtypesafe-18n
as a side project. I did want to tackle the biggest pain points from a technical perspective. But internationalization is not just a technical problem. In bigger applications a lot of people are involved and there exists the possibility that the person writing the translations has no technical understanding. The tooling requirements are different for each person and the whole i18n process should take that in mind.Here are some steps I want to tackle with this project in order to improve the
i18n
for the full spectrum of people involved in a multilingual project:i18n
library (see sizes)An i18n library should not load a dozen of kilobytes of JavaScript code and not affect the performance of an application.
Potential errors in every part of an application can be catched by static type checks. The same should apply to i18n.
Whether someone uses a tool at work or for their side project. Is should be easy to apply the same i18n concepts to every project.
Making multilanguage applications will involve also non-technical people who are using a service to easily add and modify translations. It should be easy to integrate any kind of service to the development process of a project.
This not only improves performance (speed and bundle size) but also enables new capabilities (see next step).
Each syntax has its advantages and disadvantages. Beeing open and allowing anyone to use their desired syntax would be a great option.
Not all file formats offer the best type checking capabilities. That's where a validation process could step in and find any potential issue regardless of the used translation format.
Translations are not just text snippets. They can contain some technical parts like prameter names, formatter definitions and plural syntax. Those technical parts should be transformed into a more intuitive UI. Real-time feedback is desirable to help translators see how their changes will look like inside the actual application. I don't know such a service yet. Probably a custom solution needs to be built.
Automatic string extraction from a template, untranslated parts detection, better IDE tooling etc. are just a few things that come into my mind when thinking about how to improve the i18n process to make it overall easier.
Those are my thoughts how the process of internationalization could look like in the future.
Feel free to contribute to this discussion by providing your thoughts in a comment below.
If this is not enough and you want to actively help this project to get better, please become a contributor or consider to sponsor my activities.
Thanks!
Beta Was this translation helpful? Give feedback.
All reactions