OK, let's the summarise the issue again: When the permissions are read from permissions.sqlite at start-up, URIs are created from the stored origins. Creating an imap: URI runs a whole lot of MailNews code, which also reads localised names of the standard folder names into static variables. Sadly that happens at the time where l10n is not initialised yet, so users see the untranslated names later. Possible solutions: 1) When reading permissions.sqlite, only import http(s), ftp (and sadly chrome) origins (attachment in Phab) 2) Always translate strings when needed, don't pre-cache them during start-up (attachment 9100751 [details] [diff] [review]) 3) Hacky and nonsense: Only lookup the strings 50 times. That's an empirical value. After 20 lookups there were still not translated, after 50 lookups they were.
Bug 1575512 Comment 57 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
OK, let's the summarise the issue again: When the permissions are read from permissions.sqlite at start-up, URIs are created from the stored origins. Creating an imap: URI runs a whole lot of MailNews code, which also reads localised names of the standard folder names into static variables. Sadly that happens at the time where l10n is not initialised yet, so users see the untranslated names later. Possible solutions: 1) When reading permissions.sqlite, only import http(s), ftp (and sadly chrome) origins (attachment in Phab) 2) Always translate strings when needed, don't pre-cache them during start-up (attachment 9100751 [details] [diff] [review]) 3) Hacky and nonsense: Only lookup the strings 50 times. That's an empirical value. After 20 lookups there were still not translated, after 50 lookups they were (attachment 9100764 [details] [diff] [review]).