国际化

Spring国际化--通过数据库存储国际化数据实现动态国际化 最近参与了一个境外钱包的项目,要求是实现SpringMVC的动态国际化。之前用Spring做国际化,都将国际化信息写在properties文件中。这次在项目中遇到一个需求,需要把properties文件去掉,直接从数据库读取国际化信息。在网上查了好多资料,和很多朋友一样一直卡在一个地方一直出不来,就是Spring容器初始化时,要查询数据库国际化表里的国际化数据时,DAO层接口一直注入不进来,导致查... 阅读详情
 

一、具备的特征:

1、对于程序中使用的文本元素(例如:菜单栏、导航栏、错误提示、状态信息等),需要根据来访者的地区和国家,选择不同语言的文本为之服务

2、对于程序中动态生成的数据(例如:日期、货币),软件应能根据当前的国家或地区的文化习惯进行显示

二、固定文本元素的国际化

·可以把固定不变的文本信息写到一个properties中,并根据不同的国家编写不同的properties文件。这一组properties文件被称为一个资源包

·提供了ResourceBundle类用于描述一个资源包

·创建资源包和资源文件

一个资源包中的资源文件都有一个相同的基名,而且每个资源文件都必须有表示本地信息的附加部分的信息

例如:

一个资源包的基名是:myresource;则与中文和英文相对应的资源文件则为:myresource_zh.properties,myresource_en.properties

每一个资源包都有一个默认的资源文件,这个文件不带有表示本地信息的部分。若resourceBundle对象在资源包中找不到与用户匹配的资源文件,他将选择与资源包中相近的资源文件,若是再找不到,则使用默认的资源文件。

    ·资源文件的书写格式

资源文件的内容通常采用“关键字=值”的形式,软件根据关键字检索值显示在页面上。一个资源包中的所有的资源文件的关键字是相同的

并且所有的资源文件中采用的是ASCII字码,对于想中文这样的非ASCII字符,需进行编码。

    ·在java类中编写代码实现固定文本元素的国际化

        Locale locale=new Locale("en");

            //用来描述资源包下的信息

ResourceBundle bundle1=ResourceBundle.getBundle("com.hbsi.resource.myresource",locale);

            //读取资源文件中的键值对,指定是哪一个资源文件

            String username1=bundle1.getString("username");

            String password1=bundle1.getString("password");

            String submit1=bundle1.getString("submit");

            System.out.println(username1+":"+password1+":"+submit1);

ResourceBundle类提供了一个静态方法getBundle,该方法用于装载资源文件,该方法的第一个参数是资源包名,且为完整的资源包名,第二个参数是指定的资源文件

加载资源文件后,程序就可以调用ResourceBundle实例对象getString方法获取指定的资源信息名称所对应的值

·在jsp页面中使用固定文本元素的国际化标签

1、<fmt:setLocale>

<%

            Locale locale=new  Locale("zh","CN");

            request.setAttribute("locale",locale);

        %>

    <%-- 在jsp页面中显示设置用户的本地化信息,并将设置的本地化信息一locale对象存储在web作用域中,使用了该标签设置本地化信息后,国际化标签库中的其他的标签将使用本地化信息,而忽略客户端浏览器传递过来的本地信息,如果value的值为null,该标签将采用客户端浏览器传递过来的本地信息--%>

    <!--

        <fmt:setLocale value="${locale}"/>

    -->

    <%-- 也可以是一个字符串:语言_国家     --%>

    <!--

        <fmt:setLocale value="zh_CN"/>

-->

2、<fmt:setBundle>

用于根据标签<fmt:setBundle>设置的本地化信息创建一个资源包实例化对象,并将绑定到一个web域的属性上。

     <fmt:setBundle basename="basename"

            [var="varName"]

            [scope="{page|request|session|application}"] />

<fmt:setBundle>标签有如下一些特性:

(1)如果basename属性的值为null或空字符串,或找不到basename属性指定的资源,<fmt:setBundle>标签保存到Web域中的属性的值为null。

(2)如果指定了var属性,<fmt:setBundle>标签将把ResourceBundle实例对象以var属性的值作为域属性名称保存到Web域中。

