我剛剛完成this國際化教程,我非常滿意。但是我想知道,如果我創建一個工具欄併爲用戶提供一些選項來更改語言,那麼它將如何在我的應用程序中起作用?我相信應用程序需要重新啓動,我期待eclipse爲它提供動態行爲。所以沒有預期。如何以編程方式更改日食應用程序中的應用程序語言?
2
A
回答
0
我們這樣做是這樣的:
IPreferenceStore preferenceStore = new ScopedPreferenceStore(new InstanceScope(),getBundle().getSymbolicName());
preferenceStore.setValue("language", locale.toString()); //$NON-NLS-1$
getWorkbench().restart();
雖然你可能從綁定到一個處理一個參數化的Command獲得區域,如:
public class ChangeLanguageHandler extends AbstractHandler implements IElementUpdater {
private static final String PARAM = "lang"; //$NON-NLS-1$
@Override
public Object execute(final ExecutionEvent event) throws ExecutionException {
// Consider to supress deselection event:
if (event.getTrigger() instanceof Event) {
final Widget widget = ((Event) event.getTrigger()).widget;
if (widget instanceof MenuItem) {
if (!((MenuItem) widget).getSelection()) {
return null;
}
}
}
final Shell shell = HandlerUtil.getActiveShell(event);
final String lang = event.getParameter(PARAM);
if (openDialogAndAskIfUserIsSureAboutThis_BecauseItRequiresARestart) {
invokeCodeAboveWithTheNewLocale(new Locale(lang));
}
return null;
}
// Update the Checked State...
@SuppressWarnings("rawtypes")
@Override
public void updateElement(final UIElement element, final Map parameters) {
final Object param = parameters.get(PARAM);
element.setChecked(Locale.getDefault().getLanguage().equals(param));
}
1
你應該看看這個博客文章:
有一個org.eclipse.e4.core.services.nls.ILocaleChangeService
在e4環境中,但您需要爲它準備應用程序。
最佳下載:如果你不使用E4 https://github.com/fipro78/e4translationexample
或不介意的話,你可以使用此代碼(未測試)重新啓動:
// set the eclipse relaunch property
StringBuffer arguments = new StringBuffer();
arguments.append("${eclipse.vm}\n"); //$NON-NLS-1$
arguments.append("-nl\n").append("de").append("\n"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
arguments.append("-vmargs\n"); //$NON-NLS-1$
arguments.append(System.getProperty("eclipse.vmargs")); //$NON-NLS-1$
System.setProperty("eclipse.exitcode", Integer.toString(IApplication.EXIT_RELAUNCH)); //$NON-NLS-1$
System.getProperties().setProperty(IApplicationContext.EXIT_DATA_PROPERTY, arguments.toString());
PlatformUI.getWorkbench().restart();
保持請記住,在開發環境中這不起作用,因爲不支持重新啓動。
相關問題
- 1. iPad應用程序 - 以編程方式更改語言
- 2. 如何以編程方式更改應用程序語言無需重新啓動我的應用程序?
- 3. iOS:如何以編程方式更改應用程序語言而無需重新啓動應用程序?
- 4. 以編程方式更改iOS中的本地化應用程序語言
- 5. 以編程方式更改應用程序語言(用戶預置)
- 6. Windows應用商店應用:以編程方式更改語言
- 7. C#以編程方式更改應用程序語言UWP實時
- 8. 如何以編程方式更改默認應用程序?
- 9. 如何以編程方式僅更改我的應用程序的語言和語言環境
- 10. 在應用程序中更改語言
- 11. 更改Android應用程序的語言
- 12. 更改ios應用程序的語言
- 13. 我能否以編程方式重新啓動iPhone應用程序以在Swift中應用語言更改
- 14. 更改語言的應用程序編程
- 15. 更改應用程序語言
- 16. 更改網絡應用程序語言
- 17. 更改Android應用程序語言
- 18. 從應用程序更改語言?
- 19. 更改語言在應用程序
- 20. 以編程方式更改應用程序的AppPool
- 21. 教堂編程語言應用程序
- 22. 作爲設備語言更改更改應用程序語言
- 23. 如何更改Surface應用程序的應用程序方向
- 24. Visual C#:Metro應用程序更改背景(以編程方式)
- 25. Android:以編程方式更改應用程序標籤?
- 26. 如何在.NET應用程序中以編程方式更改應用程序類型?
- 27. 如何以編程方式更新Android應用程序
- 28. 如何以編程方式更新所有應用程序
- 29. WHMCS,以編程方式更改語言
- 30. 鈦 - 以編程方式更改語言
哇,謝謝。 – user2405469 2014-10-17 08:47:07