C# PIE-SDK二次开发界面汉化方法

那些最好的程序员不是为了得到更高的薪水或者得到公众的仰慕而编程,他们只是觉得这是一件有趣的事情!

C# PIE-SDK二次开发界面汉化方法

    • 🍀前言
    • 🌸配置方法
      • 🍕拷贝语言包文件夹
      • 🍔增加窗体代码
      • 🍟运行效果截图
    • 🌹 结语
    • 📧Summary


📆Date: 2023年11月26日
🎬Author: 小 y 同 学
🔖Language: C#


  C#进行PIE-SDK二次开发时界面窗口汉化教程。笔者也是对这个问题耿耿于怀了几个月,终于在技术支持的点拨下偶然领悟了汉化方法,特此记录。

🍀前言

  PIE-SDK是航天宏图自主研发的PIE二次开发组件包,集成了专业的遥感影像处理、辅助解译、信息提取、专题图表生成、二三维可视化等功能,支持C++、C#、Python等主流开发语言。

  如果你在PIE二次开发过程中遇到一些界面(如图层属性、探针工具)是英文的状态,如下图,那么此文章适合你阅读。

图层属性未汉化界面

探针工具未汉化界面

🌸配置方法

  界面的汉化主要包含拷贝语言包文件夹增加窗体代码两个步骤。

🍕拷贝语言包文件夹

  1. 寻找语言包文件夹
    在PIE-SDK安装目录下找到Language文件夹,该文件夹内包含有PIE的汉化包。需要注意的是:Bin目录下放置的是.exe可执行文件,Language文件夹是在.exe文件上一级目录(也就是当前页面)存放。

Language文件夹位置

  1. 找到自己项目启动文件夹
    在VS开发环境中,【单击】自己的窗体项目->【右键】->【属性】->【生成】,输出路径即为项目启动文件夹,也就是项目.exe文件所在位置。

VS属性配置页面

  1. 复制文件夹
    复制Language文件夹到自己项目的.exe可执行文件的上一级目录,至此拷贝语言包文件夹工作完成。

拷贝后的项目启动文件夹


🍔增加窗体代码

  1. 在主窗体的构造函数中添加如下代码
 //汉化PIE.Controls.LanguageManager.GetInstance().InstallTranslator();PIE.Controls.LanguageManager.GetInstance().InstallFonts();
  1. 窗体代码添加完毕

🍟运行效果截图

图层属性汉化界面

探针工具汉化界面

🌹 结语

  1. 汉化的原理大致是:添加的两行代码,在启动文件上一级目录下寻找Language文件夹下面的语言包,如果没有找到,程序是不会报错的,当然也是没有汉化效果的,这也是为什么明明添加的汉化代码却没有效果的原因。
  1. 个人认为难点之一在于拷贝语言包文件夹,以及如何找到项目启动文件夹。最简单粗暴的方法之一是:删掉编译文件夹,然后重新生成一下项目,在新生成的文件夹中找到答案。
  1. 本人也是测绘遥感方向的学习者,愿意结交志同道合的伙伴,对于PIE-SDK二次开发的相关问题可在一定程度上提供帮助。

📧Summary

  有兴趣一起学习编程的小伙伴可以私聊小y一起学习,小y在Python,c/c++,C#和matlab语言上均有一定的基础😜😜😜


  • 路虽远,行则将至;事虽难,做则必成。希望认真学习的你能够有所收获!

  • 如果本文有幸可以帮到您,欢迎您的点赞、收藏与关注,您的点赞、收藏与关注是我创作的最大动力!


微信公众号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/186344.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是PDN的交流阻抗?

什么是PDN的交流阻抗? 在电力电子领域,PDN(Power Distribution Network)的交流阻抗是一个重要的概念,它反映了PDN在交流电源和负载之间传输电能的能力。了解PDN的交流阻抗对于优化电源设计、提高系统性能和可靠性具有重…

SSM SpringBoot vue考勤信息管理系统

SSM SpringBoot vue考勤信息管理系统 系统功能 登录 注册 个人中心 部门信息管理 上班时间管理 考勤信息管理 员工信息管理 签到管理 请假信息管理 加班申请管理 出差申请管理 开发环境和技术 开发语言:Java 使用框架: SSM(Spring SpringMVC Mybaits)或Spring…

珠宝模具3d仿真沉浸式交互展示更易分享传播

3D云展会经过近几年的蓬勃发展,迅速受到参展企业和客户的多方认可和支持,那么随着市场再度恢复,各种展会络绎不绝,想要快速打造一个逼真的线上3D云展会成为企业刚需。3D云展会线上搭建平台是web3d开发公司深圳华锐视点根据领先的三…

CSS 在性能优化方面的实践

