Что я делаю не так? =) 
Все... Вам не мешало бы разобраться с 
ООП хотя бы на уровне PHPpublic function getLangPosts()
{
    return $this->find();
}
тут Вы вызываете статический метод find, как обычный это не правильно. Да и вообще не понятно зачем этот метод существует
public function getDataPosts(){
    $language = Yii::$app->language;
    $data_lang = $this->getLangPosts()->where(['lang'=>$language])->one();
    return $data_lang;
}
а тут Вы обращаетесь к методу getLangPosts() модели LangPost, при чем делаете это из модели Post через псевдо-переменную $this. $this хранить текущий объект, а в Вашем случае это объект класса Post который не имеет метода getLangPosts().
Сделайте getLangPosts статическим методом и работайте с ним как с статическим методом, например:
app\models\LangPostpublic static function getLangPosts()
{
    return static::find();
}
app\models\Postpublic function getDataPosts(){
    $language = Yii::$app->language;
    $data_lang = LangPosts::getLangPosts()->where(['lang'=>$language])->one();
    return $data_lang;
}