tags:

views:

11

answers:

1

Hi,

I am using "Externalize Strings" widget of Eclipse. On externalizing strings, a messages.properties file is generated with key value pairs.

Say the messages.properties looks like this:

Test_msg1=Add
Test_msg2=Remove
Test_msg3=Include

Say I have a file Test.java with code:

String add = Messages.getString("Test_msg1");
String remove = Messages.getString("Test_msg2");
String include = Messages.getString("Test_msg3");

Next, if I edit Test.java file and remove the two strings "remove" and "include" then I would want the messages.properties file to be updated such that Test_msg2 and Test_msg3 are removed. Is there a way to do this ? Or do I have to edit messages.properties file manually everytime I delete a string from a huge java file?

Thanks, Sony

A: 

When you externalize strings from java file via 'Externalize dialog', you should get a Message.java and message.properties like below,

public class Message extends NLS {
    private static final String BUNDLE_NAME = "com.xxx.ui.internal.Message"; //$NON-NLS-1$
    //Generic Strings:
    public static String Str1;
    public static String Str2;

    static {
    loadMessages();
}
public static void loadMessages() {
    NLS.initializeMessages(BUNDLE_NAME, Message.class);
}
}

Str1=Add
Str2=Remove

If no java code uses the string "Str1", you would find them and remove them via right clicking the Message.java or message.properties, then clicking the context menu item 'source' - 'find broken externalized strings'.

Kane
Thanks a lot. This works
sony