(3)如果没有指定var属性,<fmt:setBundle>标签将把ResourceBundle实例对象以域属性名javax.servlet.jsp.jstl.fmt.localizationContext保存到Web域中。所有没有嵌套在<fmt:bundle>标签中且未指定bundle属性的<fmt:formatDate>都将使用该标签创建的资源包。

3、<fmt :bundle>

fmt:bundle>标签与<fmt:setBundle>标签的功能类似,但它创建的ResourceBundle实例对象只在其标签体内有效

4、如果设置了<fmt:bundle>标签的prefix属性,则其中嵌套的<fmt:message>标签的key属性值中就可以省略prefix属性设置的前缀部分,这对要使用具有相同前缀的多个关键字的情况提供了一些简便。

    5、<fmt:message>

<fmt:message>标签用于从一个资源包中读取信息并进行格式化输出,它有如下一些使用语法格式:

语法1,没有标签体的情况:

<fmt:message key="messageKey"  

            [bundle="resourceBundle"]

            [var="varName"]

            [scope="{page|request|session|application}"] />

语法2,在标签体中指定格式化文本串中的占位符参数的情况:

<fmt:message key="messageKey"

            [bundle="resourceBundle"]

            [var="varName"]

            [scope="{page|request|session|application}"]>

    <fmt:param>subtags

</fmt:message>

语法3,在标签体中指定消息关键字和可选择的占位符参数:

<fmt:message [bundle="resourceBundle"]

            [var="varName"]

            [scope="{page|request|session|application}"]>

    key

    optional <fmt:param>subtags

</fmt:message>

<fmt:message>标签有如下一些特性:

·如果指定的资源不存在,输出“???<key>???”形式的错误信息。

·如果ResouceBundle中不存在key属性指定的信息,输出“???<key>???”形式的错误信息。

·如果key属性的值为null或空字符串,输出“??????”形式的错误信息。

·如果没有指定var属性,<fmt:message>标签将直接输出格式化的结果;如果指定了var属性,则<fmt:message>标签将格式化的结果保存在scope属性指定的Web域中,保存在Web域中的属性名称为var属性指定的值。如果指定了scope属性,就必须指定var属性。

·要输出的消息的关键字可以使用key属性指定,也可以在标签体中指定。如果<fmt:message>标签嵌套在<fmt:bundle>标签内,并且<fmt:bundle>标签设置了prefix属性,则该属性的值追加到<fmt:message>标签指定的关键字的前面。

·可以通过在<fmt:message>标签内嵌套<fmt:param>标签来指定格式化文本串中的占位符的参数值,每个<fmt:param>标签分别设置一个参数,各个<fmt:param>标签的顺序与格式化字符串的参数相对应,即第一个<fmt:param>标签对应于格式化字符串中的第一个参数,第二个<fmt:param>对应于格式化字符串中的第二个参数,依次类推。

·如果<fmt:message>标签处理的格式化文本串中包含有参数,但其中没有嵌套与该参数对应<fmt:param>标签,则直接输出该参数在格式化文本串中的原始形式。

 

三、动态数据的国际化

·由于是在程序运行是动态生成,所以无法向文字一样简单的将他们从应用程序中分离出来而是要特殊处理

·提供了java.util包和java.text包中的类解决

·Locale类

    实例对象代表一个特定的地理,政治文化区域,实例对象本身不会去验证他代表的语言和国家的地区信息是否正确,只是向本地铭感的类提供国家地区信息

·DateFormat类

可以按国家地区格式化输出日期、也定义了一些用于描述日期、时间的显示模式的int常量,包括FULL、LONG、MEDIUM、DEFAULT、SHORT,可以使用这些常量,控制日期/时间的显示长度

方法:format:将date对象格式化为符合某个本地环境习惯的字符串

    Parse:将字符串解析为日期/时间对象

·NumberFormat类

将一个数值格式化为符合某个国家地区习惯的数值字符串,也可以将符合某个国家地区习惯的数值字符串解析为对应的数值

    Formt方法:讲一个数值格式化为符合某个过家地区习惯的数值字符串

    Parse方法:警服个某个国家地区习惯的数值字符串解析为对应的数值

·MesseageFormat(动态文本)

