CommerCentr
UA
Увійти

Ишем не локаликализованные данные

#1
$_ = array();

$file = DIR_LANGUAGE . $this->default . '/' . $filename . '.php';

if (is_file($file)) {
require($file);
}
$_t = $_;
$_ = array();
$file = DIR_LANGUAGE . $this->directory . '/' . $filename . '.php';

if (is_file($file)) {
require($file);
}
$result = array_diff_key($_t,$_);
if ($result) ($this->log->write($result);
$_ = array_merge($_t, $_);


Ищем не переведеные переменные
#2
if ($result) ($this->log->write($result);


Здесь, наверное нужно еще указать файл

if ($result) ($this->log->write($file . print_r($result,true));
#3
Спасибо за код, это для system\library\language.php в метод load ?
#4
А вот еще..

log - не доступенг в либе

тогда file_put_contents(DIR_LOG , 'languaguge.log', $file . print_r($result,true), FILE_APPEND )
#5
к сожалению не всё так как хотелось бы, нужно только ручками, так как есть просто некоторые ошибки по переводу, например
Редактор тим

#6
А... ну, тут только глаза
#7
Кстати, а LOG досутпен

И вот каким образом

1.


class Language {
private $default = 'en-gb';
private $directory;
public $data = array();
private $log = array();



public function __construct($directory = '') {
$this->directory = $directory;
}
public function __destuct() {
$loger = NEW Log('language.log');
$loger->write($_SERVER['REUEST_URI'] . ' => ' . printr_r($this->log,true));
}


и теперь

if ($result) $this->log[] = $file . print_r($result,true);


А теперь по порядку

не отвлекаясь ни на что просто логируем в массив
После окончания в деструкторе бросаем все одним потоком
#8
Шикарное решение, оно не может быть не интегрировано.
Мы вот с Алариком вот что подумали:
Если уж подключаем офф. сайт по АПИ, почему такие вот ошибки, как переменные отсутствующие, на записывать в отдельную таблицу, с минимальными идентификаторами, по типу колонок:
0. error_id (AI)
1. file_err_exeption
2. error_txt
3. type_err
4. custom_service_column
и туда вписывать ошибки, не только с языковых, но и с лоадера, и других библиотек.
Впредь, набросаю класс, для безопасного экспорта ошибок из этой таблицы, на сервер БРО, обработка и фикс по тому же методу, используя идентификатор SHOP_ID.
#9
Не знаю, что вы там придумали :)

На этапе тестирования это работающий способ
На этапе продакшн -фтопку

Т.е. нужна override библиотека

в startup/startup
вместо
// Overwrite the default language object
$language = new Language($code);

вот так

$language = new LanguageDebug($code);

Читати може будь-хто. Щоб писати й голосувати — увійдіть в акаунт.