Problem
Small differences to Drupal 7 on the community pages:
- Drupal 7 gave a 404 for a language without a plural formula on every
translate/languages/xxpage. 3.0.x serves them, so a language added without its formula can be translated with broken plurals. - The translation details page on Drupal 7 leads with "by user" when the translation is attributed to another user than its submitter (an import attributed to the team account), so the difference is visible to translators and moderators. 3.0.x only lists the history. Migrated data has many of these.
- The Drupal 7 pick and go form picks the project from the
projectURL parameter, which the downloads page passes. 3.0.x ignores it, although the downloads page passes the same parameter. - The community settings page needs
administer site configuration, Drupal 7 usedadminister localization serverlike every other localization server setting. - A fresh install highlights "Drupal core", so the welcome page says "Highlighted project not found." until an administrator changes it. Drupal 7 highlighted nothing by default.
Proposed resolution
- The language parameter converter also refuses languages without a plural formula (the l10n_pconfig setting the rest of the module checks).
- The details page adds the "by user" line in front of the history when the first submitter differs from the attributed user, like Drupal 7.
- The pick and go form takes its project default from the URL, the block varies by that parameter.
- The settings route requires
administer localization server. - The install default of the highlighted project is empty.
Not ported: the Drupal 7 language page fallback to nodes tagged l10n-server-xx when no module builds the page. localize.drupal.org builds it with the groups, the fallback stays out. The settings form keeps its text field for the highlighted project, Drupal 7 offered the projects as radios or a select.
Tests
Drupal 7 first: testLanguageWithoutPluralFormula() and testPickGoProjectPrefill() are new, testWelcome() checks the default and testImport() checks the details of a team import. The single language case of the pick and go form found a PHP 8 fatal in Drupal 7 (each()), replaced by key() and current(). Ported to L10nLanguagesProjectsTest, L10nWelcomeTest::testHighlightedProject() (also the settings permission) and L10nImportTest.
LLM disclosure
LLM was used to find, diagnose explain and fix this issue. With human review.
Comments
Comment #4
gábor hojtsy