i18n 国际化 一 、什么是 i18n 国际化? 国际化(Internationalization)指的是同一个网站可以支持多种不同的语言,以方便不同国家,不同语种的用户访问。 关于国际化我们想到的最简单的方案就是为不同的国家创建不同的网站,比如苹果公司,他的英文官网是: http://www.apple.com 而中国官网是 http://www.apple.com/cn 苹果公司这种方案并不适合全部公司,而我们希望相同的一个网站,而不同人访问的时候可以根据用户所在的区域显示 不同的语言文字,而网站的布局样式等不发生改 阅读详情

相关推荐

iOS 实现国际化

前言 因为我看的书里面提到国际化,而且我最近把手机上的语言更改成了英文,有很多App换成了英文名,比如微信。所以我开始学习国际化,虽然国内的App大多数很少需要国际化,但是目光不能短浅,还是要学习丰富自己。(日常鸡汤句) 这里不妨给大家展示一下我的手机界面,系统语言分别为英文和中文对比。 大家可以进行对比,是否这些App本身如此优秀,而在细节上也更加完美呢? 那你是否也想让自己研发

王颜华的博客 967

RUOYI分离版实现动态国际化

VUE动态国际化

lan19900810的博客 1万+

ANSYS Fluent 2023R2实战:用欧拉多相流模型搞定流化床模拟(附详细参数避坑)

本文详细解析了ANSYS Fluent 2023R2中欧拉多相流模型在流化床模拟中的应用,包括模型选择、材料属性设置、相间作用力配置及初始化技巧。特别针对高颗粒浓度工况提供参数优化方案,帮助工程师提升模拟精度与效率,适用于化工、能源等领域的流化床反应器设计。

weixin_30938149的博客 268

VUE + i18n 全动态国际化解决方案

本文介绍了前端项目国际化(i18n)的优化实现方案。针对中英文长度差异,采用单行直译、多行直译和缩写+释义三种展示方式;重构i18n文件结构为按业务模块划分,便于分步实施;实现动态数据和静态资源的国际化加载;提供了国际化公共组件T_r和三个公共方法(g_tr/g_tp/g_td)来处理不同场景的国际化需求。通过VueI18n配置和mixins混入,使项目能灵活适配多语言环境,支持渐进式国际化改造。

qq_25329389的博客 1452

基于FMCW技术的毫米波雷达测速原理与应用

调频连续波(FMCW)技术是毫米波雷达中实现高精度测速的核心方法之一。本文详细介绍了FMCW测速的基本原理、信号处理流程以及在实际应用中的关键技术。通过分析FMCW雷达的多普勒效应和频率差测量方法,本文展示了如何利用FMCW技术实现目标速度的高精度检测。此外,本文还探讨了FMCW测速在自动驾驶、智能交通和工业自动化等领域的应用案例,为毫米波雷达开发者提供了理论支持和实践指导。

不谈枯燥公式,只聊雷达趋势。用大白话解读毫米波里的黑科技。 1137

【本体】Protege高效批量导入实例(Individuals)的自动化实践

本文详细介绍了在Protege中高效批量导入实例(Individuals)的自动化实践方法。通过分析Protege本体文件结构,提供Python脚本示例,帮助用户快速处理大规模数据导入,显著提升知识图谱构建效率。特别适合需要处理数千个实例的医疗、制药等领域应用。

weixin_30275415的博客 408

SpringBoot实现动态数据国际化

大家好,我是Bivin,最近项目中遇到了动态数据多语言切换的需求,平台的动态数据需要支持中文简体、中文繁体、英语三种语言的自由切换,也就是所谓的国际化,我也是头一次接到这样的需求,去网上搜了搜发现对应的方案寥寥无几,算了,自己干吧,就这样总结出了三种我觉得可行的方案,凑合看吧!

BinvinCode技术分享 3706

药物对接仿真软件:HADDOCK_(9).结果分析方法

HADDOCK是一种强大的药物对接仿真工具,通过对生成的输出文件进行详细的分析,我们可以验证仿真结果的可靠性,并为进一步优化药物设计提供依据。常见的分析方法包括解读输出文件、使用可视化工具进行结构分析、评估对接模型的稳定性和准确性等。通过这些步骤,我们可以更全面地了解受体和配体的结合模式,从而提高药物设计的成功率。

