Moodle

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

Details

  • Type: Improvement Improvement
  • Status: Closed 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

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 (skodak) 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 (skodak) 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 (skodak) 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 (skodak) 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)

Dates

  • Created:
    Updated:
    Resolved: