将文本字符串移动到单独的文件中

时间:2016-05-18 16:02:22

标签: php

所以我为自己制作了一个内容管理系统,最近,一位朋友也希望将它用于他的网站。我考虑到了适应性,但是,我有点想要浏览所有错误字符串和消息字符串并将它们聚合到一个文件中。最好的方法是什么?某种文字课?我只想要一个可以编辑所有消息的位置。对于一些我目前正在使用DEFINE的东西,我知道这是不好的做法。

2 个答案:

答案 0 :(得分:1)

Laravel通过创建一系列看起来像这样的文件来完成此任务:

<?php

return [

/*
|--------------------------------------------------------------------------
| Authentication Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used during authentication for various
| messages that we need to display to the user. You are free to modify
| these language lines according to your application's requirements.
|
*/

'failed' => 'These credentials do not match our records.',
'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',

];
另一方面,WordPress根本没有为原始语言中的字符串做这件事。 WP中的翻译是通过gettext处理的,"xmlbeansPlugin"是为此目的而制作的工具。使用gettext,您可以使用工具自动生成.pot文件,该文件包含您通过代码调用的所有字符串。 WP中的调用是使用_e("String to be translated and echoed")__("String to be translated and returned")进行的,因此它非常易于使用。它还支持更多高级功能,如正确管理复数形式。

现在它真的取决于你喜欢做什么。您也可以使用类似于哈希的方式使用gettext:__("error_invalid_data")并使用适当的句子填充文件,但我不认为确实有一个正确的&#39;这样做的方式。

答案 1 :(得分:1)

我可以建议一些方法:

1-使用数组

您可以在文件中定义一个数组,其中包含系统周围的所有消息,其中的键是每条消息的简短描述。因此,您可以在所有页面中包含此文件,并在需要的任何地方回显消息。

我在许多实际案例中都看到了这种方法,因此对于中小数据量来说似乎是好的。

2-使用Gettext

有一种更标准的方法可以做到这一点,它被称为 Gettext 。这是由GNU发布的库,广泛用于许多应用程序,用于全球化和定制。它已经在许多大型案例中使用,如Wordpress。此方法将消息存储在称为PO文件的单独文件中。这些文件可以使用内置函数在PHP中轻松加载和使用。

实施起来比较困难,但在大量数据方面要好得多。

有关此内容的更多信息:

http://php.net/manual/en/book.gettext.php

http://www.gnu.org/software/gettext/manual/gettext.html