【问题标题】:Laravel 5 - Multi Language Website for (LTR and RTL)Laravel 5 - 多语言网站(LTR 和 RTL)
【发布时间】:2017-08-14 10:09:34
【问题描述】:

向所有开发者致敬...

我是 Laravel 的新手。我想构建一个复杂的 Web 应用程序,支持至少 2 种语言很重要。不幸的是,其中一种语言是 LTR,另一种是 RTL
我的问题是:

  1. 网站的某些部分具有静态内容,例如标题、导航项、侧边栏内容或...。据我了解,我必须在 lang 目录中创建文件并根据所选语言加载适当的数据。这样对吗?这样,是否可以从 lang 目录文件中加载这些静态数据导致应用程序变慢和性能不佳?(与静态视图相比,刀片文件有内容,不需要加载小块来自 lang 目录的数据)。
  2. 考虑第一个问题,一种语言的一组视图和第二语言的另一组视图更好吗?(每组视图都有其静态数据,不需要使用lang 文件到标题、侧边栏和...的完整部分)
  3. 正如我所说,我必须拥有 LTR 和 RTL 布局才能获得最佳 UI。所以我必须根据选择的语言有单独的样式表和加载,对吗?

我有一些关于多语言数据库设计的问题,但我稍后会开始新的讨论。感谢您的关注,希望您指导我并说出您的意见...

【问题讨论】:

  • 我认为你可以使用相同的视图,并根据语言选择布局。

标签: php laravel laravel-5 multilingual


【解决方案1】:

网站的某些部分具有静态内容,例如标题、导航项、侧边栏内容或...。据我了解,我必须在 lang 目录中创建文件并根据所选语言加载适当的数据。这样对吗?这样,是否有可能从 lang 目录文件中加载这些静态数据导致应用程序变慢和性能变差? (与静态视图相比,刀片文件有内容,不需要从 lang 目录加载小块数据)

  • 是的,一定要确保从您的观点中抽象出您的语言。这是一个很好的做法,您肯定会希望这样做可以为每种语言节省多个相同的视图(噩梦!)。
  • 当您编写任何程序时,都会产生性能开销。当您使用这样的功能时,您的生活会轻松很多。对性能的影响很小。不要以此为理由不这样做。

考虑第一个问题,对一种语言有一套观点,对第二种语言有另一套观点更好吗? (每组视图都有它们的静态数据,不需要使用 lang 文件来处理标题、侧边栏和...的全部部分)

  • 不,对于大多数开发人员来说,这是一场噩梦。由于语言的原因,维护多个脆弱的视图会消耗时间,因为在开始时将这些关注点分离就不需要发生这种情况了。

正如我所说,我必须拥有 LTR 和 RTL 布局才能获得最佳 UI。所以我必须根据选择的语言有单独的样式表和加载,对吗?

  • LTR 和 RTL 是一个完全可以单独使用一些简单的 CSS 解决的问题,无需单独的样式表。相反,在主体上使用单个类,您可以应用正确的样式。 <body class="{{ $rtl ? 'rtl' : 'ltr'}}">。现在您可以使用 CSS 的 direction 属性来定义文本读取的方向。

在您使用 Laravel 时,请尽可能多地利用该框架。您无需为此重新发明轮子。

【讨论】:

  • @DavidBarker,感谢您简化问题。我正在研究完全相同的问题。您能否添加更多关于如何在此上下文中使用 CSS 的方向属性的信息,或分享任何有助于理解此行为的链接。
  • @MIdrees 因为您在文档的正文中有一个指示所需文本方向的类,您可以添加一个全局样式规则,例如body.rtl { direction: rtl; }。只要主体具有此类,您还可以修改浮点数或任何其他元素。有关此 CSS 属性的更多信息,请查看 developer.mozilla.org/en/docs/Web/CSS/direction
  • 谢谢@DavidBarker,我试过了,有些零件会在镜像位置显示。但是我的左侧菜单对 rtl 有问题。我的左侧导航菜单有引导类 col-md-2,它仍然保持在相同的位置。我怎样才能动态地对此进行更改,以适应 rtl 语言。
  • @MIdrees 对不起,我不明白你最后一部分的意思。我建议您打开一个新问题并详细解释您遇到的问题。
  • 感谢@DavidBarker,实际上我希望根据 rtl 反映相同的 UI,这意味着所有内容都应该从右到左对齐。我从这个 SO 问题中得到了 bootstrap-rtl 的解决方案:stackoverflow.com/questions/19730598/…
猜你喜欢
  • 2016-06-05
  • 2020-10-27
  • 2011-03-24
  • 2016-04-10
  • 1970-01-01
  • 2018-04-25
  • 1970-01-01
  • 2016-12-15
  • 1970-01-01
相关资源
最近更新 更多