First of all you should look for errors: typically typos or wrong variables. The list of unknown words contains words not in the aspell dictionary and “out of their context”; once one has been found, you need to locate the error in the po file. Since “Messages” contains all the (translated) strings for all the po files, you can look for the wrong word there; the structure of the text file is the following:
*** path1/lang.po - "strings for this file" *** path2/lang.po - "strings for this file" ... *** pathN/lang.po - "strings for this file"
If the word is easy to find you won't need any help from me to locate it and you just need to see which po file it belongs to. Emacs has a very handy function "forward-paragraph" (ctrl-up on my system) that takes you directly to the line containing the path. Otherwise you can search backward for "*** " to find it. Things can be more complicated if the unknown word is very short and so it is matched too many times inside the file because it is a “sub-word” of longer words; in that case you should use regexps to restrict your search. Here follow a few practical examples that can help you; refer to some documentation about regexp to find out more. If you use emacs you can match an exact word by using isearch-forward-regexp and "\<word\>". From the shell you can run 'grep -nw "word" lang_all.txt' (the “n” parameter will tell grep to print the line number where the match occurs). Sometimes you may have to look for something like "a word composed by two letters: the first is "p" the second is not a printable char"; in that case "word" in the previous examples can be replaced with "p."