Browse Source

Write reported non-translated strings to a SQLite db

master
parent
commit
da11d83b1a
  1. 2
      lib/modulekit/lang
  2. 26
      src/language.php

2
lib/modulekit/lang

@ -1 +1 @@
Subproject commit 80118dbcaafa9ab95298be95548126071efc069f
Subproject commit 832b12cc0d0ac674339e1ed722d2800ab0d8885b

26
src/language.php

@ -4,3 +4,29 @@ register_hook('options_save', function ($options) {
$_SESSION['ui_lang'] = $options['ui_lang'];
}
});
register_hook('lang_report_non_translated', function ($strings, $ui_lang) {
if (!is_writeable('data')) {
return;
}
$db = new PDO('sqlite:data/lang.db');
$res = $db->query('select 1 from lang_non_translated');
if (!$res) {
$query = <<<EOT
create table lang_non_translated (
str varchar(255) not null,
lang varchar(32) not null,
count integer not null default 0,
primary key(str, lang)
);
EOT;
$db->query($query);
}
foreach ($strings as $k => $count) {
$query = 'insert or replace into lang_non_translated values (' . $db->quote($k) . ', ' . $db->quote($ui_lang) . ', coalesce((select count + ' . $db->quote($count) . ' from lang_non_translated where str=' . $db->quote($k) . ' and lang=' . $db->quote($ui_lang) . '), ' . $db->quote($count) . '))';
$db->query($query);
}
});
Loading…
Cancel
Save