I totally agree with what has been written.
Take the example of the 'Online/offline' message. This setting key is 'offline_msg'. There is no reason to change this message very often.
So, we can use it with a language file like: $this->lang->words['offline_msg']
It is almost the same principle for the management of the dates with a little function to translate days and months :
$lang = array(
'ipb_calendar_mon' => "1",
'month_january' => $this->lang->words['M_1'],
'day_monday' => $this->lang->words['D_1'],
...
To translate days and months depending on the user's language choice:
function translate_date($my_timestamp, $type='long')
{
$my_date = strftime($this->lang->words['clock_'.$type], $my_timestamp);
$day = strftime('%A', $my_timestamp);
$key_day = strtolower($day);
$translated_date = str_replace($day, $this->lang->words['day_'.$key_day], $my_date);
$month = strftime('%B', $my_timestamp);
$key_month = strtolower($month);
$translated_date = str_replace($month, $this->lang->words['month_'.$key_month], $translated_date);
return $translated_date;
}
Everything that depends on the user's language should be in language files.
There is no need for another system that already used to translate the input language in the ACP.
Hope this help :)