Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request] Add i18n Support #33

Open
Zbergen-cli opened this issue Dec 24, 2022 · 5 comments
Open

[Feature Request] Add i18n Support #33

Zbergen-cli opened this issue Dec 24, 2022 · 5 comments

Comments

@Zbergen-cli
Copy link

Hi all. Add support for i18n so that users can translate and use languages other than English.

@skarnet
Copy link
Owner

skarnet commented Dec 24, 2022

Sorry, and I know this is controversial, but no.

s6 is system software, it's low-level; error messages only happen when something's very wrong. It's meant to be used programmatically: the exit codes from commands are usually enough to tell what's going on, and the messages are mostly here for flavor.

Some of the main advantages of s6 over similar software are the small size and simplicity - which translate to maintainability - of its code. And unfortunately, i18n support in free software is not convenient at all; adding i18n infrastructure is a heavy undertaking. Doing that to s6 would basically double its code size and make it virtually unreadable.

A future project named s6-frontend, which will be a higher level interface to s6, is planned; this one will be aimed more at humans, and will have i18n support.

@Zbergen-cli
Copy link
Author

It is unknown when it will be released. It is not known when it will become stable enough to be used in linux distributions such as artix.

@skarnet
Copy link
Owner

skarnet commented Dec 24, 2022

That is correct.

@Zbergen-cli
Copy link
Author

It is also not clear why you think that adding i18n will double the code? Whereas gettext requires only to "highlight" the lines needed for translation in a special way. Then you extract these them, creating a template and translating it into the desired language. Thus, the authors need to highlight the necessary lines, and the translators need to keep the translations up to date.

@skarnet
Copy link
Owner

skarnet commented Dec 24, 2022

s6 binaries are voluntarily kept small. Adding i18n infrastructure to them would increase the size of the static binaries in a significant way, without even mentioning the data for translations (whose size doesn't matter as it can be mapped read-only). i18n infrastructure includes locale support, which is a bloated jumble of ill-conceived functions, and has no place in a program that needs 100% reliability.

Besides, you mention gettext, but if s6 were somehow to grow i18n support, it certainly would not use gettext, which is a GNU extension; it would stick to portable i18n functions.

I understand having English-only software is not inclusive, but given the specific requirements for s6, it is a trade-off I'm gladly making, and I have no plans to change that in this package. Sorry about that. (And, if it helps: English isn't my native language either.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants