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

Add a localization concept for user-provided strings to core #4894

Open
indigoxela opened this issue Jan 21, 2021 · 4 comments
Open

Add a localization concept for user-provided strings to core #4894

indigoxela opened this issue Jan 21, 2021 · 4 comments

Comments

@indigoxela
Copy link
Member

indigoxela commented Jan 21, 2021

Backdrop core ships with content translation, which is fine for sites, that really only need content translation.
Additionally there's config translation, which allows to translate certain user provided strings (like site_name, or user mail texts). Config translation utilizes t() / locale() for that. But that concept has its limitations.

There are a lot of user-provided strings, for which there's no standardized translation concept in core yet.

  • Field labels and help texts
  • All sorts of notification strings in contrib modules (think of flag, ubercart, eu_cookie_compliance ...)
  • ...?

Using locale for these, too, seems inappropriate, because:

  • locale always assumes that English is the source language
  • Using t() for user contributed strings is discouraged because of possible security impacts
  • Using t() for strings containing markup is far from being ideal

Currently modules that need translation for user contributed strings create their own workarounds or do not have translation for these strings.

It would be cool, if core could provide an additional translation concept for this use case.
Sort of what i18n_strings (submodule of i18n contrib module) does (which also utilizes locale), but smarter, more robust and with better UI.

In the early D8 days it has been discussed to provide something new, based on the i18n concepts, but more complete and without using locale():

https://www.drupal.org/project/i18n/issues/1191662

Needless to say, that initiative never made much progress.

FTR: i18n for Drupal 7 ships with a submodule utilizing the Variable concept to translate almost everything, but as the Variable module won't ever get ported, and i18n_variable had to be deprecated/removed, there's now a regression in functionality, that's not easy to fix.

i18n_field still provides field (label, helptext) translation, but also using locale() - with all its limitations mentioned above.

This request might be hard to understand for people not needing internationalization / localization, so here's an i18n issue for further reading, beginning with this comment:

backdrop-contrib/i18n#39 (comment)

@herbdool
Copy link

In a way the config translation is also user provided since most of it can be updated by admins.

@indigoxela
Copy link
Member Author

In a way the config translation is also user provided since most of it can be updated by admins.

Yes, but it's using locale() - with all its limitations mentioned above.

@herbdool
Copy link

For how this could evolve we could be inspired by this: https://git.drupalcode.org/sandbox/reyero-1290346

@herbdool herbdool removed this from the 2.x-future milestone Aug 14, 2021
@herbdool
Copy link

I don't think this needs to wait for 2.x. Sounds like it might be possible to introduce them without breaking compatibility.

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

No branches or pull requests

2 participants