Moodle
  1. Moodle
  2. MDL-6645

Having only a HEAD version for language packs causes major problems and inconsistencies

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 1.6.5, 1.7.2, 1.8.2, 1.9
    • Fix Version/s: 2.0
    • Component/s: General, Language
    • Labels:
      None
    • Affected Branches:
      MOODLE_16_STABLE, MOODLE_17_STABLE, MOODLE_18_STABLE, MOODLE_19_STABLE
    • Fixed Branches:
      MOODLE_20_STABLE
    • Rank:
      1605

      Description

      The language packs other than the en_utf8 one have only a HEAD version (i.e. no STABLE branch) since 1.6. This causes major problems.

      1) Some modules breaks in 1.6.x with the introduction of new strings. See bug MDL-6644.

      2) Deleting legacy strings like $string['studentviewoff'] creates regressions in the interface, when using up-to-date language pack. "Some strings that were translated are now in english. What's happened?"

      3) Not adding new strings and not removing legacy ones (for conserving backward compatibility issue of point 2 above) doesn't allow smooth development, nor correct testing on development version using other language packs.

      I suggest that we think about a mecanism allowing to have a stable version of language packs along with a dev one, so that could be resolved elegantly.

        Issue Links

          Activity

          Hide
          Martin Dougiamas added a comment -

          I did delete some strings recently, oops, I'll put them back.

          Will think about the wider problem, too

          Show
          Martin Dougiamas added a comment - I did delete some strings recently, oops, I'll put them back. Will think about the wider problem, too
          Hide
          Nicolas Martignoni added a comment -

          This recent commit breaks consistency in Moodle 1.6.x (where no role exists). Eg, the string

          $string['statsreport2'] = 'Views (teacher and student)';

          becomes

          $string['statsreport2'] = 'Views (all roles)';

          Index: moodle.php
          ===================================================================
          RCS file: /cvsroot/moodle/moodle/lang/en_utf8/moodle.php,v
          retrieving revision 1.58
          retrieving revision 1.59
          diff -u -d -r1.58 -r1.59

          How do we handle the modification of strings? Do I need to open a bug for these cases?

          Show
          Nicolas Martignoni added a comment - This recent commit breaks consistency in Moodle 1.6.x (where no role exists). Eg, the string $string ['statsreport2'] = 'Views (teacher and student)'; becomes $string ['statsreport2'] = 'Views (all roles)'; Index: moodle.php =================================================================== RCS file: /cvsroot/moodle/moodle/lang/en_utf8/moodle.php,v retrieving revision 1.58 retrieving revision 1.59 diff -u -d -r1.58 -r1.59 How do we handle the modification of strings? Do I need to open a bug for these cases?
          Hide
          Nicolas Martignoni added a comment -

          This recent commit (new assignment type) causes also problems.

          Modified Files:
          assignment.php
          Log Message:
          new advanced upload assignmet type - replaces old upload type, existing data and settings not fully compatible

          Index: assignment.php
          ===================================================================
          RCS file: /cvsroot/moodle/moodle/lang/en_utf8/assignment.php,v
          retrieving revision 1.4
          retrieving revision 1.5

          Strings affected (modified):
          $string['helpupload']
          $string['submitformarking']

          And a lot of strings deleted.

          Show
          Nicolas Martignoni added a comment - This recent commit (new assignment type) causes also problems. Modified Files: assignment.php Log Message: new advanced upload assignmet type - replaces old upload type, existing data and settings not fully compatible Index: assignment.php =================================================================== RCS file: /cvsroot/moodle/moodle/lang/en_utf8/assignment.php,v retrieving revision 1.4 retrieving revision 1.5 Strings affected (modified): $string ['helpupload'] $string ['submitformarking'] And a lot of strings deleted.
          Hide
          Nicolas Martignoni added a comment -

          Another commit that could cause problems:

          Index: hotpot.php
          ===================================================================
          RCS file: /cvsroot/moodle/moodle/lang/en_utf8/hotpot.php,v
          retrieving revision 1.6
          retrieving revision 1.7
          diff -u -d -r1.6 -r1.7
          — hotpot.php 6 Oct 2006 03:46:46 -0000 1.6
          +++ hotpot.php 7 Oct 2006 02:00:53 -0000 1.7

          Show
          Nicolas Martignoni added a comment - Another commit that could cause problems: Index: hotpot.php =================================================================== RCS file: /cvsroot/moodle/moodle/lang/en_utf8/hotpot.php,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 — hotpot.php 6 Oct 2006 03:46:46 -0000 1.6 +++ hotpot.php 7 Oct 2006 02:00:53 -0000 1.7
          Hide
          Koen Roggemans added a comment -

          I don't understand why it suddenly becomes such a problem.
          If all developers stick to the rules concerning languages, it can never be a problem.
          1) never delete strings or helpfiles
          2) never modifie their content - make another one if the content is different in a higher version

          Show
          Koen Roggemans added a comment - I don't understand why it suddenly becomes such a problem. If all developers stick to the rules concerning languages, it can never be a problem. 1) never delete strings or helpfiles 2) never modifie their content - make another one if the content is different in a higher version
          Hide
          Nicolas Martignoni added a comment -

          Yes Koen, in a perfect world, this would be OK. But in fact sometimes developers DO actually delete strings and files and this is a PITA to manage for translators.

          Eg, every time I see a deleted string, I've now to add a comment in my fr_utf8 files to remember to delete them when 1.7 goes gold. And this is susceptible to lots of errors when I'll do it. Because I'll do it then, since the original (en_utf8) pack don't have these strings any more. So there's really a need here.

          IMHO, it's not natural not to have branches on lang packs. As a side note, this is also matter of discussion for the contrib repository.

          Show
          Nicolas Martignoni added a comment - Yes Koen, in a perfect world, this would be OK. But in fact sometimes developers DO actually delete strings and files and this is a PITA to manage for translators. Eg, every time I see a deleted string, I've now to add a comment in my fr_utf8 files to remember to delete them when 1.7 goes gold. And this is susceptible to lots of errors when I'll do it. Because I'll do it then, since the original (en_utf8) pack don't have these strings any more. So there's really a need here. IMHO, it's not natural not to have branches on lang packs. As a side note, this is also matter of discussion for the contrib repository.
          Hide
          Koen Roggemans added a comment -

          Not much interest in this subject, according to the replies on my post on http://moodle.org/mod/forum/discuss.php?d=56073

          Anyway, another problematic update:
          RCS file: /cvsroot/moodle/moodle/lang/en_utf8/help/quiz/requiresubnet.html,v
          retrieving revision 1.1
          retrieving revision 1.1.8.1
          diff -u -d -r1.1 -r1.1.8.1

          Show
          Koen Roggemans added a comment - Not much interest in this subject, according to the replies on my post on http://moodle.org/mod/forum/discuss.php?d=56073 Anyway, another problematic update: RCS file: /cvsroot/moodle/moodle/lang/en_utf8/help/quiz/requiresubnet.html,v retrieving revision 1.1 retrieving revision 1.1.8.1 diff -u -d -r1.1 -r1.1.8.1
          Hide
          Koen Roggemans added a comment -

          Reverted problems until 7/10
          Eloy wrot notification script to send allert when this happens again - I'll revert changes then asap

          Show
          Koen Roggemans added a comment - Reverted problems until 7/10 Eloy wrot notification script to send allert when this happens again - I'll revert changes then asap
          Hide
          Martín Langhoff added a comment -

          Blocks

          Show
          Martín Langhoff added a comment - Blocks
          Hide
          Martín Langhoff added a comment -

          This issue blocks MDL-5486 - split up $lang/auth.php

          Show
          Martín Langhoff added a comment - This issue blocks MDL-5486 - split up $lang/auth.php
          Hide
          Nicolas Martignoni added a comment -

          This string $string['configshowsiteparticipantslist'] of admin.php (legacy in 1.7) was also deleted.

          Show
          Nicolas Martignoni added a comment - This string $string ['configshowsiteparticipantslist'] of admin.php (legacy in 1.7) was also deleted.
          Hide
          Martin Dougiamas added a comment -

          I've done a lot of cleanups on the lang packs in 1.7 and HEAD (resorted them and added missing strings).

          More to go ... I'll clean up 1.6 too so we can do a better compare ... unfortunately I just now accidentally deleted the lang cleanup script which I just wrote. (

          Show
          Martin Dougiamas added a comment - I've done a lot of cleanups on the lang packs in 1.7 and HEAD (resorted them and added missing strings). More to go ... I'll clean up 1.6 too so we can do a better compare ... unfortunately I just now accidentally deleted the lang cleanup script which I just wrote. (
          Hide
          Martin Dougiamas added a comment -

          Ah, just read about Eloy's script, yay!

          Show
          Martin Dougiamas added a comment - Ah, just read about Eloy's script, yay!
          Hide
          Nicolas Martignoni added a comment -

          Another one ?

          Index: lesson.php
          ===================================================================
          RCS file: /cvsroot/moodle/moodle/lang/en_utf8/lesson.php,v
          retrieving revision 1.19
          retrieving revision 1.20
          diff -u -d -r1.19 -r1.20

          Show
          Nicolas Martignoni added a comment - Another one ? Index: lesson.php =================================================================== RCS file: /cvsroot/moodle/moodle/lang/en_utf8/lesson.php,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20
          Hide
          Nicolas Martignoni added a comment -

          Another candidate:

          Index: lesson.php
          ===================================================================
          RCS file: /cvsroot/moodle/moodle/lang/en_utf8/lesson.php,v
          retrieving revision 1.22
          retrieving revision 1.23
          diff -u -d -r1.22 -r1.23

          Show
          Nicolas Martignoni added a comment - Another candidate: Index: lesson.php =================================================================== RCS file: /cvsroot/moodle/moodle/lang/en_utf8/lesson.php,v retrieving revision 1.22 retrieving revision 1.23 diff -u -d -r1.22 -r1.23
          Hide
          David Mudrak added a comment -

          Since MDL-8409 has been fixed, the lang.php now does not delete string from language packs, but remarks them as ORPHANED (i.e. without the English source).

          I would like to have language branches as well (i.e. to use the same branching/tagging schema as in the moodle CVS module), but I would prefer lang maintainers to vote about this change.

          Show
          David Mudrak added a comment - Since MDL-8409 has been fixed, the lang.php now does not delete string from language packs, but remarks them as ORPHANED (i.e. without the English source). I would like to have language branches as well (i.e. to use the same branching/tagging schema as in the moodle CVS module), but I would prefer lang maintainers to vote about this change.
          Hide
          David Mudrak added a comment -

          It does not fix the issue, but it prevents strings lost.

          Show
          David Mudrak added a comment - It does not fix the issue, but it prevents strings lost.
          Hide
          Nicolas Martignoni added a comment -

          Another potential problem related:

          Update of /cvsroot/moodle/moodle/lang/en_utf8/help
          In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv17916/lang/en_utf8/help

          Removed Files:
          courseenrollable.html
          Log Message:
          old help file removed

          Show
          Nicolas Martignoni added a comment - Another potential problem related: Update of /cvsroot/moodle/moodle/lang/en_utf8/help In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv17916/lang/en_utf8/help Removed Files: courseenrollable.html Log Message: old help file removed
          Hide
          Nicolas Martignoni added a comment -

          Yet another issue related.

          The following group.php strings were deleted from the HEAD lang pack, but are still needed in 18_STABLE.

          This is very annoying. I have to add comments in lang files to remind me which strings are obsolete and in which version. And I don't know WHEN to delete these obsolete strings.

          This is difficult to maintain for translators on the bleeding edge the development of Moodle

          $string['cancel']
          $string['editgroupingpermissions']
          $string['errorinvalidgrouping']
          $string['errornotingrouping']
          $string['errornotingroupingedit']
          $string['groupfor']
          $string['return']
          $string['save']
          $string['showusersalreadyingroup']
          $string['teachersgroupmark']
          $string['teachersgroupview']
          $string['teachersoverride']
          $string['upgradeconfirm']
          $string['viewallgroupsactivities']
          $string['viewallgroupsmembers']
          $string['viewowngroup']

          Show
          Nicolas Martignoni added a comment - Yet another issue related. The following group.php strings were deleted from the HEAD lang pack, but are still needed in 18_STABLE. This is very annoying. I have to add comments in lang files to remind me which strings are obsolete and in which version. And I don't know WHEN to delete these obsolete strings. This is difficult to maintain for translators on the bleeding edge the development of Moodle $string ['cancel'] $string ['editgroupingpermissions'] $string ['errorinvalidgrouping'] $string ['errornotingrouping'] $string ['errornotingroupingedit'] $string ['groupfor'] $string ['return'] $string ['save'] $string ['showusersalreadyingroup'] $string ['teachersgroupmark'] $string ['teachersgroupview'] $string ['teachersoverride'] $string ['upgradeconfirm'] $string ['viewallgroupsactivities'] $string ['viewallgroupsmembers'] $string ['viewowngroup']
          Hide
          Petr Škoda added a comment -

          I think I deleted them myself because I though that those were in fact never used. Am I right?

          Show
          Petr Škoda added a comment - I think I deleted them myself because I though that those were in fact never used. Am I right?
          Hide
          Nicolas Martignoni added a comment -

          After a quick search, I found that:

          • editgroupingpermissions is used once in group/index.php
          • errorinvalidgrouping once in group/printgrouping.php
          • errornotingroupingedit once in group/grouping.php
          • save once in group/edit_form.php and once in group/grouping_edit_form.php

          The others should IMHO be deleted from the 18_STABLE branch too.

          Show
          Nicolas Martignoni added a comment - After a quick search, I found that: editgroupingpermissions is used once in group/index.php errorinvalidgrouping once in group/printgrouping.php errornotingroupingedit once in group/grouping.php save once in group/edit_form.php and once in group/grouping_edit_form.php The others should IMHO be deleted from the 18_STABLE branch too.
          Hide
          Petr Škoda added a comment -

          Groupings are not working in 1.8.0 and not available in 1.8.1 - that leaves only group/edit_form.php

          Show
          Petr Škoda added a comment - Groupings are not working in 1.8.0 and not available in 1.8.1 - that leaves only group/edit_form.php
          Hide
          Nicolas Martignoni added a comment -

          So I suggest to delete them all in MOODLE_18_STABLE. Is it possible to get the 'save' string in moodle.php lang file? It seems that the same 'save' string is at least present in 4 other lang files : data.php, quiz.php, wiki.php and xmldb.php. If yes, we could use this string for edit_form.php.

          Show
          Nicolas Martignoni added a comment - So I suggest to delete them all in MOODLE_18_STABLE. Is it possible to get the 'save' string in moodle.php lang file? It seems that the same 'save' string is at least present in 4 other lang files : data.php, quiz.php, wiki.php and xmldb.php. If yes, we could use this string for edit_form.php.
          Hide
          Nicolas Martignoni added a comment -

          These files and their references in other help files were deleted from MOODLE_18_STABLE and HEAD. See MDL-11514 and MDL-11515.

          formatblackboard.html
          formatmissingword.html

          Show
          Nicolas Martignoni added a comment - These files and their references in other help files were deleted from MOODLE_18_STABLE and HEAD. See MDL-11514 and MDL-11515 . formatblackboard.html formatmissingword.html
          Hide
          David Mudrak added a comment -

          The backward compatibility issue came on table together with another issue - see http://moodle.org/mod/forum/discuss.php?d=85897

          Is language branching really necessary? Or even wanted? I mean, it adds a lot of work and duties for translators. One has to regularly merge stable branches into HEAD, backport from HEAD into stable, keep in mind moving _MERGED flag, resolve conflicts and so on...

          Show
          David Mudrak added a comment - The backward compatibility issue came on table together with another issue - see http://moodle.org/mod/forum/discuss.php?d=85897 Is language branching really necessary? Or even wanted? I mean, it adds a lot of work and duties for translators. One has to regularly merge stable branches into HEAD, backport from HEAD into stable, keep in mind moving _MERGED flag, resolve conflicts and so on...
          Hide
          Koen Roggemans added a comment -

          Nicolas is good at tracking down the issues caused by developers who forget about the rule not to delete or modify strings
          So he found quite a lot. But I believe that working branched with translators with not so much experience using CVS (and that is AFAIK the majority) will cause a lot more trouble.

          Show
          Koen Roggemans added a comment - Nicolas is good at tracking down the issues caused by developers who forget about the rule not to delete or modify strings So he found quite a lot. But I believe that working branched with translators with not so much experience using CVS (and that is AFAIK the majority) will cause a lot more trouble.
          Hide
          Nicolas Martignoni added a comment -

          Yes Koen, I totally agree with you that branching would add complexity for many translators.

          We should though find a solution. Any clues?

          Show
          Nicolas Martignoni added a comment - Yes Koen, I totally agree with you that branching would add complexity for many translators. We should though find a solution. Any clues?
          Hide
          Nicolas Martignoni added a comment -
          Show
          Nicolas Martignoni added a comment - This commit deletes 2 strings from lesson.php: http://cvs.moodle.org/moodle/lang/en_utf8/lesson.php.diff?r1=1.22.2.2&r2=1.22.2.3
          Hide
          Nicolas Martignoni added a comment -

          File search.php was deleted from HEAD yerterday. Is this OK for backward compat?

          It seems that nobody (including me) doens't want language branching anymore. I suggest we rename this bug to something like "Language strings and files should not be deleted from language packs for backward compatibility".

          Show
          Nicolas Martignoni added a comment - File search.php was deleted from HEAD yerterday. Is this OK for backward compat? It seems that nobody (including me) doens't want language branching anymore. I suggest we rename this bug to something like "Language strings and files should not be deleted from language packs for backward compatibility".
          Hide
          Koen Roggemans added a comment -

          search.php is deleted from moodle/search/lang/... because it shouldn't be there -> it should be in the language pack. It was a leftover from contrib time for search

          Show
          Koen Roggemans added a comment - search.php is deleted from moodle/search/lang/... because it shouldn't be there -> it should be in the language pack. It was a leftover from contrib time for search
          Hide
          Nicolas Martignoni added a comment -

          Oh my Didn't pay enough attention to the file path. Sorry for the spam.

          Show
          Nicolas Martignoni added a comment - Oh my Didn't pay enough attention to the file path. Sorry for the spam.
          Hide
          Martin Dougiamas added a comment -

          See MDL-15252 for some activity on this.

          Show
          Martin Dougiamas added a comment - See MDL-15252 for some activity on this.
          Hide
          David Mudrak added a comment -

          This has been solved by AMOS database (MDL-21690)

          Show
          David Mudrak added a comment - This has been solved by AMOS database ( MDL-21690 )

            People

            • Votes:
              7 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: