首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel语言文件分离逻辑

Laravel语言文件分离逻辑
EN

Stack Overflow用户
提问于 2021-02-14 21:37:24
回答 2查看 69关注 0票数 0

在Laravel中分离语言文件的最佳逻辑是什么?

我将从两个选择中做出决定。

首先是收集buttons.php中的所有应用程序按钮本地化字符串,links.php中的链接本地化字符串,placeholders.php中的占位符本地化字符串。

如下所示:

代码语言:javascript
运行
复制
/resources
    /lang
        /en
            buttons.php
            links.php
            placeholders.php
        /es
            buttons.php
            links.php
            placeholders.php

第二种方法是在单独的文件中收集每个视图的本地化字符串。

如下所示:

代码语言:javascript
运行
复制
/resources
    /lang
        /en
            login_page.php
            sign_up.php
            home.php
        /es
            login_page.php
            sign_up.php
            home.php

在第一个选择中,我将得到较少数量的语言文件,因为我将有大约10个文件。

在第二个选择中,我将得到大量的语言文件,因为我将为项目中的每个视图创建一个lang文件。

哪种选择更好?

EN

回答 2

Stack Overflow用户

发布于 2021-02-14 21:55:49

根据我的经验,所有ui都有一个翻译文件效果最好,按照字母顺序对列表进行排序,这样就不会有多个文件具有相同的翻译(例如: Submit,它可以在多个屏幕中使用)

票数 0
EN

Stack Overflow用户

发布于 2021-02-14 22:03:54

因此,问题是:“哪种方法分离翻译/本地化文件更好:按视图名还是按元素名?”

在我看来,按视图名称分隔是没有意义的。如果我创建了3个视图(view_a,view_b,view_c),每个视图都有一个提交按钮,那么我的en (英语)本地化将不得不定义3次“提交”翻译。例如:

代码语言:javascript
运行
复制
/resources
    /lang
        /en
            view_a.php // contains ["submit"=>"Submit form"]
            view_b.php // contains ["submit"=>"Submit form"]
            view_c.php // contains ["submit"=>"Submit form"]

这不是很干

让我们通过比较github上的一些开源laravel项目如何分隔它们的本地化文件来看看:

在Attendize/Attendize中,每个模型都有本地化文件。它们也有一些像basic这样的通用/可重用元素的本地化

例如,这个文件:https://github.com/Attendize/Attendize/blob/develop/resources/lang/en/Order.php定义了关于“订单”模型的东西的翻译。因此,如果我显示的消息表明没有最近的订单,我将只调用转换为Looks like there are no recent orders.en.Order.no_recent_orders;无论我从哪里调用它(从任何视图或从任何控制器)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66195946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档