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

news2024/12/1 0:44:38

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

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

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


📆Date: 2022年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.coloradmin.cn/o/1255727.html

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

相关文章

链表?细啊!超详细的知识点总结!

链表 定义:链表是一种递归的数据结构,它或者为空(null),或者是指向一个结点(node)的引用,该结点含有一个泛型的元素和一个指向另一条链表的引用。 ​ 其实链表就是有序的列表,它在内…

GPT实战系列-GPT训练的Pretraining,SFT,Reward Modeling,RLHF

GPT实战系列-GPT训练的Pretraining,SFT,Reward Modeling,RLHF 文章目录 GPT实战系列-GPT训练的Pretraining,SFT,Reward Modeling,RLHFPretraining 预训练阶段Supervised FineTuning (SFT&#x…

文档向量化工具(二):text2vec介绍

目录 前言 text2vec开源项目 核心能力 文本向量表示模型 本地试用 安装依赖 下载模型到本地(如果你的网络能直接从huggingface上拉取文件,可跳过) ​运行试验代码 前言 在上一篇文章中介绍了,如何从不同格式的文件里提取…

4.整数输入,并输出变量类型【2023.11.26】

1.问题描述 使用 input 函数读入一个整数,并将该整数输出,并在下一行输出变量类型 2.解决思路 使用 type 函数获取变量类型 输入的内容从 input() 函数获取时,它们是字符串类型。但是,我们需要将其转换为整数类型,以…

乘法原理 LeetCode 828. 统计子串中的唯一字符

我们定义了一个函数 countUniqueChars(s) 来统计字符串 s 中的唯一字符,并返回唯一字符的个数。 例如:s "LEETCODE" ,则其中 "L", "T","C","O","D" 都是唯一字符,…

速记:一个TL431应用电路

一个TL431应用电路 仿真结果 输出电压为:5V 负载电阻为: R4 50Ω 如果负载R4加重 显然负载加重,输出就达不到5V. 三极管T1 的作用 没有三极管的情况 同样是保持负载 R 50Ω 可见三极管的作用就是用来放大电流

带你用uniapp从零开发一个仿小米商场_8. 配置pages.json从而实现头部搜索框

通过观察小米商城的头部导航栏的时候可以发现,它是由一个文字图标,和一个输入框,还有一个扫描二维码的按钮 有两种实现方式,一种是自己写一个自定义导航,还有一种是用官方的 这里使用官方的,实现去到pages.json文件,找到index这个页面配置 可以通过给它设置app-plus app-pl…

线性模型加上正则化

使用弹性网络回归(Elastic Net Regression)算法来预测波士顿房屋价格。弹性网络回归是一种结合了L1和L2正则化惩罚的线性回归模型,能够处理高维数据和具有多重共线性的特征。弹性网络回归的目标函数包括数据拟合损失和正则化项: m…

基于jmeter的性能全流程测试

做性能测试的步骤 1、服务器性能监控 首先要在对应服务器上面安装性能监控工具,比如linux系统下的服务器,可以选择nmon或者其他的监控工具,然后在jmeter模拟场景跑脚本的时候,同时启动监控工具,这样就可以获得jmeter…

【LabVIEW学习】3.labview制作安装程序

一。生成exe文件 1.创建可执行文件 (1)创建项目 注意: 1.创建.exe文件,这个文件在labview环境下才可以运行,如果直接传递给其他电脑(没有labview环境),他是不可以运行的。 2.如果已…

线程的状态以及状态转移

一. 线程的状态 NEW: 线程刚被创建, 但是并未启动. 还没调用start方法.RUNNABLE: 这里没有区分就绪和运行状态. 因为对于Java对象来说, 只能标记为可运行, 至于什么时候运行, 不是JVM来控制的了, 是OS来进行调度的, 而且时间非常短暂, 因此对于Java对象的状态来说, 无法区分.T…

一文读懂MySQL基础与进阶

Mysql基础与进阶 Part1 基础操作 数据库操作 在MySQL中,您可以使用一些基本的命令来创建和删除数据库。以下是这些操作的示例: 创建数据库: 要创建一个新的数据库,您可以使用CREATE DATABASE命令。以下是示例: CREA…

重量级消息,微软将ThreadX RTOS全家桶贡献给Eclipse基金会,免费供大家商用,宽松的MIT授权方式

从明年第1季度开始,任何人,任何厂家的芯片都可以免费商用,MIT授权就这点好。 贡献出来后,多方可以一起努力开发,当前首批兴趣小组AMD, Cypherbridge, Microsoft, NXP, PX5, Renesas, ST Microelectronics, Silicon Lab…

华为IE题中的QoS题配置案例

要求:保证局域网视频网段流量50M,在链路空闲时可以到100M 1、拥塞避免:根据AF队列的特性,把视频流量放入AF队列并设置为50M带宽,因为AF队列不但可以保证有50M,AF还可以暂用空闲带宽。 2、流量监管&#xf…

SASS的导入文件详细教程

文章目录 前言导入SASS文件使用SASS部分文件默认变量值嵌套导入原生的CSS导入后言 前言 hello world欢迎来到前端的新世界 😜当前文章系列专栏:Sass和Less 🐱‍👓博主在前端领域还有很多知识和技术需要掌握,正在不断努…

卷积神经网络(CNN)车牌识别

文章目录 一、前言二、前期工作1. 设置GPU(如果使用的是CPU可以忽略这步)2. 导入数据3. 查看数据3.数据可视化4.标签数字化 二、构建一个tf.data.Dataset1.预处理函数2.加载数据3.配置数据 三、搭建网络模型四、设置动态学习率五、编译六、训练八、保存和…

由走“贸工技”的联想联想到传统OEM,带给了自己那些思考?

2022年1月16日,自己来到魔都的第1597天,这城市还是保持着相似的容颜,而自己却悄悄的起了变化。 以前对时间概念其实不是特别敏感,感觉自己有大把的时光可以浪费(虽然知道死亡是个永远无法逃避的话题)&#…

Rust性能优化指南:写出更快的代码

欢迎关注我的公众号lincyang新自媒体,回复关键字【程序员经典书单】,领取程序员的100本经典书单 大家好!我是lincyang。 在Rust编程中,性能优化是一个至关重要的话题。Rust虽然以其高效性能闻名,但正确的优化技巧能够…

sqli-labs(4)

17. 观察页面发现是一个用来更改用户密码的页面,页面中出现了用户Dhakkan user输入Dhakkan passs输入1发现成功找注入点 先在user尝试,发现不管输入什么都失败在pass中尝试注入 在pass中输入1‘ 报错注入 1 and extractvalue(1,concat(0x5c,database(…

Python---练习:使用Python函数编写通讯录系统

预览通讯录系统最终效果 首先,进行需求分析,整个系统功能,分为6个板块,功能如下: ① 添加学员信息 ② 删除学员信息 ③ 修改学员信息 ④ 查询学员信息 ⑤ 遍历所有学员信息 ⑥ 退出系统 系统共6个功能&#xff…