kkchenjj的博客 1006

SpringBoot——国际化

【4】去页面获取国际化值(红色部分,国际化用#{})(链接用@{表示}绿色部分):效果:根据浏览器语言的设置切换国际化。【6】当点击页面 “中文” or “English” 时切换中英文,页面参照4)信息。系统就会自动识别到是配置国际化。就会切换到国际化视图,可以右键。【5】浏览器切换,能够实现国际化的原理:国际化。自动配置好了管理国际化资源配置文件的组件;【2】如果有中文,需要设置编码格式。国际化默认配置文件,同时创建。【1】编写国际化配置文件;【7】将自己写的类,加入到。容器中,方法的名字必须是。

程序猿进阶 4768

零基础快速学习 ABAP 读者意见反馈和下一步写作计划表

大家在学习教程过程中,如果有任何关于 SAP ABAP 开发方面想了解的内容,可以直接在教程各篇文章下评论留言,我会将大家的意见统一汇总到下面的表格,作为我更新教程的内容参考来源之一。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 4273

QT-Creator安装教程(windows)

本文介绍了Qt的下载安装步骤:1)通过镜像源下载安装包;2)运行exe文件时使用命令行参数指定镜像地址;3)在安装过程中选择路径和自定义安装组件,包含QT5和QT6版本的详细安装说明;4)安装后可继续添加扩展包或卸载组件。重点提示了QT6必须勾选的关键组件,并提供了组件管理的操作方法。

qq_53545309的博客 3106

springboot实现国际化

在springmvc中实现国际化的步骤一般分为以下几步: 1)、编写国际化配置文件; 2)、使用ResourceBundleMessageSource管理国际化资源文件 3)、在页面使用fmt:message取出国际化内容 在springboot中自动装配好了国际化的组件,我们只需要进行简单的配置和取值即可, 1)、编写国际化配置文件; 配置文件一共有三个,一个默认配置文件,一个英文,一个中文 ...

菜鸟的自我素养的博客 1万+

《备考系统分析师》 - 专栏介绍和目录

本专栏提供软考高级系统分析师全套备考资料,包含四大核心内容:1.详细考点梳理(覆盖基础知识、关键技术、案例实践三大模块16个章节);2.历年真题及解析(2009-2022年所有真题含综合知识、案例分析和论文);3.100+篇高质量论文范文;4.预测模拟题。早鸟价仅需9.9元,可节约80%资料搜集时间,帮助考生高效备考、顺利通过考试。专栏持续更新,有问题可随时联系作者。

数据知道的博客 1万+

SpringBoot国际化

Spring Boot Validation起初其并不直接支持读取Spring Boot自身的国际化配置(通过spring.messages进行配置),而是需要在resources/ValidationMessages.properties中进行配置的国际化属性才会生效,而后续在Spring Boot 2.6+版本才支持Validation与Spring Boot自身的国际化配置相结合。当我们在开发国际化的网站时,后端接口的信息需要根据用户所使用的语言返回对应的内容。

夏壹分享 3640

火灾图像检测识别:cnn卷积神经网络 Adaboost 支持向量机 随机森林 决策树 完整代码数据

火灾图像检测识别:cnn卷积神经网络 Adaboost 支持向量机 随机森林 决策树 完整代码数据

862

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

React 国际化

使应用程序支持多语言的能力。根据用户的语言、地区设置调整内容,如日期、时间、货币格式等。对于简单的项目,可以使用上下文和 JSON 文件实现国际化。React 国际化是构建全球化应用的关键。通过使用或react-intl等工具,可以高效实现多语言支持。对于简单需求,自定义国际化方案也是一种灵活的选择。在开发过程中,良好的规划、模块化的语言管理以及动态语言切换功能,可以大幅提高开发效率和用户体验。通过遵循国际化最佳实践,开发者能够创建更加多样化和易于维护的 React 应用。

Flying_Fish_roe的博客 1338

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Spring——国际化

国际化也称作i18n,其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数。由于软件发行可能面向多个国家,对于不同国家的用户,软件显示不同语言的过程就是国际化。通常来讲,软件中的国际化是通过配置文件来实现的,假设要支撑两种语言,那么就需要两个版本的配置文件。

Ling_suu的博客 1120

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

iOS国际化

在真正将国际化实践前,只知道通过NSLocalizedString方法将相应语言的字符串加载进来即可。但最近公司项目的新需求增加英文版本,并支持应用内无死角切换~,这才跳过各种坑实现了应用内切换语言,并记录至此。

mokai 7339

SpringBoot_国际化_点击国际化

SpringBoot_国际化_点击国际化

底层码农 6208

jquery国际化

近期公司准备重构项目,语言翻译要求不能用映射表,后来发现了jquery国际化(jQuery.i18n.properties ),在前端实现 先简单的一下jQuery.i18n.properties jQuery.i18n.properties是一款轻量级的jQuery国际化插件,能实现Web前端的国际化。 jQuery.i18n.properties是一款轻量级的jquery国际化插件,能实现We...

小丑鱼家的猪猪 3788

Spring国际化实现

spring作为一个开源框架,对国际化自然提供了支持。说到国际化,有些人认为用处不大,那是因为仅仅从语言的角度考虑的。确实,如果仅简体中文就够了的话,没必要用国际化,但国际化另一特点特对我们来说非常有用。那就是提示信息的统一管理。 我们可以将所有提示语都统一写在国际化资源文件里,而且它还支持动态传入参数,即可以写一个提示语模板,根据参数动态生成提示语。这样不但可以避免因为代码文件编码的原因造成的

鹏霄万里展雄飞 1万+

springmvc国际化

国际化(internationalization), 简称国际化,一个产品支持国际化是指产品在无需做大的改变就能够适应不同的语言和地区的能力,i18n是指是一种让软件在开发阶段就支持多种语言的技术。

cz88888888666的博客 1197

七、SpringBoot 国际化

1、编写国际化文件 (1)、在 resource 文件夹下创建名为 i18n 的文件夹 (2)、在 i18n 文件夹下创建国际化文件,创建好文件后,应当是下面这样的视图 (3)、国际化文件内容 login.properties: login.btn=登录 login.password=密码 login.remember=记住我 l...

PZHU_CG_优快云的博客 3060

Springboot3国际化

Spring Boot 3 提供了强大的国际化支持,使得应用程序可以根据用户的语言和区域偏好适配不同的语言和地区需求。国际化资源文件通常放在可以通过在或或者在配置类中定义在代码中可以通过来获取国际化消息。例如,在控制器中根据请求参数确定语言环境并获取对应的消息。如果使用 Thymeleaf 作为模板引擎,可以在模板中直接使用国际化消息。需要确保在中启用了国际化支持,并且在模板中使用#{}表达式引用消息键。Spring Boot 提供了来自动检测和设置客户端的语言环境。可以使用或自定义的。

编码浪子的专栏 977

Flutter 实现国际化_系统自带控件的国际化和其他文本国际化

一. 国际化的认识 开发一个App,如果我们的App需要面向不同的语种(比如中文、英文、繁体等),那么我们需要对齐进行国际化开发。 国际化的英文称呼:internationalization(简称为i18n,取前后两个字母,18表示中间省略字母的个数) App国际化开发主要包括:文本国际化(包括文本的顺序),Widget显示的国际化: 比如我们下面开发的这个App 某些文本在英文环境下应该显示为英文; 某些Widget在中文环境下,应该显示中文(比如弹出的时间选择器);

KEEP RUNNING的博客 1278

JavaWeb开发——软件国际化(文本元素国际化)

前几天围绕着JDBC编程进行了系统的学习。现在我们对Java程序数据库操作已经是轻车熟路了。也学会了使用各种框架来帮助我们简化编程。 今天是学习计划的第七天,虽然学习热情没有前几天高涨了。但是,写博客总结的习惯应该要坚持下去。废话不多说了。 今天的学习内容是JavaWeb开发——软件国际化。 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的...

。。。 2667
上一篇: 自定义标签的案例
下一篇: 国际化标签后续
ping159
博客等级 码龄15年 6粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值