gpt4 book ai didi

java - JSP 国际化 RTL/LTR

转载 作者:搜寻专家 更新时间:2023-10-31 19:40:11 24 4
gpt4 key购买 nike

我想创建一个可以用两种语言(一种 LTR 和一种 RTL)查看的网站。这意味着所有内容都应以两种语言中的任何一种显示。

我的框架是 Spring,我使用的是 Tiles2,但我认为这个问题不是特定于框架的。

支持两种语言的明显解决方案是将所有内容(所有 JSP、片段等)加倍,然后您将获得树中适合您选择的语言的部分。但这会在更改网站时引起问题(您可能会忘记更新其他 JSP),并且不可扩展(尝试对 5 种或 10 种语言执行此操作)。

我知道我可以使用属性文件来托管不同语言的字符串,但是那样的话我的网站将是一个巨大的 spring:message 标签集合并且将很难维护(如果我有一段100 行,所有这些都放在一个属性行中吗?)

有没有什么框架、插件、其他可以解决这个问题?有没有人遇到过这个问题的巧妙解决方案?

最佳答案

我从来没有实现过一个完整的项目,只是一些测试。我认为如果您遵循一些简单的规则,这个问题并不像看起来那么大。这是我会尝试做的事情:

  • <body dir='ltr/rtl'>指定方向.与 CSS 方向属性相比,这是首选。

  • 避免在所有 CSS 中使用不同的左/右边距或填充。如果您必须打破这条规则,您可能需要使用包含所有这些不同元素的两个不同文件(ltr.css 和 rtl.css)。

  • 有时您需要将一些元素从左向右移动,反之亦然。例如,在 LTR 中你想要一个菜单​​在左边,但在 RTL 中你想要它在右边。您可以使用 CSS 实现此目的,但如果您不是专家并且必须在所有浏览器中对其进行测试,这有时会很复杂。另一种选择是根据情况使用一些 IF 。如果您使用基于网格的 CSS 库(例如 Bootstrap),最后一个选项将非常适合。

  • 谨慎选择要使用的 CSS 和 JS 库。显然,选择那些提供 RTL/LTR 支持的。

  • 不要太担心图像。如果您必须根据语言更改一张图片,可能是因为其中包含一些文字。因此,无论如何您都必须使用不同的图像。这是i18n相关的问题,不是文字方向问题。

  • 不要让您的客户对此过于挑剔。我认为使用这些规则(也许还有更多)你可以获得很好的结果。但是,如果您的客户开始提示这里的一个像素和那里的另一个像素,您需要将所有这一切复杂化,而且可能没有必要。

  • 关于您的语言属性文件。是的,使用它们。总是。即使您只使用一种语言,这也是一个很好的做法:HTML 结构与内容分离,很容易更正或翻译,一些单词或句子只在一个文件中...

关于java - JSP 国际化 RTL/LTR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14082252/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com