在Laravel开始一个多语言网站

时间:2013-04-22 12:14:54

标签: php laravel multilingual

我即将创建一个多语言网站,其中英语将用于公共页面,然后阿拉伯语用于管理员。我以前从未做过这方面的工作,也不确定从哪里开始。也许那些以前做过多语种网站的人可以为我回答几个问题。

  1. 英语和阿拉伯语可以保存在同一个表格中吗?如果是这样,我的校对一直是utf-8 Unicode,这是否意味着我不能再使用utf8了?
  2. 我网站的阿拉伯语部分是否需要自己的表格?如果是,那将是什么校对?
  3. 在我的观看中,我键入了什么来代替<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  4. 关于创建多语种网站,我应该知道些什么吗?
  5. 提前致谢!我真的有点迷失在哪里开始。

2 个答案:

答案 0 :(得分:6)

  1. 是的,您可以使用utf8
  2. 不,您可以在同一张表格中使用阿拉伯语和英语
  3. 阿拉伯语字符集为iso-8859-6,因此您需要在管理员视图中更改字符集属性
  4. 您可能希望在css中使用body { direction: rtl; }作为阿拉伯语页面
  5. 您可能会发现这些链接很有用:

    如果您想使用Laravel的翻译文件(application/language/XX/validation.php)验证表单字段,您会发现:attribute占位符使用表单字段的name属性,导致主要翻译带有“email”(或其他)英文单词的错误消息。您可以使用Validation Attributes数组将英语字段名称与阿拉伯语等效项连接起来解决此问题。如果您发现已将它们翻译成另一种语言文件,则可以使用以下代码:

    'attributes' => array_merge(
        Lang::file('application', 'ar', 'filename_without_extension'),
        Lang::file('application', 'ar', 'another_file')
    ),
    

答案 1 :(得分:0)

默认情况下,Laravel使用电子邮件字段进行身份验证。如果您想自定义它,可以在LoginController上定义用户名方法:

public function username()
{
    return 'username';
}