If you exclude application/, then everything under it will always be excluded. For this question, you need to use unignore to every parent directory which you want to exclude and include.
Usually, you end up writing rules for this situation in pairs: which ignores everything in a directory, but not some certain subdirectory.
The pair patterns seem something like this:
!application/
application/*
!application/language/
application/language/*
!application/language/gr/
Note: The trailing /* is significant
Refer: https://git-scm.com/docs/gitignore#_pattern_format