Problem/Motivation

There is the string 'Weight' used in two different context in Drupal;

- Used as "Ordering indicator" in sortable Tables, Node, etc.
- Used as "Measuring quantities" in e-cart's shopping system.

In Chinese, and other languages, different translations are required for each.

Proposed resolution

- Add a context to the string.

CommentFileSizeAuthor
#5 2173917-weight.patch9.99 KBdroplet
weight.patch9.82 KBdroplet
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

Status: Needs review » Needs work

The last submitted patch, weight.patch, failed testing.

droplet’s picture

Status: Needs work » Needs review

weight.patch queued for re-testing.

YesCT’s picture

Issue tags: +D8MI

adding d8mi, not sure if other tag for language...

dawehner’s picture

Status: Needs review » Needs work

+1 for more contexts. This really helps confusions like

+++ b/core/lib/Drupal/Core/Config/Entity/DraggableListController.php
@@ -64,7 +64,7 @@ public function __construct(EntityTypeInterface $entity_info, EntityStorageContr
+      $header['weight'] = t('Weight', array(), array('Ordering'));

Note: It should be t('Weight', array(), array('context' => 'Ordering')); instead, see \Drupal\Core\StringTranslation\TranslationInterface::translate(). In general it feels odd that the context is uppercase

droplet’s picture

Status: Needs work » Needs review
FileSize
9.99 KB

ahh right! Fixed the context array

dawehner’s picture

@droplet
Do you have an explanation regarding the uppercase-ness?

Sutharsan’s picture

Status: Needs review » Needs work

Why do we add a string context to the dominating usage of the word 'Weight'? This wil result in the maximum number of strings requiring a context. Guidelines for contexts are being discussed in #1035716: [policy, no patch] Decide and document guidelines for using string context. One of the criteria says:

Only add the context to the string in the deviating context. The dominant use of the string does not receive a context.

Therefore, the context should not be added to 'Weight' in the meaning as sort order, but in strings that use 'Weight' for mass.

Putting the status to 'needs work', but would actually vote for won't fix.

droplet’s picture

Posted by zirvap on January 22, 2011 at 5:28am

while the issue spending 3 years on discussion, I think it should not let that blocking any other issues. We need a properly way to sort the REAL problem temporarily, not just write the rules on paper and waiting for years and years and no changes. Do you agree?

Sutharsan’s picture

We need a properly way to sort the REAL problem temporarily

If you mean with a temporary solution, to commit this patch? I don't agree. There is no temporary solution with contexts. Once a context is in, we can never take it out. Nowadays even Drupal 5 translations are still in use, so it can be expected that contexts which are added today will be in use for many years to come. In php code we can break with the past, but in translations we (currently) can't.

The fact that the discussion on string context guidelines does not progress, should not block this issue. I proposed to add a context to those cases that use weight in the meaning of mass and not, as in #5 add the context to weight in the meaning of sort order.

Sutharsan’s picture

droplet said in https://drupal.org/comment/8526233#comment-8526233:

Please consider add contexts to all drupal-specified common words, eg. "Weight" ( I think 99% of other system using the word "Order / Sort" instead.)

It is not relevant which words other systems use for sort order, Drupal string are only shared within Drupal. Drupal core uses "Weight" at least 53 times in translatable strings. Can you show me where the problem is? Where is the translation conflict that this context will solve?

53 translatable strings with 'weight' :
git grep -i "[ |>]\t('[^']*weight"

Version: 8.0.x-dev » 8.1.x-dev

Drupal 8.0.6 was released on April 6 and is the final bugfix release for the Drupal 8.0.x series. Drupal 8.0.x will not receive any further development aside from security fixes. Drupal 8.1.0-rc1 is now available and sites should prepare to update to 8.1.0.

Bug reports should be targeted against the 8.1.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.2.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.1.x-dev » 8.2.x-dev

Drupal 8.1.9 was released on September 7 and is the final bugfix release for the Drupal 8.1.x series. Drupal 8.1.x will not receive any further development aside from security fixes. Drupal 8.2.0-rc1 is now available and sites should prepare to upgrade to 8.2.0.

Bug reports should be targeted against the 8.2.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.3.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.2.x-dev » 8.3.x-dev

Drupal 8.2.6 was released on February 1, 2017 and is the final full bugfix release for the Drupal 8.2.x series. Drupal 8.2.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.3.0 on April 5, 2017. (Drupal 8.3.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.3.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.4.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.3.x-dev » 8.4.x-dev

Drupal 8.3.6 was released on August 2, 2017 and is the final full bugfix release for the Drupal 8.3.x series. Drupal 8.3.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.4.0 on October 4, 2017. (Drupal 8.4.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.4.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.5.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.4.x-dev » 8.5.x-dev

Drupal 8.4.4 was released on January 3, 2018 and is the final full bugfix release for the Drupal 8.4.x series. Drupal 8.4.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.5.0 on March 7, 2018. (Drupal 8.5.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.5.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.6.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.5.x-dev » 8.6.x-dev

Drupal 8.5.6 was released on August 1, 2018 and is the final bugfix release for the Drupal 8.5.x series. Drupal 8.5.x will not receive any further development aside from security fixes. Sites should prepare to update to 8.6.0 on September 5, 2018. (Drupal 8.6.0-rc1 is available for testing.)

Bug reports should be targeted against the 8.6.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.7.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.6.x-dev » 8.8.x-dev

Drupal 8.6.x will not receive any further development aside from security fixes. Bug reports should be targeted against the 8.8.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.9.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.7 was released on June 3, 2020 and is the final full bugfix release for the Drupal 8.8.x series. Drupal 8.8.x will not receive any further development aside from security fixes. Sites should prepare to update to Drupal 8.9.0 or Drupal 9.0.0 for ongoing support.

Bug reports should be targeted against the 8.9.x-dev branch from now on, and new development or disruptive changes should be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.9.x-dev » 9.2.x-dev

Drupal 8 is end-of-life as of November 17, 2021. There will not be further changes made to Drupal 8. Bugfixes are now made to the 9.3.x and higher branches only. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.2.x-dev » 9.3.x-dev

Version: 9.3.x-dev » 9.4.x-dev

Drupal 9.3.15 was released on June 1st, 2022 and is the final full bugfix release for the Drupal 9.3.x series. Drupal 9.3.x will not receive any further development aside from security fixes. Drupal 9 bug reports should be targeted for the 9.4.x-dev branch from now on, and new development or disruptive changes should be targeted for the 9.5.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.4.x-dev » 9.5.x-dev

Drupal 9.4.9 was released on December 7, 2022 and is the final full bugfix release for the Drupal 9.4.x series. Drupal 9.4.x will not receive any further development aside from security fixes. Drupal 9 bug reports should be targeted for the 9.5.x-dev branch from now on, and new development or disruptive changes should be targeted for the 10.1.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.5.x-dev » 11.x-dev

Drupal core is moving towards using a “main” branch. As an interim step, a new 11.x branch has been opened, as Drupal.org infrastructure cannot currently fully support a branch named main. New developments and disruptive changes should now be targeted for the 11.x branch. For more information, see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.