Laravel 5 - 多语言网站(LTR和RTL)

时间:2017-03-22 10:40:04

标签: php laravel laravel-5 multilingual

嗨,所有开发者......

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

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

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

1 个答案:

答案 0 :(得分:4)

  

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

  • 是的,请务必确保从您的观点中抽象出您的语言。这是一个很好的做法,你肯定想要为每个语言保存多个相同的视图(噩梦!)。
  • 编程时,会产生性能开销。当您使用此类功能时,您可以更轻松地改善生活。性能影响很小。不要将此作为不这样做的理由。
  

考虑到第一个问题,为一种语言设置一组视图和为第二语言设置另一组视图是否更好? (每组视图都有静态数据,不需要使用lang文件到标题,侧栏和...的完整部分。)

  • 不,这对大多数开发者来说都是一场噩梦。由于语言而保持多个脆弱的观点会在开始时将这些问题分开时消除时间,从而消除了发生这种情况的任何需要。
  

正如我所说,我必须拥有LTR和RTL布局才能拥有最佳用户界面。所以我必须根据选择的语言设置单独的样式表和加载,是不是?

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

在使用Laravel时,尽可能多地利用框架。没有必要用这个重新发明轮子。