Eclipse RCP实现切换中英文的一种思路

实现原理:

由于eclipse没有提供启动参数这项或者说可能有我没找到,所以我通过修改config.ini文件的启动参数,实现切换中英文的目的

默认的rcp产品config.ini文件内容:

-startup
plugins/org.eclipse.equinox.launcher_1.5.700.v20200207-2156.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.1200.v20200508-1552

修改后的内容(此处会让rcp产品以英文方式启动):

-startup
plugins/org.eclipse.equinox.launcher_1.5.700.v20200207-2156.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.1200.v20200508-1552
-vmargs
-Dorg.eclipse.swt.internal.carbon.smallFonts
-Duser.language=en
-Duser.country=US

具体操作:

1、在顶层创建2个按钮

在这里插入图片描述

2、编写Handler代码逻辑

		Locale locale = Locale.getDefault();//获取当前Locale,判断是否要切换语言

		URL url = InternalPlatform.getDefault().getInstallURL();//获取rcp产品安装路径
		File configFile = new File(url.getFile() + File.separator + "config.ini");//获取导出的config.ini位置

		//切换英文
		try (FileWriter writer = new FileWriter(configFile , true)) {
			writer.write("-vmargs\r\n" + "-Dorg.eclipse.swt.internal.carbon.smallFonts\r\n"
				+ "-Duser.language=en\r\n" + "-Duser.country=US");
		} catch (IOException e) {
			e.printStackTrace();
		}


		//切换中文
		String encoding = "UTF-8";
		Long filelength = configFile.length();
		byte[] filecontent = new byte[filelength.intValue()];
		try (FileInputStream in = new FileInputStream(configFile);
		FileWriter writer = new FileWriter(configFile)) {
			in.read(filecontent);
			String string = new String(filecontent, encoding);//获取config.ini文件字符内容
			writer.write(string.replace("-vmargs\r\n" + "-			Dorg.eclipse.swt.internal.carbon.smallFonts\r\n"
						+ "-Duser.language=en\r\n" + "-Duser.country=US", ""));//删除指定的字符
		} catch (IOException e) {
			e.printStackTrace();
			System.err.println("The OS does not support " + encoding);
			return null;
		}

		// 重启rcp程序刷新界面
		PlatformUI.getWorkbench().restart();
		

留言:

这当中省去了很多细节,不过能遇到这个问题的基本都是有经验的rcp开发者了,有问题在评论区留言,我选择我知道的回复,不知道的就没办法了。

目 录 1.富客户端平台 1 1.1.概述 1 1.2.Eclipse RCP 建设风格——插件,扩展和扩展点 1 2.创建你的第一个RCP程序 1 2.1.创建一个RCP程序 2 2.2.启动你的RCP程序 5 2.3.应用程序VS 产品 6 3.应用程序里的插件ID 7 4.Actions的用法(菜单和工具栏) 7 4.1.概述 7 4.2.通过编码添加 8 4.3.由“扩展”方式向程序添加菜单和工具栏 11 5.添加组合键 19 5.1.概述 19 5.2.声明actions的组合键 19 6.系统托盘 24 7.外观 30 7.1.向程序中添加视图模板 31 7.2.向应用程序添加VIEW 36 7.3.向VIEW里添加action 40 8.和编辑器一起工作 51 8.1.概述 51 8.2.创建工程 51 8.3.创建并准备domain 模型 51 8.4.在视口中使用domain模型 57 8.5.加入编辑器 58 8.6.调用编辑器 66 8.7.向编辑器提供内容 70 9.对话框 71 9.1概述 71 9.2.预定义的对话框 71 9.2.1.概述 71 9.2.2.创建工程 71 9.2.3.声明action 71 9.2.4.调用对话框 71 9.3.用户自定义对话框 74 9.3.1.概述 74 9.3.2.创建工程 74 9.3.3.声明action 74 9.3.4.声明action 74 9.3.5.创建对话框 75 10.向导(wizard) 77 10.1.概述 77 10.2.例子 77 11.首选项 85 11.1 首选项 85 11.2.使用首选项 85 11.3.首选项页 91 12.添加状态条 97 12.1.安装状态条 97 12.2.共享状态条 98 13.透视 103 13.1.向你的程序中添加透视图 103 13.2.使透视图可选。 107 13.2.1.使透视图可由一个coolbar可选 107 13.2.2.使透视图可通过菜单选择。 109 14.进度报告 112 15.将外部类包含进你的程序 118 15.1.概述 118 15.2.向构建路径中添加jar 118 15.3.使jar在你的运行路径里有效 119 16.提示和策略 120 16.1.控制台日志 120 16.2.保存用户的布局 121 16.3.获得display 122 16.4.使用eclipse的“保存”action 123 16.5.装载模型 127 16.6.向你的程序添加错误日志视口 127 17.制造一个产品 129 17.1.概述 129 17.2.创建一个工程 130 17.3.测试你的产品 134 18.商标 134 18.1.欢迎页面 134 18.2.商标 135 18.3.风格化launcher 136 19.发布你的产品 137 20.发布引入外部jar的产品 141 20.1.整合外部jar和第三方库 141 Tip 142 21.1.创建一个新工程 144 21.2.创建一个产品 144 21.3.添加依赖性 145 21.4.向程序中添加action 146 21.5.创建一个帮助插件工程////原著写的不好 149 22.附录:配置文件 152 22.1.概述 152 22.2..project 153 22.3.Manifest.MF 154 23.附录:使用接口技术 154 23.2.Jface 154
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值