Laravel针对大型网站的本地化

Ste*_*man 15 laravel laravel-4

是否有更好的方法可以存储大量文本以便在laravel中进行本地化?如果我的整个页面只是纯文本很容易,但我的几个页面都有复杂的布局,我需要添加多个字符串来围绕内容,如图像/链接/媒体.

如果我需要使用斜体/粗体或为文本执行任何类型的HTML以及我需要将它们分成几部分以便能够做到这一点,这是一种痛苦.

我正在使用的一个例子:

return array(
    'exchange_rate' => array(
        'title' => 'Exchange Rate',
        'p1' => 'Disclaimer', 
        'p2' => 'Currency rate displayed is subject to change.',
        'p3' => 'View All Rates to Date'
    ),
Run Code Online (Sandbox Code Playgroud)

第一个数组是页面,第二个是页面的内容.为了更复杂的布局,我经常需要更深入地使用多个数组,例如:

return array(
'exchange_rate' => array(
    'title' => 'Exchange Rate',
    'p1' => 'Disclaimer', 
    'p2' => 'Currency rate displayed is subject to change.',
    'p3' => 'View All Rates to Date',
    'table1' => array(
        'title' => 'Currency Table',
        'row1' => array(
           'l1' => 'Current Rate'
        ),
        'row2' => array('etc')
    )
);
Run Code Online (Sandbox Code Playgroud)

我这样做了吗?有没有更好的方法来格式化我的语言文件,以便我可以在我的视图中解决布局?我只是好奇大型网站如何管理本地化.

非常感谢任何帮助,谢谢!

编辑:我也知道您可以在本地化数组中添加占位符,例如:

'title' => ':title'
Run Code Online (Sandbox Code Playgroud)

但是,在一个页面上为我的所有链接,图像和媒体添加占位符可能会变得混乱.Laravel也不支持语言数组中的HTML,因此我不能只在语言文件中填充内容.- 是的,它确实

现在看来,似乎有两种不同的方式去这里.

  1. 继续将它们分成小部分以不同方式格式化文本.
  2. 将页面文本粘贴到每页一个"内容"数组中,使用Waavi将它们传输到数据库,然后使用网站上的WYSIWYG编辑器正确格式化它们以格式化数据库条目.(虽然这也有问题因为你不能使用刀片模板,因为Lang :: get()只返回安全文本)

编辑(2015年2月10日):

经过大量搜索,我已经创建了一个适合我需求的包.它完全消除了对laravel中任何文本数组的需求.它会自动将文本添加到数据库并将其转换为您的设置区域设置.此外,您无需管理和破译带点标记的转换路径.

https://github.com/stevebauman/translation

Pot*_*sky 10

我写了一个包来为你生成lang文件.编写模板,控制器......而不用翻译无聊.完成代码后,只需执行即可php artisan localisation:missing生成lang/*/目录中所需的所有文件.

它将同步翻译:

  • 保持目前使用的翻译
  • 创造新的翻译
  • 删除或移动底部过时的翻译

该软件包可在此处获取:https://github.com/potsky/laravel-localization-helpers

在日常使用中,它与po文件的工作流程相同.让我知道,如果你的生活现在更容易翻译Laravel真棒框架!


小智 2

您始终可以使用名为Waavi 翻译 的软件包

保持项目翻译的正确更新是很麻烦的。通常翻译人员无法访问代码库,即使他们访问了代码库,也很难跟踪每种语言缺少哪些翻译,或者何时更新原始文本需要修改翻译。

该包允许开发人员利用他们的数据库和缓存来管理多语言站点,同时在开发过程中仍然处理语言文件,并受益于 Laravel 翻译包的所有功能,例如复数或替换。