We should not nuke translated sysprefs in the DB - we should look for the english strings instead.
Created attachment 15868 [details] [review] Bug 9745 - don't nuke translated strings in permissions on DB upgrade To test: (this is best done by someone who has a database with translated strings for user permissions - I'm looking towards Katrin. :)) Get a 3.6-3.8 era database loaded as test data - also please use a low value test database. Translate or change the strings in the database for the user permissions that follow in mysql client (for those who didn't install with a different language that has translated files at install time) - update userflags set flagdesc="Translated text 1" where flag IN('catalogue','editauthorities','reports','management','serials','updatecharges','circulate','parameters','borrowers','tools','staffaccess','edit_patrons'); (you will notice that this changes all of the permission labels in the interface to "translated text 1" for the affected permission flags. This is why I don't want you to use a high value test database.) Update that to master + this patch - your "translations" should be intact. Blow that database away, and make a brand new one 3.6-3.8 era with the english database definitions. Run the update again with this patch, the strings should be updated correctly.
Created attachment 16372 [details] [review] Bug 9745 - don't nuke translated strings in permissions on DB upgrade To test: (this is best done by someone who has a database with translated strings for user permissions - I'm looking towards Katrin. :)) Get a 3.6-3.8 era database loaded as test data - also please use a low value test database. Translate or change the strings in the database for the user permissions that follow in mysql client (for those who didn't install with a different language that has translated files at install time) - update userflags set flagdesc="Translated text 1" where flag IN('catalogue','editauthorities','reports','management','serials','updatecharges','circulate','parameters','borrowers','tools','staffaccess','edit_patrons'); (you will notice that this changes all of the permission labels in the interface to "translated text 1" for the affected permission flags. This is why I don't want you to use a high value test database.) Update that to master + this patch - your "translations" should be intact. Blow that database away, and make a brand new one 3.6-3.8 era with the english database definitions. Run the update again with this patch, the strings should be updated correctly. Signed-off-by: Magnus Enger <magnus@enger.priv.no> There was a typo in the patch, the first database update had to be changed from this: $dbh->do{(q{ to this: $dbh->do(q{ * Test 1: - git checkout v3.06.05 - Run through the web installer in Norwegian, installing all Norwegian sample data - git checkout <master + patch for bug 9745> - Run web installer/upgrade - Almost all of the permissions are still in Norwegian. The ones that are in English are not touched by the database update for 3.11.00.016, so they must have been introduced by other updates. * Test 2: - git checkout v3.06.05 - Run through the web installer in English, installing all English sample data - git checkout <master + patch for bug 9745> - Run web installer/upgrade - All permissions have been updated as expected, except "Perform batch modification of patrons" which is not in the 'userflags' table, but in the 'permissions' table. I have amended the patch to account for this. Two fixes to the original patch, please give a shout if this makes a second signoff necessary!
Working on this now.
Created attachment 16908 [details] [review] [PASSED QA] Bug 9745 - don't nuke translated strings in permissions on DB upgrade To test: (this is best done by someone who has a database with translated strings for user permissions - I'm looking towards Katrin. :)) Get a 3.6-3.8 era database loaded as test data - also please use a low value test database. Translate or change the strings in the database for the user permissions that follow in mysql client (for those who didn't install with a different language that has translated files at install time) - update userflags set flagdesc="Translated text 1" where flag IN('catalogue','editauthorities','reports','management','serials', 'updatecharges','circulate','parameters','borrowers','tools', 'staffaccess','edit_patrons'); (you will notice that this changes all of the permission labels in the interface to "translated text 1" for the affected permission flags. This is why I don't want you to use a high value test database.) Update that to master + this patch - your "translations" should be intact. Blow that database away, and make a brand new one 3.6-3.8 era with the english database definitions. Run the update again with this patch, the strings should be updated correctly. Signed-off-by: Magnus Enger <magnus@enger.priv.no> There was a typo in the patch, the first database update had to be changed from this: $dbh->do{(q{ to this: $dbh->do(q{ * Test 1: - git checkout v3.06.05 - Run through the web installer in Norwegian, installing all Norwegian sample data - git checkout <master + patch for bug 9745> - Run web installer/upgrade - Almost all of the permissions are still in Norwegian. The ones that are in English are not touched by the database update for 3.11.00.016, so they must have been introduced by other updates. * Test 2: - git checkout v3.06.05 - Run through the web installer in English, installing all English sample data - git checkout <master + patch for bug 9745> - Run web installer/upgrade - All permissions have been updated as expected, except "Perform batch modification of patrons" which is not in the 'userflags' table, but in the 'permissions' table. I have amended the patch to account for this. Two fixes to the original patch, please give a shout if this makes a second signoff necessary! Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de> I tested this on an English and a German sample base updating from 3.06.07 successfully.
This patch has been pushed to master. I corrected incorrect field names in the last query in the patch that was pushed.
Pushed to 3.10.x will be in 3.10.5