Welcome to the Browser-Base Game Zone forums!
Dump the single string, and translate after you get it out of the database?
event_messages { id, language, message }: {1, 'en', "City %s got infested by %s"}events { id, message_id, data }: {137,1, ['kNoxville', 'rats']}$msgs = select em.message, data from events e join events_messages em on e.message_id = em.idecho vsprintf($msgs['message'], (array)json_decode($msgs['data']));
events { id, message, time }$message = vsprintf(_($messages[$lang][$eventType]), $data); // where insert into evets (message, time) values ('$message', NOW())select message from events where time > NOW() - interval 3 day
event_messages { id, message }: {1, "City %s got infested by %s"}events { id, message_id, data }: {137,1, ['kNoxville', 'rats']}$msgs = select em.message, data from events e join events_messages em on e.message_id = em.idecho vsprintf(_($msgs['message']), (array)json_decode($msgs['data']));
events { id, message, data }: {137, 'cityInfested', ['kNoxville', 'rats']}$msgs = select message, data from eventsecho vsprintf(_($messages[ $msgs['message'] ]), (array)json_decode($msgs['data']));
echo sprintf(_("There is a player %s in a city of %s who broke his leg and lost %s HP."),$playername,_($cityname),10);
array_walk($result['data'], function(&$item, $key) { // ;-) $item = $item['translatable'] ? _($item['string']) : $item['string'];});
Hmm... remember that NIH issue you wrestle with frequently Chris? Kohana has a __() method for translation (as do a number of other frameworks), and it doesn't matter whether the string is /translatable/ or not.
@andrewjbaker: what if the name of a player exactly matches some translatable string?