第六章 Localization

SLAM的一些学习笔记 目录 一.基础概念 1)关于Hx=g方程中 没有位姿与位姿的约束 H为什么是J的转置乘以J 2)关于雅克比矩阵: 2.1)所谓增量方程系数的路标部分为什么是对角阵 3)所谓边缘化 4)邻接矩阵(Adjacency Matrix) 5)关于非线性优化定位和稠密建图的深度滤波器 6)上采样和下采样 7)专有名词 二.各个开源代码 2.1 dso 前后端 滑动窗口 边缘... 阅读详情

 

第六章 Localization
 
引文
 
假如我们开发了一个在中文环境下运行的页面,代码如下:
<html>
<head>
<title>欢迎 </title>
</head>
<body>
    <h1>
        欢迎到来!
    </h1>
</body>
</html>
 
之后又假如,有一天我们公司的业务扩展到了日本,和美国,那么我们必须要订制另外的两张不同的页面,代码为:
 
<html>
<head>
<title>Welcome</title>
</head>
<body>
    <h1>
        Welcome Here!
    </h1>
</body>
</html>
和
<html>
<head>
<title>ようこそ</title>
</head>
<body>
    <h1>
        ようこそ!
    </h1>
</body>
</html>
 
也许你已经看到了,上述代码只有文字内容不相同,除此之外完全相同。也许你已经猜到了,现实的代码绝对不是这样的。那么是怎么处理的呢?
 
 
基本概念
引用
Internationalization and localization are means of adapting products such as publications, hardware or software for non-native environments, especially other nations and cultures.
 
国际化 (internationalization i18n)和本地化(localization l10n)指让产品(出版物,软件,硬件等)能够适应非本地环境,特别是其他的语言和文化。
 
针对计算机来说就是让一个既可以在中文环境下运行也可以在英语,甚至是日语的环境下运行。
 
Java 中如何实现国际化(仅限语言层面)
Java中国际化通过两步来完成,
第一,   通过将文字内容以特定的方式存放在特定的文件中,
特定的文件:方便管理,另外可以将文件明和特定的语言管理起来
特定的方式:有些时候有些环境不支持某些语言,例如通常英文环境不支持中文,所以要将中文改变为英文可以识别的形式,在使用的时候在转变回来。
 
第二,在运行时根据当前的语言环境决定从哪个文件中读取文字内容。
      
第一步,特定的文件,特定的格式
特殊的文件明通过语言和国家来定义,例如:
中文中国 zh_CN
日文日本 ja_JP
英语美国 en_US
 
Java中国际化的概念是将不同国家的语言描述的相同的东西放在各自对应的属性文件中,
如果这个文件的名字叫做 Message,那么对应语言的文件分别为:
中文中国 Message_zh_CN.properties
日文日本 Message_ja_JP.properties
英文美国 Message_en_US.properties
 
特殊的方式使用替换 ascii的方式,java中提供了一个native2ascii.exe的工具(在JAVA_HOME/bin目录下),这个工具专门用来把某种特定的文字内容转变为特殊的格式。
 
例如 Message_zh_CN.properties中的内容为:
Msg1 = 欢迎
Msg2 = 欢迎到这里!
经过命令 native2ascii Message_zh_CN.properties之后输出:
Msg1 = /u6b22/u8fce
Msg2 = /u6b22/u8fce/u5230/u8fd9/u91cc/uff01
这里 /u6b22等的数字是对应汉字(或者其他非英语字符)的unicode表示
 
第二步,通过当前的运行环境确定使用的文件的名字
例如存在上述的三个文件:
中文中国 Message_zh_CN.properties
日文日本 Message_ja_JP.properties
英文美国 Message_en_US.properties
 
可以使用 java.util.ResouceBundle 类来取得当前的资源文件,代码为:
ResourceBundle rb = ResourceBundle.getBundle( "Message" );
也可以指语言与国家特征来获得想要的文件的内容,例如:
ResourceBundle rb = ResourceBundle.getBundle( "Message" , Locale. JAPAN );
 
Struts2 中如何实现国际化(仅限语言层面)
Struts2中使用国际化的几个方法:
1) UI标签
例如:
<s:i18n name="struts.action.test.i18n.Shop">
    <s:text name="main.title"/>
