-
Notifications
You must be signed in to change notification settings - Fork 51
Localize RCP app
Andrey Hihlovskiy edited this page Apr 23, 2014
·
25 revisions
We already added intro page to RCP app. Now we localize RCP app.
- Add language-specific product definitions to "build.gradle":
products {
product platform: 'linux', arch: 'x86_32'
product platform: 'linux', arch: 'x86_32', language: 'de'
product platform: 'linux', arch: 'x86_64'
product platform: 'linux', arch: 'x86_64', language: 'de'
product platform: 'windows', arch: 'x86_32'
product platform: 'windows', arch: 'x86_32', language: 'de'
product platform: 'windows', arch: 'x86_64'
product platform: 'windows', arch: 'x86_64', language: 'de'
archiveProducts = true
}
Here we define 8 products: 4 are English, 4 are German.
- Create file "tutorials/MyRcpApp/src/main/java/myrcpapp/Messages.java", insert code:
package myrcpapp;
import java.util.Locale;
import java.util.ResourceBundle;
public class Messages {
private static ResourceBundle res = ResourceBundle.getBundle(Messages.class.getName(), Locale.getDefault());
public static String getString(String key) {
return res.getString(key);
}
}
- Edit file "tutorials/MyRcpApp/src/main/java/myrcpapp/View.java", replace line
btnShowDialog.setText("Show dialog");
withbtnShowDialog.setText(Messages.getString("btnShowDialog_Label"));
, so that the file looks like this:
package myrcpapp;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.ui.part.ViewPart;
public class View extends ViewPart {
@Override
public void createPartControl(final Composite parent) {
parent.setLayout(new RowLayout());
Button btnShowDialog = new Button(parent, SWT.PUSH);
btnShowDialog.setText(Messages.getString("btnShowDialog_Label"));
btnShowDialog.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent event) {
myplugin.HelloWorld.showMessageDialog(parent.getShell());
}
});
}
@Override
public void setFocus() {
}
}
- Edit file "tutorials/MyRcpApp/src/main/java/myrcpapp/ApplicationWorkbenchWindowAdvisor.java", replace line
configurer.setTitle("Hello RCP");
withconfigurer.setTitle(Messages.getString("WindowTitle"));
, so that the file looks like this:
package myrcpapp;
import org.eclipse.swt.graphics.Point;
import org.eclipse.ui.application.ActionBarAdvisor;
import org.eclipse.ui.application.IActionBarConfigurer;
import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
import org.eclipse.ui.application.WorkbenchWindowAdvisor;
public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
super(configurer);
}
public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) {
return new ApplicationActionBarAdvisor(configurer);
}
public void preWindowOpen() {
IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
configurer.setInitialSize(new Point(400, 300));
configurer.setShowCoolBar(false);
configurer.setShowStatusLine(false);
configurer.setTitle(Messages.getString("WindowTitle"));
}
}
- Create folder "tutorials/MyRcpApp/src/main/resources/myrcpapp", create file "View.properties" in it, insert content:
btnShowDialog_Label=Show dialog
- Create file "View_de.properties" in the same folder, insert content:
btnShowDialog_Label=Dialogfenster anzeigen
- Edit file "tutorials/MyRcpApp/src/main/java/myrcpapp/ApplicationWorkbenchWindowAdvisor.java", replace content with: