Hi guys,
I've put together the following doc for the introduction of message contexts. It's still a bit raw but I'd improve it for the wiki version.
Could you please have a look and help proofread it? I'd like to ensure I didn't miss an important step.
Thanks in advance.
Frédéric Delanoy
PS: BTW what is the reference version? en_US.po or en.po?
*********
Adding one/more message contexts (ADD LINK TO EXTERNAL DOC) (QUICK MC EXPLANATION)
Prerequisite: enable maintainer mode using ./configure --enable-maintainer-mode (you might have to add some development packages; check with your distribution for infos).
1. Locate strings to be "altered"
Say you have in your localized po file:
#: file1.rc:123 file2.rc:456 msgid "ambiguous word" msgstr "translation"
and you want to disambiguate, you'd do the following
2. Find appropriate translations - check the respective rc entries (in file1.rc line 123) FOO "ambiguous word"
(in file2.rc line 456) BAR "ambiguous word"
and find their meaning/context (e.g. using some code browsing tools, like cscope to find references; running the program is recommanded, ...)
3. Add the messages contexts - The following syntax is used: "translation" -> "#msgctxt#your context#translation"
- You end up with sthg like
FOO "#msgctxt#context #ambiguous word#"
Similarly
BAR "#msgctxt#context 2#ambiguous word#"
3. Run 'make depend && make' 4. Edit your po file to add the new translations 5. Ideally, remove the "#, fuzzy" automatically inserted in the En_US.po reference file (and En.rc ). 6. Run 'make' again and test your changes.