</s:i18n>
从指定资源文件 struts.action.test.i18n.Shop中找到main.title对应的消息内容。
 
<!-- Second Example -->
<s:text name="main.title" />
从对应的文件中找到 main.title对应的消息内容。
 
<!-- Third Examlpe -->
<s:text name="i18n.label.greetings">
   <s:param >Mr Smith</s:param>
</s:text>
从对应的文件中找到 i18n.label.greetings对应的消息内容,其中的{0}参数将会被Mr Smith替换。
 
2) ActionSupport的 getText方法
例如: <s:text name="%{getText("i18n.label.greetings")}">
或者在 Action中直接使用。
 
在没有指定资源文件的情况下,资源文件的查找按如下的顺序:
1) ActionClass.properties
2) BaseClass.properties
3) Interface.properties
4) ModelDriven’s Model
5) package.properties
6) search up the i18n message key hierarchy itself
7) global resource properties
 
例如有如下结构:
com/
 acme/
    package.properties
    actions/
      package.properties
      FooAction.java
      FooAction.properties
如果 FooAction.properties文件不存在,将使用com/acme/action/package.properties,如果com/acme/action/package.properties文件不存在,将使用com/acme/ package.properties,如果还不存在,将使用com/ package.properties等等。
可以通过 getText方法,text标签或者i18n标签来访问资源文件。
 
可以在struts.properties中通过struts.custom.i18n.resources来指定global的资源绑定。
 
相关参考 I18n Intercepter
关于类型转换的国际化支持参看【第七章 Type Convertion】部分
 
深入理解EtherCAT状态机:从IGH代码看伺服电机如何从‘上电’到‘使能’ 本文深入解析EtherCAT状态机的工作原理,重点探讨伺服电机从'上电'到'使能'的状态转换过程。通过分析状态字(Status Word)和控制字(Control Word)的交互机制,结合IGH代码实例,揭示DS402状态机的核心逻辑,帮助工程师解决60%以上的伺服控制问题,提升EtherCAT网络调试效率。 阅读详情

相关推荐

R语言实战:非正态数据下的Scheirer–Ray–Hare检验全流程解析

本文详细解析了在R语言中执行Scheirer–Ray–Hare检验的全流程。当数据不满足正态分布假设时,该非参数检验是传统双因素方差分析的有效替代方案。文章从原理、R环境配置、数据准备、代码实现、结果解读到事后比较与可视化,提供了完整的实战指南,帮助研究者稳健地分析多因素实验设计中的主效应和交互效应。

cc789的博客 406

java web 国际化配置_基于Springboot实现Java Web项目的国际化

说明本文旨在讲解基于Springboot实现国际化的方法,对于前后端分离的架构并不适用(因为前后端分离一般在前端实现国际化),用于Java后端初学者学习使用。环境Springboot:2.1.5.RELEASEJdk:1.8.0_211pom.xml引入web和freemarker的starter包即可:xsi:schemaLocation="http://maven.apache.org/POM...

weixin_39820910的博客 288

【异常】解决JDK21升级中的SecurityException: JCE无法验证BC提供者问题

本文详细解析了JDK21升级中常见的SecurityException: JCE无法验证BC提供者问题的根源与解决方案。核心在于JDK21强化了JCE安全验证,导致签名不合规的老版本Bouncy Castle库被拒绝。文章提供了通过Maven依赖树精准定位、排除旧版本并引入兼容的bcprov-jdk18on新库的完整步骤,以及清理缓存等实战技巧,帮助开发者彻底解决此兼容性问题。

weixin_29197051的博客 490

java国际化程序实现

java程序国际化

weixin_62485084的博客 1526

安卓设备通过USB串口与STM32单片机通讯之一

这里写自定义目录标题欢迎使用Markdown编辑器`在这里插入代码片`新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器在这里插入代码片 你好下Markdown的基本语法知识。 新的改变 我们对

JGB联合商务组的博客 7244

GAN实战:用Python和TensorFlow打造你的第一个生成对抗网络(附完整代码)

本文是一份详细的GAN实战指南,指导读者使用Python和TensorFlow框架从零开始构建并训练一个生成对抗网络。文章涵盖了环境搭建、MNIST数据预处理、生成器与判别器模型构建、对抗性损失函数定义、训练循环编写以及关键的调试技巧,旨在帮助开发者通过动手实践深入理解GAN的核心原理与实现过程。

