regarding your first question,
in some versions of prestashop (>1.6) the name field is actually an array with the indexes being the language id for the respective string
so in your case what may work is:
$category->name = [1 => 'foobar', 2=> 'foobar_2'], "1" and "2" being the language ids you want to update, can be only one or more / but must be at least you default shop language id