Loading...
 
Skip to main content

Text for translation buried so deep it's unfindable

Status
Open
Subject
Text for translation buried so deep it's unfindable
Version
18.x
Category
  • Usability
Feature
i18n (Multilingual, l10n, Babelfish)
Resolution status
New
Submitted by
hman
Lastmod by
hman
Rating
(0)
Description

I have spent over an hour trying to find out why on earth I was unable to translate the "Control Panel" from the menu. Only after debugging (!) the HTML output I came across a hint that finally led me to the culprit: "Control Panel" isn't what is passed into tra() at all. And the reason is in /installer/schema/20141125_menu_control_panels_tiki.sql, which I quote in full:

Copy to clipboard
# xavidp. Option ' Control Panels' is set with a space in purpose, in order to have it shown in the first position under "Settings" update tiki_menu_options set name=' Control Panels' where name=' Panels'; update tiki_menu_options set name='Settings' where name='Configuration';


There is a nonprinting character, a space (0x20) in front of "Control Panel". And you cannot find this by grepping Tiki's source for tra(), tr() and tr in curly braces at all, because it is written nowhere!

Now that I found that I can include it in my translation, and that works. BUT it won't be found by my automated extract tools, that by now can deal with over a dozen corner cases, will find "hidden" Javascript by both heredoc and direct string definition, crawls through all templates etc. pp. et. al. But I don't have a clue how "bombs" like THAT can be found (automated).

And I doubt that Tiki's built-in mechanisms find that! So this won't be translated into any target language at all.

How can this be identified and extracted?

Thanks for any ideas
hman

Importance
8
Easy to solve?
5
Priority
40
Demonstrate Bug on Tiki 19+
Demonstrate Bug (older Tiki versions)
Ticket ID
7740
Created
Friday 07 May, 2021 09:03:35 UTC
by hman
LastModif
Friday 07 May, 2021 09:08:19 UTC


Show PHP error messages