php55的博客 479

Java中如何实现程序国际化

Java中如何实现程序国际化 最近在学习《疯狂Java讲义》这本书,研究了一下在Java中如何实现程序国际化,发现Java的程序国际化挺简单的,就整理了一下思路,如下所示:   1 Java国际化的思路 Java程序的国际化的思路是将程序中的标签、提示等信息放在资源文件中,程序需要支持哪些国家、语言环境,就对应提供相应的资源文件。资源文件是key-value对,每个资源文件中的key是

只有不断地学习,不断地进步,才能感受到生活的快乐,意义。。。。 3662

Claude Code 安装指南(Windows / macOS)

本文介绍了Claude Code的安装准备和基本流程。作为开发者工具,安装前需具备命令行操作能力、可用的Claude账号和稳定网络环境。Windows和macOS的安装都需通过终端完成,安装后以命令行形式运行。首次使用建议在熟悉项目中执行简单任务,逐步建立使用习惯。强调安装只是开始,后续需学习如何有效使用工具,包括任务提交流程和上下文提供方法。核心要点是:Claude Code是开发者工具,网络和终端环境是关键,建议先运行再深入理解。

sg_knight的专栏 4482

Java前后端分离动态国际化(动态配置扩展性高)

#### 介绍 主要是针对前后端分离场景国际化系统设计; 亮点: 1.动态国际化配置 2.可维护性 3.国际化数据池化(性能高) 4.后端数据内容动态国际化 5.提供前台动态国际化数据 6.后台异常国际化处理 7.可动态添加国际化的语种 8.国际化配置集中到数据库中进行管理,包含前端部分国际化 #### 软件架构 使用Spring Boot+Mybaits+Mysql+Redis来构建这个国际化Demo项目 #### 设计思路 1. 利用自定义注解来启用国际化,拦截所有返回请求进行处理 2. 大..

小鹏子的博客 5694

儿童启蒙教育APP

pinyinList.add(createPinyin("a", "啊,像阿姨的阿", R.raw.pinyin_a));pinyinList.add(createPinyin("i", "衣,像衣服的衣", R.raw.pinyin_i));pinyinList.add(createPinyin("u", "乌,像乌鸦的乌", R.raw.pinyin_u));pinyinList.add(createPinyin("ü", "鱼,像小鱼的鱼", R.raw.pinyin_v));-- 固定竖屏 -->

寒寒豆豆软件公司的博客 166

【OpenClaw从入门到精通】第07篇:2026实测!零基础开发OpenClaw自定义Skill——招聘外呼自动邀约完整教程

本文聚焦OpenClaw自定义Skill开发全流程,针对现成技能无法满足个性化场景(如专属招聘流程、内部系统对接)的痛点,以“招聘外呼自动邀约”为实战案例,从概念认知、环境搭建、分步开发到测试优化,手把手教读者从零构建自定义Skill。内容涵盖Skill目录结构、SKILL.md核心配置、Python主逻辑实现、API对接、安全配置等关键环节,融入2026年ClawHavoc事件安全警示,强调最小权限、凭证安全等开发原则。所有代码经实测可运行,步骤详尽且兼顾新手友好与进阶需求。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1193

JAVA基础编程——国际化

在JAVA开发或是Android开发中,项目代码可能会应用到不同的国家或地区。此时就需要根据不同国家设置不同的语言文字,这里会存在两个问题:这里看一下具体是怎么实现的。Locale类为java.util.Locale,使用此类可以定义用户使用的语言环境: 这里看一下上面代码的结果: 执行结果为: 使用getDault可以获得当前语言环境中默认的Locale对象,同时也就获得了默认的语言环境,如zh_CN(语言标记_国家标记),其中zh表示语言为中文,CN表示国家为中国。而使用构造或者使用类中的属

止步听风的博客 1726

基于业务目标的Agent自动化评测体系设计:超越准确率的有效性衡量

我们还是以电商全链路服务Agent我们还是以电商全链路服务Agent。

AI架构全栈开发实战笔记 318

多传感器融合定位: 基于图优化的建图——数据流梳理

多传感器融合定位: 基于图优化的建图。在KITTI上, 实现基于IMU的预积分融合激光建图。

