记录codeigniter错误:文件夹中所有文件的“语言文件不包含数据”

时间:2018-12-26 10:02:16

标签: codeigniter

我在日志文件中收到非常奇怪的(或可能不是)错误:

ERROR - 2018-12-26 03:09:37 --> Language file contains no data: language/lang1/pages/service4_lang.php
ERROR - 2018-12-26 03:09:37 --> Language file contains no data: language/lang1/pages/service2_lang.php
ERROR - 2018-12-26 03:09:37 --> Language file contains no data: language/lang1/pages/service1_lang.php
ERROR - 2018-12-26 03:09:37 --> Language file contains no data: language/lang1/pages/products_lang.php
ERROR - 2018-12-26 03:09:37 --> Language file contains no data: language/lang1/pages/product8_lang.php
ERROR - 2018-12-26 03:09:37 --> Language file contains no data: language/lang1/pages/product9_lang.php

,我在文件夹中有这些文件。另外,我的语言设置已经可以运行,并且在浏览网站时没有任何问题。

$config['language'] = 'lang1';

已设置。那些消息仍然以某种方式出现...

有人知道这是什么原因吗?如何解决,追踪?

更新1

我注意到,它发生在同一秒(如您所见)中,并且出现在页面文件夹中的所有文件中。那么什么可以一次触发所有这些呢? 嗯,也许是来自循环...

1 个答案:

答案 0 :(得分:0)

哦,这是如此特别。我刚刚发现 $ this-> lang-> load(“ lang file”)将从语言目录下加载文件,但它期望这些文件包含 $ lang 数组>像这样:

$lang['db_invalid_connection_str'] = 'Unable to determine the database settings based on the connection string you submitted.';
$lang['db_unable_to_connect'] = 'Unable to connect to your database server using the provided settings.';
$lang['db_unable_to_select'] = 'Unable to select the specified database: %s';
$lang['db_unable_to_create'] = 'Unable to create the specified database: %s';

没别的!

但是,如果我决定像以前那样将完整的页面存储在language文件夹下怎么办?然后,我应该可以使用 $ this-> lang-> load(“ lang file”)轻松加载它并显示在页面上。只是因为我在那些页面中没有任何变量 $ lang ,所以每次要显示页面时都会记录错误。

我可以轻松地禁用该记录的消息,但是我决定在特殊条件下将其隐藏,这是我的if语句添加到Land.php类中的load函数:

  if ($basepath !== $package_path && file_exists($package_path) && filesize ($package_path) > 0) {
    //do not log anything, because those files don't have $lang anyway
  } else {
    log_message('error', 'Language file contains no data: language/' . $idiom . '/' . $langfile);
  }

这样,我仍然会加载文件,但是仅当文件中没有任何内容时才会显示错误。