Считал, что правильно только первое, но *"по-латыни"* уж слишком часто встречается. Так тоже правильно? Действительно ли в большинстве контекстов разницы нет, как сказать, если оба варианта годятся?

Приходит в голову такой случай без взаимозаменяемости: *Он знает немного по-латыни* (нельзя сказать *на латыни).* Это единственный вариант, который мне кажется нормальным.

А можно ли сказать, например: *Это "морская" **по-латыни*** (о значении имени Марина)? Всегда считал, что надо говорить именно *"на латыни"* в таких случаях.