Bug 147611

Summary: Extend devtools to catch missing textdomain in C++ code
Product: [openSUSE] SUSE Linux 10.1 Reporter: Stefan Hundhammer <shundhammer>
Component: YaST2Assignee: Efthimios Toulas <etoulas>
Status: RESOLVED FIXED QA Contact: Edith Parzefall <eparzefall>
Severity: Enhancement    
Priority: P5 - None    
Version: Beta 3   
Target Milestone: ---   
Hardware: All   
OS: SUSE Other   
Whiteboard:
Found By: Development Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Stefan Hundhammer 2006-02-02 13:16:35 UTC
See also bug #145189

If messages in C++ code are marked for translation with '_("something")', but that C++ file does not have a 'Textdomain "xy"' in its header, that text will not go to the .pot file and thus never go out to the translators. It will be silently ignored.

We should add a check to catch that case. Obviously the maintainer of the C++ code has to specify what textdomain (and thus what .pot file) that message belongs to - we can't do that automatically (or can we)?.

Since .pot file generation is moved out to a separate script already, it should not be too hard to do that check.
Comment 1 Stefan Hundhammer 2006-02-02 13:21:55 UTC
Hint for whoever does that: our makefiles call "y2tool y2makepot -s".
Comment 2 Efthimios Toulas 2006-02-24 17:39:53 UTC
Missing textdomains are caught in C, C++, YCP and Perl code, if _(...) or __(...) is used.

The default behavior is like following now:

make package  *fails*
make pot      *warns*

if a textdomain is missing (and needed).
Comment 3 Efthimios Toulas 2006-02-27 17:48:40 UTC
Forgot to close. :-)