java - 事后添加 i18n 支持

标签 java jsp internationalization

如果这是一个有点主观/讨论类型的问题,我提前道歉。我想要的是向主要是 JSP 的 Web 应用程序改进区域设置信息的好方法。该框架...根本不存在,只是大量带有大量脚本和 JavaScript.jsp 页面。我刚刚开始,所以我还不能建议彻底修改,尽管我想我会在某个时候解决这个问题。

现在,团队中的某人建议使用浏览器区域设置或类似的方式进行一些“简单”基于 javascript 的内容本地化。这在我的脑海中引发了各种警报。

但是通过 JSP 页面使用 Java Locale 支持的好方法是什么,然后可以轻松扩展到像 JSF 2 这样的优秀框架?

这就是我的想法:

  • 将所有可能的显示字符串移至 *_locale.properties 文件
  • 构建一个实用程序类,根据请求/ session 中的区域设置信息从正确的文件中读取
  • 在所有 jsp 文件中嵌入所述实用程序类
  • 将所有 <title>Page 1</title> 替换为 <title>localeUtils.getString("page1.title)</title>

建议?

最佳答案

如果您无法立即迁移到支持开箱即用本地化的框架(这里想到 Spring),那么您将必须提出自己的解决方案,而您提供的解决方案似乎是一个良好的开始。一定要使用属性文件来存储特定于区域设置的字符串并使用 supported Java locale IDs在每个特定于区域设置的属性文件的名称中。

关于java - 事后添加 i18n 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5083329/

相关文章:

java - 为什么不能在变量声明行中放置调试断点?

java - 使用递归解决二进制间隙

java - Hibernate session.load 不填充对象的 arraylist 属性

java - 如何使用 Tiles 进行类似 Facelets 的模板合成?

java - 在同一个jsp页面上显示警报消息

url - 如何在react-router中设置和处理语言?

java - volatile 关键字对于同步 java block 有什么重要性?

java - 如何在 Web 应用程序项目的 Controller 中将字符串作为 JSON 对象返回

codeigniter - 使用 Codeigniter 中的 Language 类从多维数组中回显特定值

facebook - 翻译不适用于开放图谱时间轴 View 中的预览故事