早上和后台小伙子交流语言问题时,他提到2个结论.1 双语言还好办点,多语言困难.2. 可以静态的,不可以动态的.
给了我一个链接,说多语言,是要到property里的那样文件,去把一些 比如 用户密码错误 翻译为 user idpasswordiserror,然后替换如何如何. 说,这个,只能是把静态的语言文字部分翻译,动态的就不行的,比如,写到数据库里,从数据库里读出的就不行.比如用户输入的就不行. 那个,我觉得也是,用户输入什么文字,自然是什么.
可是,还是有问题,就是用户输入的有些,我是想转换的,就是我们自己在数据库里是先要做处理,再呈现的. 比如,你 中国人,选择中文,输入 巴黎, 我是希望,出来的是 巴黎--paris 都有.这个算什么呢?
还有,我又希望,中国人,地址里,也能输入 Paris这样的,最后,所有,巴黎,paris,我们都会给你算一个地方,不会算2个地方.这又算什么?
然后,还有比如,有些地名,有英语名字,中文名字,还有本国名字,我也希望有.比如,都指向同一个地方.这和我说的支持多语言的,有关系还是没关系? 比如,München, 慕尼黑,Munich,这三个,分别是母语,中文,英语的同一个地方. 这个我们之前有讨论,但是没觉得和这个支持多语言有什么关系. 到底有关还是没关?
不过,实际在多语言里,我认为是这样的,就是一个地名,都有 你选择的语言的,就是1\用户母语的名称,在我们,就是中文, 在别人,可能就是法语,日语等等.2\英语地名,3\该国本地语言的地名. 多语言时,变的是第一个, 后面2个是固定的.
不过,怎么建立和得到这些数据,有些我没想明白.
刚刚,看到另外一篇文章, 这文章,至少是解决了,我们后台小伙子认为的,只能解决静态,不能动态的问题.http://java.chinaitlab.com/model/3293.html
最核心我看的懂的概念大致如下:
静态文字和动态文字采取不同的解决方案:
把所有的网页交给翻译公司对上面的静态文字进行翻译, 而网页上面的动态内容则需要程序解决。
需要解决的动态文字的“翻译”问题,实际上是将数据库中的一些静态或者半静态的数据进行“翻译”。下面就是一个典型的数据表:
代码清单1、为英文用户的准备的货币列表。
货币代码永远是上面所看到的英文代码,但是货币名称应当根据用户所选择的语言不同而不同。比如对中文读者就应当翻译成为下面的表:
代码清单2、为中文用户准备的货币列表。
这样的表会在网页上作为下拉菜单出现,用户看到的是货币名称,而系统内部使用的是货币代码。
国际化解决方案
这样的问题就是国际化的问题,所谓国际化就是Internationalization,简称作i18n(请参见本章最后的问答题)。
设计师所采取的实际方案是分层方案,也就是MVC模式。MVC模式将系统分为三个层次,也就是模型(Model)、视图(View)、控制器(Control)三个部份。国际化是视图部份的问题,因此应当在视图部份得到解决。
图1、MVC模式的示意图。
换言之,系统的内核可以是纯英文的;在内核外部增加一个壳层负责语言翻译工作。请见下面的概念图:
图2、英文内核和翻译壳层的概念图。
所谓内核就是系统的模型,而翻译壳层便是视图的一部份。对多语言的支持属于视图功能,因此不应当在内核解决,而应当在视图解决。这就是设计师们达成的总体方案。
多态模式 多态模式的特点
所谓的多态模式(Multiton Pattern),实际上就是单态模式的自然推广。作为对象的创建模式,多态模式或多态类有以下的特点:
多态类可有多个实例; 多态类必须自己创建、管理自己的实例,并向外界提供自己的实例。
单态类一般情况下最多只可以有一个实例,请见下面的结构图:
其他的部分我看不太懂了,不知道,我们现在是不是所谓MVC.
现在程序员在干活,我决定不随意打扰他.每天,用一个时间段讨论.
很多时间段独自干活. 提高效率. 不然,就会因为不相干的讨论,分散手头主要的东西.一天下来,可能又没解决任何问题.
分享到:
相关推荐
### Java模式设计之多态模式与多语言支持详解 #### 引言 本文将深入探讨在实际项目中如何运用多态模式以及如何实现多语言支持。案例来自于一个面向全球消费者的华尔街金融网站项目,该网站需要支持至少19种语言,...
计算机后端-Java-图解java设计模式030 单例(静态代码.avi
计算机后端-Java-图解java设计模式029 单例(静态常.avi
Java页面静态化是一种提高网站性能的技术,它将动态生成的网页转换为静态HTML文件,以减少服务器处理和数据库查询的时间,提升用户体验。这种技术在高访问量、数据更新不频繁的网站中尤其适用。 首先,我们需要理解...
1. 多语言支持:GraalVM不仅支持Java,还支持JavaScript、Ruby、Python、R、LLVM等多门编程语言,通过统一的运行时环境,实现跨语言交互。 2. 高性能:GraalVM引入了即时编译器(JIT)和静态编译器(AOT),其中...
总的来说,Java页面静态化是提升Web应用性能的有效手段,通过合理设计和实施,能够为用户提供更快的加载速度和更流畅的浏览体验。同时,它也有利于SEO优化和系统的可扩展性。在实际项目中,需要根据需求和资源选择...
MySQL是世界上最受欢迎的开源数据库系统之一,而MySQL Connector/J是MySQL官方提供的用于Java应用程序与MySQL数据库之间连接的驱动程序。本文将深入探讨这两个文件:"mysql-connector-java-5.1.40.zip" 和 "mysql-...
通过这个项目,开发者不仅可以掌握Java Web开发的基本流程,还能深入理解动态网页的原理,以及如何结合MySQL进行数据操作。同时,对于MVC模式的应用和前端页面的构建也会有更实际的了解。这个实践过程对于提升Web...
Java语言与面向对象程序设计是计算机科学中的核心概念,尤其对于软件开发人员来说,理解和掌握这一主题至关重要。印旻的PPT深入浅出地讲解了这两个主题,旨在帮助学习者构建扎实的Java编程基础和面向对象的设计思维...
### Java之几种常见的简单设计模式 #### 设计模式概述 设计模式是一套被广泛采纳的、经过实践检验的代码设计经验总结。它们提供了解决在软件开发过程中经常遇到的复杂问题的标准方法。采用设计模式的目的在于提高...
**简介**:PMD是一款多功能的静态代码分析工具,它不仅可以检查代码质量,还可以检测潜在的bug和不必要的代码重复。 **功能**: - **代码质量**:检测未使用的局部变量、死代码等。 - **潜在bug**:识别可能导致...
本项目为基于Java语言的Android Studio开发,专注于设计全屏静态与动态权限的闪屏页解决方案。包含52个文件,其中XML配置文件22个,WebP图片11个,Java源代码4个,Kotlin文件3个,Git忽略文件2个,Markdown文档2个,...
Java JSP技术是Java服务器页面(Java Server Pages)的简称,是一种动态网页开发技术,...通过这样的毕业设计,大学生不仅可以巩固Java Web开发技术,还能提升项目管理和团队协作能力,为未来的职业生涯打下坚实基础。
- Java不支持静态方法(static方法)作为类及类成员的访问控制符。 - Java方法声明可以使用static关键字表示该方法是静态方法,使用public关键字表示该方法可以被外部访问。 - 抽象方法是仅有方法声明而没有具体...
面向对象编程(Object-Oriented Programming,简称OOP)是现代软件...通过这个课程设计,学生不仅能够巩固Java语言的基础知识,还能提高分析问题、设计解决方案以及团队协作的能力,为未来的软件开发工作奠定坚实基础。
- **多语言支持**:GraalVM不仅限于Java,还支持多种编程语言,提供了统一的运行时环境,简化了多语言应用的开发和部署。 - **高性能JavaScript引擎**:内置的JavaScript引擎名为“Sulong”,能够执行Node.js应用...
Java中的代理模式--静态代理和动态代理 Java中的代理模式--静态代理和动态代理
Java语言程序设计是一门深入学习Java编程的基础课程,期末考试试题涵盖了广泛的Java知识,包括语法、数据类型、运算符、类和对象、方法、包、继承等核心概念。以下是根据提供的部分内容解析出的相关知识点: 1. **...