Bug 145566 - Translation of toolbar names saved in user profile, blocking changes in future versions
Summary: Translation of toolbar names saved in user profile, blocking changes in futur...
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: LibreOffice (show other bugs)
Version:
(earliest affected)
7.1.6.2 release
Hardware: All All
: medium minor
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: User-Profile
  Show dependency treegraph
 
Reported: 2021-11-06 06:50 UTC by Ming Hua
Modified: 2021-11-09 15:23 UTC (History)
1 user (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ming Hua 2021-11-06 06:50:04 UTC
Description:
When run with localized UI, the translation of toolbar names are saved in the user profile.  So if the UI translators change the translation in a future version, the user with old user profile will still see the old translation.  This is different behavior than the rest of the UI (where translation changes are always shown in new versions), and seems not intended, or at least not documented.

Steps to Reproduce:
1. Start LibreOffice with a fresh user profile and localized (non-English) UI.

2. Open Impress, enable for example "Outline" toolbar via menu "View > Toolbars > Outline".

3. Close LibreOffice, view the content of the user profile file $USER_PROFILE_DIR/user/registrymodifications.xcu, see a line containing the translated name of the toolbar enabled in step 2, in my case (zh-CN UI):
<item oor:path="/org.openoffice.Office.UI.ImpressWindowState/UIElements/States/org.openoffice.Office.UI.WindowState:WindowStateType['private:resource/toolbar/outlinetoolbar']/UIName"><value xml:lang="zh-CN">提纲</value></item>

4. (Optional and harder to do) Change the translation of this name, in file translations/source/<locale>/officecfg/openoffice/Office/UI.po, search for KeyID 92W6B.  Rebuild LibreOffice with new translation, install and start new LO, observe that translation is not updated.  Delete old user profile or start in Safe Mode, observe that translation is updated now.

Expected Result:
Translated names not saved in user profile.  At least not explicitly enabled, i.e. an (expert?) option defaulting to no.

Version Information:
The steps above are tested with 7.1.7 on Windows 10:
Version: 7.1.7.2 (x64) / LibreOffice Community
Build ID: c6a4e3954236145e2acb0b65f68614365aeee33f
CPU threads: 2; OS: Windows 10.0 Build 19043; UI render: Skia/Raster; VCL: win
Locale: zh-CN (zh_CN); UI: zh-CN
Calc: threaded

But I also experienced the same "toolbar name translation not updated" issue with 7.3/master daily build, presumably the same cause:
Version: 7.3.0.0.alpha1+ (x64) / LibreOffice Community
Build ID: c7500945fc5d5bd2130a2d38be0bd4b15445cd90
CPU threads: 2; OS: Windows 10.0 Build 19043; UI render: default; VCL: win
Locale: zh-CN (zh_CN); UI: zh-CN
Calc: threaded
Comment 1 Ming Hua 2021-11-06 06:56:15 UTC
(In reply to Ming Hua from comment #0)
> 2. Open Impress, enable for example "Outline" toolbar via menu "View >
> Toolbars > Outline".
> 
> [...]
> 
> The steps above are tested with 7.1.7 on Windows 10:
> Version: 7.1.7.2 (x64) / LibreOffice Community
> Build ID: c6a4e3954236145e2acb0b65f68614365aeee33f
One more thing for people who are interested in reproducing but lacking resources to rebuild LO -- the zh-CN translation for this "Outline" toolbar in Impress changed between 7.1.6 and 7.1.7, so can be used to test without manually editing the translation and rebuilding LO.
Comment 2 Kevin Suo 2021-11-08 15:06:56 UTC
Yes, I can reproduce this on master. 

In short:
1. Build commit A (enable any lang pack).
2. Make sure no ./instdir/user exist. 
Run your build with your langpack, then enable "Outline" toolbar via menu "View > Toolbars > Outline".
-> Now the translation of the the toolbar name is “hardcoded” in registrymodifications.xcu of the user profile.
3. Change the translation in translations/source/<locale>/officecfg/openoffice/Office/UI.po for KeyID 92W6B. 
Rebuild without `make clean`, then run your build.
-> Toolbar name not updated.

This issue had impact on release builds. Assume a user installed version A, and a translation is updated in version B, the user will not see the translation updates unless he/she removes the user profile.

Actually I can see multiple such names in registrymodifications.xcu.
Comment 3 Kevin Suo 2021-11-08 15:09:21 UTC
Change component to LibreOffice as this is a UI coding issue rather than a translation issue.
Comment 4 Ming Hua 2021-11-09 15:23:14 UTC
(In reply to Kevin Suo from comment #2)
> Actually I can see multiple such names in registrymodifications.xcu.
I believe all active toolbars, whether active by default or manually activated by user, in all modules that are started at least once, get their translated (and the original English one, for that matter) names stored in user profile.