Defining a Drupal 8 i18n gate

Events happening in the community are now at Drupal community events on www.drupal.org.

Hi there, i18n team! :)

Back at DrupalCon Chicago, Dries outlined a strategy for Drupal 8 involving a series of "gates" that would help ensure core code quality in a number of different categories: Documentation, Performance, Accessibility, Usability, and Testing. The purpose of gates is to define essentially a set of "checkboxes" which outline the most important aspects to each category, and does so in a way that is both not overwhelming to core developers (list of hoops to jump through is kept as small as possible) and also creates very little additional burden on the team in question (contains sample links to documentation/resources so developers/reviewers can help themselves).

While i18n was not on the "official" list (working on seeing if we can change that), plach pointed out that there would be a lot of value in defining a checklist for i18n, too. I totally agree. So let's doo eet!

Since we have already traditionally had requirements around documentation, it made sense to start there. Jennifer Hodgdon and some other folks from the documentation team have put together the Documentation gate, which is available at http://drupal.org/node/1203498. What we need is a similar table for each of the other gate areas. And that's where you come in! :D

So I'd love to kick off a brain-storm about what the top gates might be (please, no more than 5 if possible), with the goal being to fill out the following table. (This is a wiki page, so be bold!)

Description When is this needed? Details Resources
Title
Title
Title
Title
Title

Comments

great idea

gábor hojtsy's picture

I think this is a great idea, but I do need some time to think about how to define top criteria. Anybody with instant ideas?

Correct usage of t()

plach's picture

The first one that comes to my mind is obviously the correct usage of t(), but I'm slightly concerned about how the guidelines might change while the MI initiative evolves.

work in progress

gábor hojtsy's picture

Yes, t() might be relatively intact for a while. However, guidelines for how you do your configuration and how to make it translatable will form/change as time goes. How can we define lasting, easily checked criteria?

some other checks

hanno's picture
  • LTR and RTL in theming
  • intact lay-out with a translated word longer as the original word
  • use of format_plural
  • language related: notations and units that might differ internationally (decimals, date formats, calendar, physical units, addresses etc).
  • multilingual variables
  • language of parts (language attribute when relevant)

There's a lot of RTL issues

catch's picture

There's a lot of RTL issues open for Drupal 7 where it was missed, so that seems like a definite one to add to me.

Correct usage of t() and format_plural() etc. - while these are important I don't think they should be individual items - this is more like code style (with an i18n focus) - although maybe tag sections of the code style documentation as i18n and have that as a bullet point?

t() and format_plural() is

hanno's picture

t() and format_plural() is basic code styling indeed, depends maybe if the gate will also be used as a guide for contributed modules?
another possible check:
* language aware queries compatible with the language modes

No official gate, for now

webchick's picture

While I still encourage you to work on this to get i18n best practices written up from the "help raise the core contributors' collective IQ" standpoint, Dries is averse to introducing more gates at this time. I think it makes sense to see how some of the "blessed" gates evolve and how overwhelming those prove to be for new contributors first.

However, I'd still love to see your list anyway, so I can make sure I'm catching stuff in my final reviews.

Internationalization

Group organizers

Group categories

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: