我想与Laravel建立多语言网站。
这样做是一个好主意
trans()
翻译从数据库中获取的数据中的字符串吗?OR
例如在1号中我有
ID - title
1 - hello
2 - how_are_you
$texts = Text::all();
$translatedText = trans('somefile.'.$texts[0]->title);
对于2号我有:
ID - title_fa - title_en - title_ar
1 - درود - Hello - سلام
2 - خوبی؟ - How are you - کیف احوالک؟
$texts = Text::all();
$translatedText = $texts[0]->title_fa;
从各个方面来看哪个更好?
答案 0 :(得分:2)
它取决于您的要求和您想要更改的数据量。两者都有各自的优缺点。
1。使用翻译文件:
您的数据库将很干净,您无需担心条件字段的显示。因此,只有有效数据才不会有冗余数据。
如果您不确定文本,将很难添加有关该文本的翻译。
2。使用数据库:
如果愿意,您将具有更大的灵活性,可以从UI界面动态更改/更新翻译的文本。
您可以在Accessor
中添加用于设置属性值的条件,因此无需担心刀片内部。
您不必担心字段内容,因为会有单独的翻译字段。
如果您有大量数据,则数据库性能可能会受到影响。
因此,根据您的应用程序要求,您可以选择最适合您的方法。
最后,如果要使用数据库方法,则应创建不同的转换表,而不是在同一表中插入列。
就像您在table1
中有5个字段一样,您需要保留3个字段的翻译,因此您应该使用这3个字段创建不同的表(如table1_translation
,在table1
中仅保留2个字段