前言 CSS(层叠样式表)是一种用于描述网页外观和格式的语言。随着网页变得越来越复杂,CSS文件的大小也随之增加,这可能会对网页性能产生负面 .box {width: 100px;height: 100px;transition: transform 0.3s; }.box:hover {transf…

全网最最全的Jmeter接口测试:jmeter_逻辑控制器_交替控制器Jmeter(22):jmeter_逻辑控制器_交替控制器

交替控制器 该控制器包含的取样器步骤在每次循环中交替执行 交替控制器指每次运行一次时在交替控制器下的采样器只执行一个;如下图: 忽略子控制模块:如果勾选此项,交替控制器将子控制器像单一请求元素一样,一次 只允许一个请求/…

Java中的JMX的使用

文章目录 1. 定义和存在的意义2. 架构2.1 Instrumentation2.2 JMX Agent2.3 Remote Management 3. 启动和连接3.1 注册MBean3.2 有两个方式启动JMX Agent3.3 Remote Management(客户端) 4. MBeanServerConnection使用4.1 列出所有的MBean4.2 列出所有的Domain4.3 MBean计数4.4 …

算法:Java计算二叉树从根节点到叶子结点的最大路径和

要求从根节点到叶子结点的最大路径和,可以通过递归遍历二叉树来实现。对于二叉树中的每个节点,我们都可以考虑包含该节点的最大路径和。在递归的过程中,我们需要不断更新全局最大路径和。 具体的思路 递归函数设计: 设计一个递归函…

常用的设计模式

常用的设计模式: 一、单例模式 java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、双重检查锁定 1、单例模式有以下特点:   a、单例类只能有一个实例。   b…

36.JavaScript补完计划:typescript

点赞收藏加关注,你也能住大别墅! 一、什么是typescript 二、应用场景 我认为JavaScript的特点就是在于它强大的延展性,不仅蔓延到了后端,而且也逐渐成为代码世界无法被忽视的存在。那么,编写js代码时我们都会经常遇到…

uniapp项目打包h5,支持文件协议,使用vconsole调试移动端

uniapp项目需要打包h5&#xff0c;并且需要嵌套到一个原生的移动端项目中&#xff0c;需要支持文件协议能直接访问 打包设置 设置./基础路径 引入vconsole调试移动端 <script src"https://unpkg.com/vconsole/dist/vconsole.min.js"></script>可以将…

【Android Jetpack】Lifecycle 感知生命周期

文章目录 背景示例LifeCycle的原理LifecycleOwner自定义LifecycleOwnerLifecycleObserver 示例改进使用LifecycleService解耦Service与组件整个应用进程的生命周期ProcessLifecycleOwner 背景 在Android应用程序开发中&#xff0c;解耦很大程度上表现为系统组件的生命周期与普…

[跑代码]BK-SDM: A Lightweight, Fast, and Cheap Version of Stable Diffusion

Installation(下载代码-装环境) conda create -n bk-sdm python3.8 conda activate bk-sdm git clone https://github.com/Nota-NetsPresso/BK-SDM.git cd BK-SDM pip install -r requirements.txt Note on the torch versions weve used torch 1.13.1 for MS-COCO evaluation…

windows远程桌面登录,提示:“出现身份验证错误,要求的函数不受支持”

问题&#xff1a; windows登录远程桌面&#xff0c;提示&#xff1a;“出现身份验证错误&#xff0c;要求的函数不受支持”&#xff0c;如下图&#xff1a; 问题原因&#xff1a; windows系统更新&#xff0c;微软系统补丁的更新将 CredSSP 身份验证协议的默认设置进行了调…

Windows + docker + python + vscode : 使用容器docker搭建python开发环境,无需本地安装python开发组件

下载docker for Windows docker window下载 如果没有翻墙工具&#xff0c;可以该网盘中的docker 链接&#xff1a;https://pan.baidu.com/s/11zLy3e5kusZR-4m_Fq_cqg?pwdesmv 提取码&#xff1a;esmv 安装docker docker的安装会重启电脑&#xff0c;不要惊讶&#xff0c;且…

Unity 注释的方法

1、单行注释&#xff1a;使用双斜线&#xff08;//&#xff09;开始注释&#xff0c;后面跟注释内容。通常注释一个属性或者方法&#xff0c;如&#xff1a; //速度 public float Speed;//打印输出 private void DoSomething() {Debug.Log("运行了我"); } …

构建智能预约体验:深度解析预约系统源码的代码精髓

随着数字化时代的发展&#xff0c;预约系统在各行业中扮演着越来越重要的角色。本文将深入研究预约系统源码&#xff0c;通过代码示例分析其技术要点&#xff0c;为开发者提供实用的指导&#xff0c;助力构建智能、高效的预约体验。 技术栈综述 预约系统源码采用了现代化的技…

JAVEE初阶 多线程基础(四)

线程安全 一.线程安全存在的问题二.锁三.关于锁的理解四.关于锁操作混淆的理解4.1两个线程是否对同一对象加锁 一.线程安全存在的问题 为什么这里的count不是一百万呢?这就是线程所存在的不安全的问题,由于线程是抢占式执行,同时执行count,操作本质是三个指令 1.load 读取内存…

带大家做一个,易上手的家常炒鸡蛋

想做这道菜 先准备五个鸡蛋 然后将鸡蛋打到碗里面 然后 加小半勺盐 这个看个人喜好 放多少都没问题 不要太咸就好 将鸡蛋搅拌均匀 起锅烧油 油温热了之后 放三个干辣椒进去炒 干辣椒烧黑后 捞出来 味道就留在油里了 然后 倒入鸡蛋液 翻炒 注意翻炒 不要粘锅底 或者 一面糊…

南开大学与字节跳动研究人员推出开源AI工具ChatAnything:用文本描述生成虚拟角色

南开大学与字节跳动研究人员合作推出了一项引人注目的研究&#xff0c;发布了一种名为ChatAnything的全新AI框架。该框架专注于通过在线方式生成基于大型语言模型&#xff08;LLM&#xff09;的角色的拟人化形象&#xff0c;从而创造具有定制视觉外观、个性和语调的人物。 简答…

深度解析 Spring Security 自定义异常失效问题:源码剖析与解决方案

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…