u010196944的博客 927

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

机器人状态估计与 SLAM—概率推理到 simultaneous Localization and Mapping

定义 1.1(机器人状态):机器人在时刻 ttt 的状态 xt\mathbf{x}_txt​ 是描述其物理配置的最小变量集合。常见状态变量:挑战 1:传感器噪声所有传感器都有噪声——测量值不等于真实值。zt=h(xt)+vt\mathbf{z}_t = h(\mathbf{x}_t) + \mathbf{v}_tzt​=h(xt​)+vt​其中 vt\mathbf{v}_tvt​ 是测量噪声。挑战 2:模型不确定性机器人的运动模型也不完美——预测值不等于真实值。xt=f(xt−1,ut)+wt\mathbf

lqq 215

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

激光SLAM理论与实践 第六次作业(g2o优化方法)

定义边: 实验结果

努力是明天快乐的源泉 875

slam特征点深度 svd_视觉SLAM十四讲实验补充

---恢复内容开始---ubuntu 18.04 +opencv3.1.中间踩过很多坑,但是好些坑都忘了怎么解决的了。当时没有做笔记真是可惜了。第三章 三维空间刚体运动3.1 useEigen-eigenMatrix.cpp3.2 Eigen几何模块这里可能有问题,还没看源代码 输出了3.4转换坐标的例子。可能改cmake 的时候除了问题,我先写完,有空回来改3.3可视化演示example/plo...

weixin_42469749的博客 238

视觉SLAM十四讲笔记五(第六讲)

引言 在前面五节中讲述了SLAM的运动方程(位姿由变换矩阵来描述)和观测方程(由相机成像模型给出),但由于噪声的存在,上述的运动方程和观测方程不是精确成立的,我们所得到的数据往往受噪声的影响,因此下文我们需要讨论在有噪声的数据中进行准确的状态估计。 我想在介绍非线性优化的内容,有必要补充一下概率论的知识,给出如下链接,供读者自行学习: 1、第一篇最大似然估计(了解) 2、第二篇,第一篇看完,再看这篇,巩固学习 1、批量状态估计与最大后验估计 我们知道经典SLAM模型由一个运动方程...

weixin_56566649的博客 3566

flutter 国际化(Intl)初始化流程详解

flutter中常用的国际化是Intl,通常会生成这样的目录结构

xiaokangss的博客 2095

slam十四讲第四次作业_SLAM十四讲 第三章笔记

SLAM14整体脉络:第一部分:(数学基础篇)1. 理论:SLAM由哪些模块组成,各个模块的作用。实验:编程环境的搭建以及IDE的使用2. 理论:三维空间运动——旋转矩阵、四元数、欧拉角。实验:Eigen3. 理论:李群和李代数的定义以及如何使用他们。实验:Sophus4. 理论:针孔相机模型以及图像在计算机中的表达。实验:Opencv调取相机的内外参数5. 理论:非线性优化——状态估计理论、最小...

weixin_28684449的博客 241

课程笔记-三维点云处理06 ——3D Object Detection(上)

课程笔记-三维点云处理06 ——3D Object Detection(上) 本系列笔记是对深蓝学院所开设的课程:《三维点云处理》的笔记 课程每周更新,我也会努力将每周的知识点进行总结,并且整理成笔记发上来,欢迎各位多多交流&批评指正!! 本文主要为课程第六章的笔记! 由于第六章继续进行深度学习领域知识讲解,因此不仅知识量陡增,课程量也加大,因此本章将分为上下两篇笔记进行记录。 本息可主要讲3D物体感知的昂发,介绍基于图像的、基于体素和点云的、以及基于融合的3D物体感知深度学习方法及经典理论 课程链

Jason_____Wang的博客 1051

激光slam 第六次作业

块操作 构建动态大小子矩阵 提取块大小为(p,q),起始于(i,j) matrix.block(i,j,p,q)rosrun ls_slam ls_slam 启动运行。将文件中 kinetic 部分替换为 noetic。visualization_msgs 进行创建。按照 PA6.PDF 中进行运行。第一段:76-100 lines。block 矩阵操作。

ChenXiaoFeng0420的博客 351
上一篇: 软件存在的价值
下一篇: 第四章 Taglib Struts标签库
struts2
博客等级 码龄19年 885粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值