第九篇:在SOUI中使用多语言翻译】的更多相关文章

为UI在不同地区显示不同的语言是产品国际化的一个重要要求. 在SOUI中实现了一套类似QT的多语言翻译机制:布局XML不需要调整,程序代码也不需要调整,只需要为不同地区的用户提供不同的语言翻译文件即可. 在SOUI中,我们实现了一个使用明文XML的语言翻译模块:translator.dll 为了使用多语言翻译,首先需要准备一个语言翻译的XML文件.demo中使用的翻译文件如下: <?xml version="1.0" encoding="utf-8"?>…
第九篇(书中 2.7~2.8节 内容) 昨天记录到了 2.6节 ,那么今天就从 2.7节 开始. 这个 2.7节 有7个小段,有点长,总结一下重点: 1.调试项目的两种方法. 2.运行项目的两种窗口选择. 3.二维码调试时,注意连接到同一局域网,以及定期清理手机缓存. 4.快速生成二维码插件的使用. 5.程序入口设置文件 index.html 的属性说明. 6.4.10版本之前,以及后续版本修改 index.html 时,要注意的问题. 7.EXML主题描述文件 default.thm.json…
在SOUI中已经提供了大部分常用的控件,但是内置控件不可能满足用户的所有要求,因此一个真实的应用少不得还要做一些自定义控件. 学习一个新东西,最简单的办法就是依葫芦画瓢.事实上在SOUI系统中内置控件和自定义控件的开发流程是完全一样的,因此只需要打开SOUI的源代码,随便找一个控件看一下就大体差不多了. 下面我以controls.extend目录下的的SRadioBox2控件为例对控件开发过程需要注意的地方做一点说明. 要开发一个控件,首先要确定的是应该从哪个控件来继承.选择一个合适的基类是正确…
Win32编程中,用户需要一个新控件时,需要向系统注册一个新的控件类型.注册以后,调用::CreateWindow时才能根据标识控件类型的字符串创建出一个新的控件窗口对象. 为了能够从XML描述的字符串中创建出需要的控件对象,和Win32类似,在SOUI中要创建一个新的控件也同样需要向SOUI系统注册新的控件类. 从demo.cpp的main中我们可以看到类似如下的控件注册控件的代码: //向SApplication系统中注册由外部扩展的控件及SkinObj类 SWkeLoader wkeLoa…
神经网络中常用的激活函数 Introduce 理论上神经网络能够拟合任意线性函数,其中主要的一个因素是使用了非线性激活函数(因为如果每一层都是线性变换,那有啥用啊,始终能够拟合的都是线性函数啊).本文主要介绍神经网络中各种常用的激活函数. 以下均为个人学习笔记,若有错误望指出. 各种常用的激活函数 早期研究神经网络常常用sigmoid函数以及tanh函数(下面即将介绍的前两种),近几年常用ReLU函数以及Leaky Relu函数(下面即将介绍的后两种).对于各个激活函数,以下分别从其函数拱墅.函…
动态语言切换是很多国际化产品的需求,SOUI之前的版本支持静态多语言翻译,通过在程序启动时设置好语言翻译模块,在程序中打开的UI都会自动调用该翻译模块进行文字翻译,但是不支持运行进语言切换. 最近几个网友都提到这个需求,还是决定在SOUI实现一套动态多语言切换机制. 先看看运行效果: 多语言切换首先需要在语言翻译模块管理对象,SOUI中使用一个扩展接口ITranslatorMgr处理. 下面是新版本的语言翻译接口: namespace SOUI { /** * @struct ITranslat…
窗口布局的概念 每一个UI都是由大量的界面元素构成的,在Windows编程,这些界面元素的最小单位通常称之为控件. 布局就是这些控件在主界面上的大小及相对位置. 传统的布局一般使用一个4个绝对坐标来定义一个控件在主窗口的位置.对于窗口是固定大小的界面来说,这种方式是最简单有效的. 然而问题在于在Windows系统上编程,基本上很少有程序的窗口是固定大小的,用户希望它的窗口能够随时调整大小.调整大小后界面里的控件还能够按照一定的规则进行重排. 我自己最讨厌的就是在WM_SIZE里重排控件位置. 随…
不同的SOUI控件可以产生不同的事件.SOUI系统中提供了两种事件处理方式:事件订阅 + 事件处理映射表(参见第八篇:SOUI中控件事件的响应) 事件订阅由于直接将事件及事件处理函数连接,不存在事件分发的问题,这里主要介绍使用事件映射表时的事件分发. 在回答这个问题前,首先了解一下什么是事件分发. 在大型项目中,程序逻辑可能非常复杂,如果将所有UI中控件的事件处理集中在一个消息/事件映射表里,代码的可维护性会变得非常差.解决这个问题常见的方法就是将事件进行分类(如根据来源分类),不同类别的事件采…
像写网页一样做客户端界面可能是很多客户端开发的理想. 做好一个可以实现和用户交互的动态网页应该包含两个部分:使用html做网页的布局,使用脚本如vbscript,javascript做用户交互的逻辑.当需求变化时,只需要在服务端把相关代码调整一下,用户即可看到新的内容(界面). 传统的客户端程序开发流程和网页开发可能完全不同. 首先是界面的布局,在老式的界面布局过程中,程序员先在界面上放好各种控件,然后需要自己通过相应的代码来维护界面在不同状态下控件的显示状态及位置.当界面中元素很多时,单纯布局…
第九篇 Flask 中的蓝图(BluePrint)   蓝图,听起来就是一个很宏伟的东西 在Flask中的蓝图 blueprint 也是非常宏伟的 它的作用就是将 功能 与 主服务 分开怎么理解呢? 比如说,你有一个客户管理系统,最开始的时候,只有一个查看客户列表的功能,后来你又加入了一个添加客户的功能(add_user)模块, 然后又加入了一个删除客户的功能(del_user)模块,然后又加入了一个修改客户的功能(up_user)模块,在这个系统中,就可以将 查看客户,修改客户,添加客户,删除…